master 50f6e3b4e0cb cached
892 files
14.8 MB
3.9M tokens
13556 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (15,747K chars total). Download the full file to get everything.
Repository: LGE-ARC-AdvancedAI/auptimizer
Branch: master
Commit: 50f6e3b4e0cb
Files: 892
Total size: 14.8 MB

Directory structure:
gitextract_g8wyt_2k/

├── .coveragerc
├── .dockerignore
├── .gitignore
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── Examples/
│   ├── .gitignore
│   ├── 2dfunc_diff_mult_res/
│   │   ├── README.md
│   │   ├── cpu.ini
│   │   ├── exp_cpu.json
│   │   └── rosenbrock_hpo.py
│   ├── 2dfunc_diff_opt/
│   │   ├── .gitignore
│   │   ├── History.ipynb
│   │   ├── README.md
│   │   ├── experiment_auto.json
│   │   ├── experiment_bohb.json
│   │   ├── experiment_hyperband.json
│   │   ├── experiment_hyperopt.json
│   │   ├── experiment_random.json
│   │   ├── experiment_sequence.json
│   │   ├── experiment_spearmint.json
│   │   ├── rosenbrock_hpo.py
│   │   └── rosenbrock_origin.py
│   ├── 2dfunc_diff_res/
│   │   ├── README.md
│   │   ├── aws.txt
│   │   ├── cpu.ini
│   │   ├── env_local_template.ini
│   │   ├── env_user_template.ini
│   │   ├── exp_aws.json
│   │   ├── exp_cpu.json
│   │   ├── exp_gpu.json
│   │   ├── exp_node.json
│   │   ├── exp_node_async.json
│   │   ├── exp_passive.json
│   │   ├── gpu.txt
│   │   ├── node.txt
│   │   ├── plainGPU.txt
│   │   ├── rosenbrock_hpo.py
│   │   └── singleGPU.txt
│   ├── cai_eas/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── eas/
│   │   │   ├── client.py
│   │   │   ├── data_providers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base_provider.py
│   │   │   │   ├── cifar.py
│   │   │   │   ├── downloader.py
│   │   │   │   ├── svhn.py
│   │   │   │   └── utils.py
│   │   │   ├── expdir_monitor/
│   │   │   │   ├── __init__.py
│   │   │   │   └── expdir_monitor.py
│   │   │   ├── experiment.json
│   │   │   └── models/
│   │   │       ├── __init__.py
│   │   │       ├── basic_model.py
│   │   │       ├── convnet.py
│   │   │       ├── dense_net.py
│   │   │       ├── layer_cascade.py
│   │   │       ├── layer_multi_branch.py
│   │   │       ├── layers.py
│   │   │       └── utils.py
│   │   └── start_nets/
│   │       └── start_net_convnet_small_C10+/
│   │           ├── init
│   │           └── net.config
│   ├── compression/
│   │   ├── mnist_pytorch/
│   │   │   ├── README.md
│   │   │   ├── exp_activation_apoz_rank.json
│   │   │   ├── exp_activation_apoz_rank_dependency_aware.json
│   │   │   ├── exp_activation_mean_rank.json
│   │   │   ├── exp_activation_mean_rank_dependency_aware.json
│   │   │   ├── exp_admm.json
│   │   │   ├── exp_agp.json
│   │   │   ├── exp_amc.json
│   │   │   ├── exp_auto_activation_apoz_rank.json
│   │   │   ├── exp_auto_activation_mean_rank.json
│   │   │   ├── exp_auto_admm.json
│   │   │   ├── exp_auto_agp.json
│   │   │   ├── exp_auto_fpgm_aup_args.json
│   │   │   ├── exp_auto_fpgm_bohb.json
│   │   │   ├── exp_auto_fpgm_hyperband.json
│   │   │   ├── exp_auto_fpgm_hyperopt.json
│   │   │   ├── exp_auto_fpgm_no_expand.json
│   │   │   ├── exp_auto_fpgm_random.json
│   │   │   ├── exp_auto_fpgm_random_no_expand.json
│   │   │   ├── exp_auto_fpgm_sequence.json
│   │   │   ├── exp_auto_fpgm_spearmint.json
│   │   │   ├── exp_auto_l1filter.json
│   │   │   ├── exp_auto_l2filter.json
│   │   │   ├── exp_auto_level.json
│   │   │   ├── exp_auto_lottery_ticket.json
│   │   │   ├── exp_auto_taylor_fo.json
│   │   │   ├── exp_autocompress.json
│   │   │   ├── exp_fpgm.json
│   │   │   ├── exp_fpgm_aup_args.json
│   │   │   ├── exp_fpgm_dependency_aware.json
│   │   │   ├── exp_l1filter.json
│   │   │   ├── exp_l1filter_dependency_aware.json
│   │   │   ├── exp_l2filter.json
│   │   │   ├── exp_l2filter_dependency_aware.json
│   │   │   ├── exp_level.json
│   │   │   ├── exp_lottery_ticket.json
│   │   │   ├── exp_net_adapt.json
│   │   │   ├── exp_quantization_bnn.json
│   │   │   ├── exp_quantization_dorefa.json
│   │   │   ├── exp_quantization_naive.json
│   │   │   ├── exp_quantization_qat.json
│   │   │   ├── exp_sensitivity.json
│   │   │   ├── exp_simulated_annealing.json
│   │   │   ├── exp_taylor_fo.json
│   │   │   ├── exp_taylor_fo_dependency_aware.json
│   │   │   ├── mnist.py
│   │   │   ├── mnist_admm.py
│   │   │   ├── mnist_agp.py
│   │   │   ├── mnist_amc.py
│   │   │   ├── mnist_aup_args.py
│   │   │   ├── mnist_autocompress.py
│   │   │   ├── mnist_dependency_aware.py
│   │   │   ├── mnist_lottery_ticket.py
│   │   │   ├── mnist_net_adapt.py
│   │   │   ├── mnist_no_speedup.py
│   │   │   ├── mnist_pretrained.pth
│   │   │   ├── mnist_pretrained.py
│   │   │   ├── mnist_sensitivity.py
│   │   │   └── mnist_simulated_annealing.py
│   │   ├── mnist_tensorflow/
│   │   │   ├── README.md
│   │   │   ├── exp_auto_level.json
│   │   │   ├── exp_level.json
│   │   │   ├── mnist.py
│   │   │   └── mnist_pretrained.py
│   │   └── utility_functions/
│   │       ├── README.md
│   │       └── mnist.py
│   ├── converter_examples/
│   │   ├── Convert_Benchmark/
│   │   │   ├── .gitignore
│   │   │   ├── Benchmark.ipynb
│   │   │   ├── README.md
│   │   │   ├── repdata.py
│   │   │   └── script_mobilenet.py
│   │   ├── Convert_Profiler/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── convert_onnx.json
│   │   │   ├── convert_tflite.json
│   │   │   ├── download_test_models.py
│   │   │   ├── env_onnx.template
│   │   │   ├── env_tflite.template
│   │   │   ├── model_names_tflite.txt
│   │   │   ├── test_perf_onnx.py
│   │   │   ├── test_perf_tflite.py
│   │   │   └── tflite_output.txt
│   │   ├── README.md
│   │   ├── Tested_Models/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── conversion_jsons/
│   │   │   │   ├── convert_checkpoint_to_onnx.json
│   │   │   │   ├── convert_checkpoint_to_tflite.json
│   │   │   │   ├── convert_keras_to_onnx.json
│   │   │   │   ├── convert_keras_to_tflite.json
│   │   │   │   ├── convert_protobuf_to_onnx.json
│   │   │   │   ├── convert_protobuf_to_tflite.json
│   │   │   │   ├── convert_pytorch_to_onnx.json
│   │   │   │   ├── convert_pytorch_to_tflite.json
│   │   │   │   ├── convert_savedmodel_to_onnx.json
│   │   │   │   └── convert_savedmodel_to_tflite.json
│   │   │   ├── convert_pb_to_tflite.json
│   │   │   ├── create_test_models.py
│   │   │   ├── download_models.py
│   │   │   └── download_urls.json
│   │   └── dlconvert_requirements.txt
│   ├── decorator_example/
│   │   ├── origin.py
│   │   └── use_decorator.py
│   ├── demo/
│   │   ├── .gitignore
│   │   ├── demo.yml
│   │   ├── experiment_wrapper.json
│   │   ├── hpo_wrapper.py
│   │   └── origin.py
│   ├── early_stopping/
│   │   ├── README.md
│   │   ├── mnist_keras/
│   │   │   ├── cpu.ini
│   │   │   ├── exp_BOHB_bandit.json
│   │   │   ├── exp_BOHB_curve_fitting.json
│   │   │   ├── exp_BOHB_median.json
│   │   │   ├── exp_BOHB_trunc.json
│   │   │   ├── exp_random_bandit.json
│   │   │   ├── exp_random_curve_fitting.json
│   │   │   ├── exp_random_median.json
│   │   │   ├── exp_random_trunc.json
│   │   │   ├── exp_spearmint_bandit.json
│   │   │   ├── exp_spearmint_curve_fitting.json
│   │   │   ├── exp_spearmint_median.json
│   │   │   ├── exp_spearmint_trunc.json
│   │   │   └── mnist.py
│   │   └── quad_equation_min/
│   │       ├── cpu.ini
│   │       ├── quad_min.py
│   │       ├── quad_min_BOHB_bandit.json
│   │       ├── quad_min_BOHB_median.json
│   │       ├── quad_min_BOHB_trunc.json
│   │       ├── quad_min_random_bandit.json
│   │       ├── quad_min_random_median.json
│   │       ├── quad_min_random_trunc.json
│   │       ├── quad_min_spearmint_bandit.json
│   │       ├── quad_min_spearmint_median.json
│   │       └── quad_min_spearmint_trunc.json
│   ├── hpo_mnist/
│   │   ├── .gitignore
│   │   ├── MNIST Hyperparameter Optimization Demo.ipynb
│   │   ├── README.md
│   │   ├── demo.json
│   │   ├── exp_aws_async.json
│   │   ├── exp_aws_demo.json
│   │   ├── exp_aws_retry_job.json
│   │   ├── exp_bohb.json
│   │   ├── exp_hyperband.json
│   │   ├── exp_hyperopt.json
│   │   ├── exp_random.json
│   │   ├── exp_random_async.json
│   │   ├── exp_sequence.json
│   │   ├── exp_spearmint.json
│   │   ├── job_retries_random.json
│   │   ├── mnist_hpo_demo.py
│   │   └── mnist_hpo_fail.py
│   ├── intermediate_results/
│   │   ├── README.md
│   │   └── quad_equation_min/
│   │       ├── quad_min.py
│   │       ├── quad_min_BOHB.json
│   │       ├── quad_min_random.json
│   │       └── quad_min_spearmint.json
│   ├── job_failure_control/
│   │   ├── README.md
│   │   ├── experiment_extra_argument.json
│   │   ├── experiment_job_ignore_fail.json
│   │   ├── experiment_job_retries.json
│   │   ├── experiment_job_retries_ignore_fail.json
│   │   ├── experiment_no_nsample.json
│   │   ├── experiment_no_param_config.json
│   │   ├── experiment_no_proposer.json
│   │   ├── experiment_no_resource.json
│   │   ├── experiment_no_script.json
│   │   ├── experiment_test.json
│   │   ├── rosenbrock_hpo.py
│   │   └── test.py
│   ├── mnist_keras_save_model/
│   │   ├── README.md
│   │   ├── cpu.ini
│   │   ├── exp_random_cpu.json
│   │   ├── exp_random_node.json
│   │   ├── mnist.py
│   │   ├── mnist_wo_decorator.py
│   │   └── node.txt
│   ├── profiler_examples/
│   │   ├── README.md
│   │   ├── bench/
│   │   │   ├── download.sh
│   │   │   └── test_perf.py
│   │   ├── env_benchmark.template
│   │   ├── env_mnist.template
│   │   ├── experiments/
│   │   │   └── Readme.md
│   │   ├── internal/
│   │   │   └── ImageNet Experiments.ipynb
│   │   ├── issues.md
│   │   ├── mnist/
│   │   │   └── mnist.py
│   │   └── model_names.txt
│   ├── quad_equation_min/
│   │   ├── QUAD_MIN_Demo.ipynb
│   │   ├── cpu.ini
│   │   ├── quad_min.py
│   │   ├── quad_min_BOHB.json
│   │   ├── quad_min_random.json
│   │   └── quad_min_spearmint.json
│   ├── tf_flags/
│   │   ├── README.md
│   │   ├── experiment.json
│   │   ├── rosenbrock_hpo.py
│   │   └── rosenbrock_tf.py
│   └── tf_iris_diff_opt/
│       ├── History.ipynb
│       ├── README.md
│       ├── experiment_demo.json
│       ├── experiment_hpo.json
│       ├── experiment_hyperband.json
│       ├── experiment_random.json
│       ├── experiment_sequence.json
│       ├── experiment_spearmint.json
│       ├── iris_data.py
│       ├── premade_estimator.py
│       ├── premade_estimator_hpo.py
│       ├── premade_estimator_hyper.py
│       └── premade_estimator_wrapper.py
├── LICENSE
├── MANIFEST.in
├── R-src/
│   ├── README.md
│   ├── Rpackage/
│   │   ├── DESCRIPTION
│   │   ├── NAMESPACE
│   │   ├── R/
│   │   │   └── auptimizer.R
│   │   ├── man/
│   │   │   ├── get_config.Rd
│   │   │   └── print_result.Rd
│   │   ├── tests/
│   │   │   ├── testthat/
│   │   │   │   ├── test_IO.R
│   │   │   │   └── test_io.json
│   │   │   └── testthat.R
│   │   └── vignettes/
│   │       ├── .gitignore
│   │       └── auptimizer.Rmd
│   └── examples/
│       ├── exp_ridge.R
│       ├── exp_rosenbrock.R
│       ├── ridge.json
│       ├── ridgeRegression.R
│       ├── rosenbrock.R
│       └── rosenbrock.json
├── README.md
├── docs/
│   ├── Database/
│   │   ├── schema.dot
│   │   ├── schema.sql
│   │   └── sql_graphviz.py
│   ├── Dockerfile
│   ├── LICENSE
│   ├── Makefile
│   ├── README.rst
│   ├── _static/
│   │   └── .gitkeep
│   ├── algorithm.rst
│   ├── archive/
│   │   ├── Auptimizer-1.0-py2-none-any.whl
│   │   ├── Auptimizer-1.0-py3-none-any.whl
│   │   ├── Auptimizer-1.1-py2-none-any.whl
│   │   ├── Auptimizer-1.1-py3-none-any.whl
│   │   ├── Auptimizer-1.2-py2-none-any.whl
│   │   ├── Auptimizer-1.2-py3-none-any.whl
│   │   ├── Auptimizer-1.3-py2-none-any.whl
│   │   ├── Auptimizer-1.3-py3-none-any.whl
│   │   ├── Auptimizer-1.4-py2.py3-none-any.whl
│   │   ├── Auptimizer-2.0-py2.py3-none-any.whl
│   │   └── aup.py
│   ├── aup.EE.Experiment.rst
│   ├── aup.EE.Job.rst
│   ├── aup.EE.Resource.rst
│   ├── aup.EE.rst
│   ├── aup.ET.Connector.rst
│   ├── aup.ET.rst
│   ├── aup.Proposer.BOHBProposer.rst
│   ├── aup.Proposer.EASProposer.rst
│   ├── aup.Proposer.HyperbandProposer.rst
│   ├── aup.Proposer.HyperoptProposer.rst
│   ├── aup.Proposer.RandomProposer.rst
│   ├── aup.Proposer.SequenceProposer.rst
│   ├── aup.Proposer.SpearmintProposer.rst
│   ├── aup.Proposer.rst
│   ├── aup.__main__.rst
│   ├── aup.compression.rst
│   ├── aup.convert.rst
│   ├── aup.dlconvert.rst
│   ├── aup.dlconvert_API.rst
│   ├── aup.init.rst
│   ├── aup.profiler.rst
│   ├── aup.rst
│   ├── aup.setup.rst
│   ├── aup.setupdb.rst
│   ├── aup.setupdb.sqlite.rst
│   ├── aup.setupdb_API.rst
│   ├── aup.utils.rst
│   ├── aup.visualize.rst
│   ├── compression.rst
│   ├── compression_main.rst
│   ├── compression_utilities.rst
│   ├── compressors.rst
│   ├── conf.py
│   ├── dashboard.rst
│   ├── demo.rst
│   ├── developer.rst
│   ├── developer_guide.rst
│   ├── dlconvert.rst
│   ├── dlconvert_example.rst
│   ├── dlconvert_readme.rst
│   ├── early_stop.rst
│   ├── edge.rst
│   ├── environment.rst
│   ├── errors.rst
│   ├── experiment.rst
│   ├── hpo.rst
│   ├── index.rst
│   ├── install.rst
│   ├── prepare.sh
│   ├── prof_example.rst
│   ├── prof_readme.rst
│   ├── profiler.rst
│   ├── r_user.rst
│   ├── requirements.txt
│   ├── setup.rst
│   └── version.rst
├── oss-package.info
├── publish.sh
├── requirements.txt
├── setup.py
├── src/
│   └── aup/
│       ├── EE/
│       │   ├── Experiment.py
│       │   ├── Job.py
│       │   ├── Resource/
│       │   │   ├── AWSResourceManager.py
│       │   │   ├── AbstractResourceManager.py
│       │   │   ├── CPUResourceManager.py
│       │   │   ├── GPUResourceManager.py
│       │   │   ├── PassiveResourceManager.py
│       │   │   ├── SSHResourceManager.py
│       │   │   ├── __init__.py
│       │   │   └── utils/
│       │   │       ├── ResourceThreadPoolExecutor.py
│       │   │       ├── __init__.py
│       │   │       └── curve_fitting.py
│       │   └── __init__.py
│       ├── ET/
│       │   ├── Connector/
│       │   │   ├── AbstractConnector.py
│       │   │   ├── SQLiteConnector.py
│       │   │   └── __init__.py
│       │   └── __init__.py
│       ├── Proposer/
│       │   ├── AbstractProposer.py
│       │   ├── BOHBProposer.py
│       │   ├── EASProposer.py
│       │   ├── HyperbandProposer.py
│       │   ├── HyperoptProposer.py
│       │   ├── Hyperopt_LICENSE
│       │   ├── RandomProposer.py
│       │   ├── SequenceProposer.py
│       │   ├── SpearmintProposer.py
│       │   ├── Spearmint_LICENSE
│       │   ├── __init__.py
│       │   ├── eas/
│       │   │   ├── LICENSE
│       │   │   ├── __init__.py
│       │   │   ├── arch_search/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── arch_search_convnet_net2net.py
│       │   │   │   └── arch_search_densenet_net2net.py
│       │   │   ├── arch_search.py
│       │   │   ├── client.py
│       │   │   ├── data_providers/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base_provider.py
│       │   │   │   ├── cifar.py
│       │   │   │   ├── downloader.py
│       │   │   │   ├── svhn.py
│       │   │   │   └── utils.py
│       │   │   ├── expdir_monitor/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── arch_manager.py
│       │   │   │   ├── distributed.py
│       │   │   │   └── expdir_monitor.py
│       │   │   ├── main.py
│       │   │   ├── meta_controller/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base_controller.py
│       │   │   │   └── rl_controller.py
│       │   │   ├── models/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── basic_model.py
│       │   │   │   ├── convnet.py
│       │   │   │   ├── dense_net.py
│       │   │   │   ├── layer_cascade.py
│       │   │   │   ├── layer_multi_branch.py
│       │   │   │   ├── layers.py
│       │   │   │   └── utils.py
│       │   │   ├── run_dense_net.py
│       │   │   └── run_simple_convnet.py
│       │   ├── hpbandster/
│       │   │   ├── __init__.py
│       │   │   ├── core/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base_config_generator.py
│       │   │   │   ├── base_iteration.py
│       │   │   │   ├── dispatcher.py
│       │   │   │   ├── master.py
│       │   │   │   ├── nameserver.py
│       │   │   │   ├── result.py
│       │   │   │   └── worker.py
│       │   │   ├── examples/
│       │   │   │   ├── README.txt
│       │   │   │   ├── __init__.py
│       │   │   │   ├── commons.py
│       │   │   │   ├── example_1_local_sequential.py
│       │   │   │   ├── example_2_local_parallel_threads.py
│       │   │   │   ├── example_3_local_parallel_processes.py
│       │   │   │   ├── example_4_cluster.py
│       │   │   │   ├── example_5_keras_worker.py
│       │   │   │   ├── example_5_mnist.py
│       │   │   │   ├── example_5_pytorch_worker.py
│       │   │   │   ├── example_5_run/
│       │   │   │   │   ├── configs.json
│       │   │   │   │   └── results.json
│       │   │   │   ├── example_8_mnist_continued.py
│       │   │   │   ├── plot_example_6_analysis.py
│       │   │   │   └── plot_example_7_interactive_plot.py
│       │   │   ├── optimizers/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── bohb.py
│       │   │   │   ├── config_generators/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── bohb.py
│       │   │   │   │   ├── h2bo.py
│       │   │   │   │   ├── kde.py
│       │   │   │   │   ├── lcnet.py
│       │   │   │   │   └── random_sampling.py
│       │   │   │   ├── h2bo.py
│       │   │   │   ├── hyperband.py
│       │   │   │   ├── iterations/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── successivehalving.py
│       │   │   │   │   └── successiveresampling.py
│       │   │   │   ├── kde/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── kernels.py
│       │   │   │   │   └── mvkde.py
│       │   │   │   ├── lcnet.py
│       │   │   │   ├── learning_curve_models/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── arif.py
│       │   │   │   │   ├── base.py
│       │   │   │   │   └── lcnet.py
│       │   │   │   └── randomsearch.py
│       │   │   ├── utils.py
│       │   │   ├── visualization.py
│       │   │   └── workers/
│       │   │       ├── __init__.py
│       │   │       └── hpolibbenchmark.py
│       │   ├── hpbandster_LICENSE
│       │   ├── hyperband_LICENSE
│       │   ├── hyperopt/
│       │   │   ├── LICENSE.txt
│       │   │   ├── __init__.py
│       │   │   ├── algobase.py
│       │   │   ├── anneal.py
│       │   │   ├── base.py
│       │   │   ├── criteria.py
│       │   │   ├── exceptions.py
│       │   │   ├── fmin.py
│       │   │   ├── graphviz.py
│       │   │   ├── hp.py
│       │   │   ├── ipy.py
│       │   │   ├── main.py
│       │   │   ├── mix.py
│       │   │   ├── mongoexp.py
│       │   │   ├── plotting.py
│       │   │   ├── pyll/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base.py
│       │   │   │   └── stochastic.py
│       │   │   ├── pyll_utils.py
│       │   │   ├── rand.py
│       │   │   ├── rdists.py
│       │   │   ├── tpe.py
│       │   │   ├── utils.py
│       │   │   └── vectorize.py
│       │   └── spearmint/
│       │       ├── ExperimentGrid.py
│       │       ├── Locker.py
│       │       ├── __init__.py
│       │       ├── chooser/
│       │       │   ├── CMAChooser.py
│       │       │   ├── GPConstrainedEIChooser.py
│       │       │   ├── GPEIChooser.py
│       │       │   ├── GPEIOptChooser.py
│       │       │   ├── GPEIperSecChooser.py
│       │       │   ├── RandomChooser.py
│       │       │   ├── RandomForestEIChooser.py
│       │       │   ├── SequentialChooser.py
│       │       │   ├── __init__.py
│       │       │   └── cma.py
│       │       ├── gp.py
│       │       ├── helpers.py
│       │       ├── runner.py
│       │       ├── sobol_lib.py
│       │       ├── spearmint_pb2.py
│       │       └── util.py
│       ├── RestAPI/
│       │   ├── __init__.py
│       │   ├── server.py
│       │   └── templates/
│       │       └── home.html
│       ├── __init__.py
│       ├── __main__.py
│       ├── aup.py
│       ├── compression/
│       │   ├── Compressor.py
│       │   ├── NNI-LICENSE
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── tensorflow/
│       │   │   ├── __init__.py
│       │   │   ├── compressor.py
│       │   │   ├── default_layers.py
│       │   │   └── pruning/
│       │   │       ├── __init__.py
│       │   │       └── one_shot.py
│       │   ├── torch/
│       │   │   ├── __init__.py
│       │   │   ├── _graph_utils.py
│       │   │   ├── compressor.py
│       │   │   ├── default_layers.py
│       │   │   ├── parameter_expressions.py
│       │   │   ├── pruning/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── admm_pruner.py
│       │   │   │   ├── agp.py
│       │   │   │   ├── amc/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── amc_pruner.py
│       │   │   │   │   ├── channel_pruning_env.py
│       │   │   │   │   └── lib/
│       │   │   │   │       ├── __init__.py
│       │   │   │   │       ├── agent.py
│       │   │   │   │       ├── memory.py
│       │   │   │   │       ├── net_measure.py
│       │   │   │   │       └── utils.py
│       │   │   │   ├── apply_compression.py
│       │   │   │   ├── auto_compress_pruner.py
│       │   │   │   ├── constants.py
│       │   │   │   ├── constants_pruner.py
│       │   │   │   ├── finegrained_pruning.py
│       │   │   │   ├── lottery_ticket.py
│       │   │   │   ├── net_adapt_pruner.py
│       │   │   │   ├── one_shot.py
│       │   │   │   ├── sensitivity_pruner.py
│       │   │   │   ├── simulated_annealing_pruner.py
│       │   │   │   ├── structured_pruning.py
│       │   │   │   └── weight_masker.py
│       │   │   ├── quantization/
│       │   │   │   ├── __init__.py
│       │   │   │   └── quantizers.py
│       │   │   ├── speedup/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── compress_modules.py
│       │   │   │   ├── compressor.py
│       │   │   │   └── infer_shape.py
│       │   │   ├── torch_utils.py
│       │   │   └── utils/
│       │   │       ├── __init__.py
│       │   │       ├── config_validation.py
│       │   │       ├── counter.py
│       │   │       ├── mask_conflict.py
│       │   │       ├── num_param_counter.py
│       │   │       ├── sensitivity_analysis.py
│       │   │       ├── shape_dependency.py
│       │   │       └── utils.py
│       │   └── utils.py
│       ├── convert.py
│       ├── dashboard/
│       │   ├── README.md
│       │   ├── __init__.py
│       │   ├── dashboard.py
│       │   └── frontend/
│       │       ├── .browserslistrc
│       │       ├── .editorconfig
│       │       ├── .eslintrc.json
│       │       ├── .gitignore
│       │       ├── .prettierignore
│       │       ├── .prettierrc
│       │       ├── Angular-LICENSE
│       │       ├── README.md
│       │       ├── angular.json
│       │       ├── e2e/
│       │       │   ├── protractor.conf.js
│       │       │   ├── src/
│       │       │   │   ├── app.e2e-spec.ts
│       │       │   │   └── app.po.ts
│       │       │   └── tsconfig.json
│       │       ├── febuild/
│       │       │   └── auptimizer-dashboard/
│       │       │       ├── 3rdpartylicenses.txt
│       │       │       ├── 4.3bf463bd37e16d085b6c.js
│       │       │       ├── 5.0e291298e9c49cb93c71.js
│       │       │       ├── _redirects
│       │       │       ├── index.html
│       │       │       ├── main.09d22743789a55973001.js
│       │       │       ├── polyfills.9cfb3f513e777138fb2c.js
│       │       │       ├── runtime.29a333e72cc7398676d0.js
│       │       │       └── styles.5a1d2b21684fc92c4f99.css
│       │       ├── karma.conf.js
│       │       ├── package.json
│       │       ├── src/
│       │       │   ├── _redirects
│       │       │   ├── app/
│       │       │   │   ├── @core/
│       │       │   │   │   ├── app-load.service.ts
│       │       │   │   │   └── core.module.ts
│       │       │   │   ├── app-routing.module.ts
│       │       │   │   ├── app.component.html
│       │       │   │   ├── app.component.scss
│       │       │   │   ├── app.component.spec.ts
│       │       │   │   ├── app.component.ts
│       │       │   │   ├── app.module.ts
│       │       │   │   ├── app.service.ts
│       │       │   │   ├── appStore/
│       │       │   │   │   ├── app-state.model.ts
│       │       │   │   │   ├── app.actions.ts
│       │       │   │   │   └── app.store.ts
│       │       │   │   ├── guards/
│       │       │   │   │   └── db.guard.ts
│       │       │   │   ├── main/
│       │       │   │   │   ├── containers/
│       │       │   │   │   │   ├── index.ts
│       │       │   │   │   │   └── main/
│       │       │   │   │   │       ├── main.component.html
│       │       │   │   │   │       ├── main.component.scss
│       │       │   │   │   │       ├── main.component.spec.ts
│       │       │   │   │   │       └── main.component.ts
│       │       │   │   │   ├── experiment/
│       │       │   │   │   │   ├── components/
│       │       │   │   │   │   │   ├── experiment-dropdown/
│       │       │   │   │   │   │   │   ├── experiment-dropdown.component.html
│       │       │   │   │   │   │   │   ├── experiment-dropdown.component.scss
│       │       │   │   │   │   │   │   ├── experiment-dropdown.component.spec.ts
│       │       │   │   │   │   │   │   └── experiment-dropdown.component.ts
│       │       │   │   │   │   │   ├── header/
│       │       │   │   │   │   │   │   ├── header.component.html
│       │       │   │   │   │   │   │   ├── header.component.scss
│       │       │   │   │   │   │   │   ├── header.component.spec.ts
│       │       │   │   │   │   │   │   └── header.component.ts
│       │       │   │   │   │   │   ├── index.ts
│       │       │   │   │   │   │   ├── sidenav/
│       │       │   │   │   │   │   │   ├── sidenav.component.html
│       │       │   │   │   │   │   │   ├── sidenav.component.scss
│       │       │   │   │   │   │   │   ├── sidenav.component.spec.ts
│       │       │   │   │   │   │   │   └── sidenav.component.ts
│       │       │   │   │   │   │   └── sidenav-element/
│       │       │   │   │   │   │       ├── sidenav-element.component.html
│       │       │   │   │   │   │       ├── sidenav-element.component.scss
│       │       │   │   │   │   │       ├── sidenav-element.component.spec.ts
│       │       │   │   │   │   │       └── sidenav-element.component.ts
│       │       │   │   │   │   ├── containers/
│       │       │   │   │   │   │   ├── create-experiment/
│       │       │   │   │   │   │   │   ├── create-experiment.component.html
│       │       │   │   │   │   │   │   ├── create-experiment.component.scss
│       │       │   │   │   │   │   │   ├── create-experiment.component.spec.ts
│       │       │   │   │   │   │   │   ├── create-experiment.component.ts
│       │       │   │   │   │   │   │   └── exampleJSON.ts
│       │       │   │   │   │   │   ├── experiment/
│       │       │   │   │   │   │   │   ├── experiment.component.html
│       │       │   │   │   │   │   │   ├── experiment.component.scss
│       │       │   │   │   │   │   │   ├── experiment.component.spec.ts
│       │       │   │   │   │   │   │   └── experiment.component.ts
│       │       │   │   │   │   │   ├── index.ts
│       │       │   │   │   │   │   ├── initialize/
│       │       │   │   │   │   │   │   ├── initialize.component.html
│       │       │   │   │   │   │   │   ├── initialize.component.scss
│       │       │   │   │   │   │   │   ├── initialize.component.spec.ts
│       │       │   │   │   │   │   │   └── initialize.component.ts
│       │       │   │   │   │   │   ├── interm-results/
│       │       │   │   │   │   │   │   ├── interm-results.component.html
│       │       │   │   │   │   │   │   ├── interm-results.component.scss
│       │       │   │   │   │   │   │   ├── interm-results.component.spec.ts
│       │       │   │   │   │   │   │   └── interm-results.component.ts
│       │       │   │   │   │   │   ├── job-status/
│       │       │   │   │   │   │   │   ├── job-status.component.html
│       │       │   │   │   │   │   │   ├── job-status.component.scss
│       │       │   │   │   │   │   │   ├── job-status.component.spec.ts
│       │       │   │   │   │   │   │   └── job-status.component.ts
│       │       │   │   │   │   │   ├── list/
│       │       │   │   │   │   │   │   ├── list.component.html
│       │       │   │   │   │   │   │   ├── list.component.scss
│       │       │   │   │   │   │   │   ├── list.component.spec.ts
│       │       │   │   │   │   │   │   └── list.component.ts
│       │       │   │   │   │   │   ├── main/
│       │       │   │   │   │   │   │   ├── main.component.html
│       │       │   │   │   │   │   │   ├── main.component.scss
│       │       │   │   │   │   │   │   ├── main.component.spec.ts
│       │       │   │   │   │   │   │   └── main.component.ts
│       │       │   │   │   │   │   ├── multi-exp-comp/
│       │       │   │   │   │   │   │   ├── multi-exp-comp.component.html
│       │       │   │   │   │   │   │   ├── multi-exp-comp.component.scss
│       │       │   │   │   │   │   │   ├── multi-exp-comp.component.spec.ts
│       │       │   │   │   │   │   │   └── multi-exp-comp.component.ts
│       │       │   │   │   │   │   ├── notification/
│       │       │   │   │   │   │   │   ├── notification.component.html
│       │       │   │   │   │   │   │   ├── notification.component.scss
│       │       │   │   │   │   │   │   ├── notification.component.spec.ts
│       │       │   │   │   │   │   │   └── notification.component.ts
│       │       │   │   │   │   │   ├── overview/
│       │       │   │   │   │   │   │   ├── overview.component.html
│       │       │   │   │   │   │   │   ├── overview.component.scss
│       │       │   │   │   │   │   │   ├── overview.component.spec.ts
│       │       │   │   │   │   │   │   └── overview.component.ts
│       │       │   │   │   │   │   └── pcg/
│       │       │   │   │   │   │       ├── pcg.component.html
│       │       │   │   │   │   │       ├── pcg.component.scss
│       │       │   │   │   │   │       ├── pcg.component.spec.ts
│       │       │   │   │   │   │       └── pcg.component.ts
│       │       │   │   │   │   ├── experiment-routing.module.ts
│       │       │   │   │   │   ├── experiment.module.ts
│       │       │   │   │   │   ├── services/
│       │       │   │   │   │   │   └── experiment.service.ts
│       │       │   │   │   │   └── store/
│       │       │   │   │   │       ├── experiment-state.model.ts
│       │       │   │   │   │       ├── experiment.actions.ts
│       │       │   │   │   │       └── experiment.store.ts
│       │       │   │   │   ├── main-routing.module.ts
│       │       │   │   │   └── main.module.ts
│       │       │   │   ├── material/
│       │       │   │   │   └── material.module.ts
│       │       │   │   ├── models/
│       │       │   │   │   ├── data/
│       │       │   │   │   │   ├── custom-icons.data.ts
│       │       │   │   │   │   ├── graph-colors.data.ts
│       │       │   │   │   │   ├── nav-items.ts
│       │       │   │   │   │   └── plotly-hidden-displays.ts
│       │       │   │   │   ├── enum/
│       │       │   │   │   │   ├── experiment-status.enum.ts
│       │       │   │   │   │   ├── experiment-view-type.enum.ts
│       │       │   │   │   │   ├── notification-type.enum.ts
│       │       │   │   │   │   └── theme-option.enum.ts
│       │       │   │   │   ├── experiment.model.ts
│       │       │   │   │   ├── nav-items.model.ts
│       │       │   │   │   ├── progress-bar.model.ts
│       │       │   │   │   └── resource.model.ts
│       │       │   │   ├── page-not-found/
│       │       │   │   │   ├── page-not-found.component.html
│       │       │   │   │   ├── page-not-found.component.scss
│       │       │   │   │   ├── page-not-found.component.spec.ts
│       │       │   │   │   └── page-not-found.component.ts
│       │       │   │   └── shared/
│       │       │   │       ├── dialogs/
│       │       │   │       │   ├── confirm/
│       │       │   │       │   │   ├── confirm-dialog.component.html
│       │       │   │       │   │   ├── confirm-dialog.component.scss
│       │       │   │       │   │   └── confirm-dialog.component.ts
│       │       │   │       │   └── index.ts
│       │       │   │       ├── pipes/
│       │       │   │       │   ├── experiment-status.pipe.ts
│       │       │   │       │   ├── first-letter-uppercase/
│       │       │   │       │   │   ├── first-letter-uppercase.pipe.spec.ts
│       │       │   │       │   │   └── first-letter-uppercase.pipe.ts
│       │       │   │       │   ├── index.ts
│       │       │   │       │   ├── min-to-hour/
│       │       │   │       │   │   ├── min-to-hour.pipe.spec.ts
│       │       │   │       │   │   └── min-to-hour.pipe.ts
│       │       │   │       │   ├── notification-icon.pipe.ts
│       │       │   │       │   ├── progressBarWidth.pipe.ts
│       │       │   │       │   ├── roudNumber.pipe.ts
│       │       │   │       │   ├── sec-to-min/
│       │       │   │       │   │   ├── sec-to-min.pipe.spec.ts
│       │       │   │       │   │   └── sec-to-min.pipe.ts
│       │       │   │       │   └── truncate.pipe.ts
│       │       │   │       ├── services/
│       │       │   │       │   ├── api.service.ts
│       │       │   │       │   ├── color-scheme.service.ts
│       │       │   │       │   ├── helper.service.ts
│       │       │   │       │   ├── index.ts
│       │       │   │       │   ├── snackbar.service.ts
│       │       │   │       │   └── utils.service.ts
│       │       │   │       ├── shared.module.ts
│       │       │   │       └── validators/
│       │       │   │           ├── at-least.validator.ts
│       │       │   │           └── index.ts
│       │       │   ├── assets/
│       │       │   │   └── .gitkeep
│       │       │   ├── environments/
│       │       │   │   ├── environment.prod.ts
│       │       │   │   └── environment.ts
│       │       │   ├── index.html
│       │       │   ├── main.ts
│       │       │   ├── polyfills.ts
│       │       │   ├── scss/
│       │       │   │   ├── _colors.scss
│       │       │   │   ├── _helpers.scss
│       │       │   │   ├── _material-overrides.scss
│       │       │   │   ├── jsoneditor-dark.scss
│       │       │   │   ├── jsoneditor.scss
│       │       │   │   ├── main.scss
│       │       │   │   └── theme.scss
│       │       │   ├── styles.scss
│       │       │   └── test.ts
│       │       ├── tailwind.config.js
│       │       ├── tsconfig.app.json
│       │       ├── tsconfig.json
│       │       ├── tsconfig.spec.json
│       │       └── webpack.config.js
│       ├── dlconvert/
│       │   ├── .gitignore
│       │   ├── README.md
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── __version__.py
│       │   ├── checkpoint_to_onnx.py
│       │   ├── checkpoint_to_pb.py
│       │   ├── checkpoint_to_tflite.py
│       │   ├── keras_to_onnx.py
│       │   ├── keras_to_pb.py
│       │   ├── keras_to_tflite.py
│       │   ├── pb_to_onnx.py
│       │   ├── pb_to_tflite.py
│       │   ├── pytorch_to_keras.py
│       │   ├── pytorch_to_onnx.py
│       │   ├── pytorch_to_tflite.py
│       │   ├── savedmodel_to_onnx.py
│       │   ├── savedmodel_to_tflite.py
│       │   ├── spec_utils/
│       │   │   ├── __init__.py
│       │   │   └── pb.py
│       │   ├── to_frozen_pb.py
│       │   ├── to_onnx.py
│       │   ├── to_tflite.py
│       │   └── utils.py
│       ├── init.py
│       ├── profiler/
│       │   ├── README.md
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── calculate.py
│       │   ├── compile_stats.py
│       │   ├── issues.md
│       │   ├── profiler.sh
│       │   └── statscript.sh
│       ├── setup.py
│       ├── setupdb/
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── reset.py
│       │   └── sqlite.py
│       ├── utils.py
│       └── visualize.py
└── tests/
    ├── EE/
    │   ├── Resource/
    │   │   ├── .gitignore
    │   │   ├── __init__.py
    │   │   ├── test_AbstractResourceManager.py
    │   │   ├── test_CPUResourceManager.py
    │   │   ├── test_GPUResourceManager.py
    │   │   ├── test_PassiveResourceManager.py
    │   │   └── test_SSHResourceManager.py
    │   ├── __init__.py
    │   ├── test_Experiment.py
    │   └── test_Job.py
    ├── ET/
    │   ├── Connector/
    │   │   ├── __init__.py
    │   │   └── test_SQLiteConnector.py
    │   └── __init__.py
    ├── Proposer/
    │   ├── __init__.py
    │   ├── test_AbstractProposer.py
    │   ├── test_BOHBProposer.py
    │   ├── test_HyperbandProposer.py
    │   ├── test_HyperoptProposer.py
    │   ├── test_RandomProposer.py
    │   ├── test_SequenceProposer.py
    │   └── test_SpearmintProposer.py
    ├── __init__.py
    ├── command/
    │   ├── __init__.py
    │   ├── test_convert.py
    │   └── test_setup.py
    ├── compression/
    │   ├── __init__.py
    │   ├── test_aup_compressor.py
    │   ├── test_compression_utils.py
    │   ├── test_compressor_tf.py
    │   ├── test_compressor_torch.py
    │   └── test_model_speedup.py
    ├── data/
    │   ├── config/
    │   │   ├── test_read.json
    │   │   └── test_wrong.json
    │   ├── exp4.json
    │   ├── exp4_no_name.json
    │   ├── exp4_no_param.json
    │   ├── exp4_no_script.json
    │   ├── exp5.json
    │   ├── exp6.json
    │   ├── exp7.json
    │   ├── gpus.txt
    │   ├── nodes.txt
    │   ├── plain_env.ini
    │   ├── target_gpu_env.ini
    │   ├── target_plain_env.ini
    │   ├── task1.py
    │   ├── task2.py
    │   ├── task3.py
    │   ├── task4.py
    │   ├── task5.py
    │   ├── task6.py
    │   ├── task7.py
    │   ├── task8.py
    │   ├── test_script.py
    │   ├── wrapper1.json
    │   └── wrapper2.json
    ├── dlconvert/
    │   ├── .gitignore
    │   ├── Dockerfile_tf1
    │   ├── Dockerfile_tf2
    │   ├── README.md
    │   ├── __init__.py
    │   ├── data/
    │   │   ├── .gitignore
    │   │   ├── create_test_model.py
    │   │   ├── evaluate_pred.py
    │   │   ├── flag_names.json
    │   │   ├── prepare.sh
    │   │   ├── prepare_docker.sh
    │   │   ├── pytorch_model.py
    │   │   └── repdata.py
    │   ├── dlconvert_requirements.txt
    │   ├── pytest.ini
    │   ├── test_checkpoint_to_onnx.py
    │   ├── test_checkpoint_to_pb.py
    │   ├── test_checkpoint_to_tflite.py
    │   ├── test_keras_to_onnx.py
    │   ├── test_keras_to_pb.py
    │   ├── test_keras_to_tflite.py
    │   ├── test_pb_to_onnx.py
    │   ├── test_pb_to_tflite.py
    │   ├── test_pytorch_to_keras.py
    │   ├── test_pytorch_to_onnx.py
    │   ├── test_pytorch_to_tflite.py
    │   ├── test_savedmodel_to_onnx.py
    │   ├── test_savedmodel_to_tflite.py
    │   ├── unittest_tf1.sh
    │   └── unittest_tf2.sh
    ├── setupdb/
    │   ├── __init__.py
    │   └── test_sqlite.py
    ├── test_BasicConfig.py
    ├── test_utils.py
    └── test_wrapper.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .coveragerc
================================================
[run]
omit =
     ./src/aup/Proposer/spearmint/*
     ./src/aup/Proposer/hyperopt/*
     ./src/aup/Proposer/eas/*
     ./src/aup/Proposer/hpbandster/*
     ./src/aup/Proposer/EASProposer.py
     ./src/aup/setupdb/reset.py
     ./src/aup/visualize.py
     ./src/aup/EE/Resource/AWSResourceManager.py
     ./src/aup/init.py
     */__main__.py
     */__init__.py
     ./src/aup/profiler/*
     ./src/aup/RestAPI/*
     ./src/aup/dashboard/*
     ./src/aup/Proposer/SpearmintProposer.py
     ./src/aup/Proposer/BOHBProposer.py
     ./src/aup/compression/torch/pruning/*

[report]
exclude_lines =
    pragma: no cover
    flags
    def main
    if __name__ == "__main__"
    @click
    raise NotImplementedError



================================================
FILE: .dockerignore
================================================
docs
Examples/2d*
Examples/dlconvert_examples/Convert*
Examples/dlconvert_examples/Tested*
Examples/demo
Examples/cai_eas
Examples/decorator_example
Examples/hpo_mnist
Examples/job*
Examples/profiler*
Examples/tf*
build
dist

================================================
FILE: .gitignore
================================================
Examples/demo/auto.py
testenv/
.aup/
.idea/
*~
*.pkl
tests/EE/jobs/
tests/data/jobs/
tests/EE/Resource/data
.vscode/
analysis.html
R-src/*.tar.gz
R-src/R-src.Rproj

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# OS files
.DS_Store
.Rproj.user

analysis_test
jobs
tests/mnist_compressed.pth
dashboard_logs

================================================
FILE: .travis.yml
================================================
git:
  depth: false
  quiet: true
branches: 
  only:
  - master
  - release
language: python
python:
- '3.7'
env:
  global:
  - secure: JbuCMpFomW4Yu+sMaBBvv7Jj1JyiQcCQAW7bhdJDil+YUdWEJmTjkF2pKwTQS5w6FUhZIHJ0cy3aJZibSrM2+YpAe3B8HMeLXAaYz9JKbC6Sp0KGr646YqoBNNP+wwrzwzJTPoV7YarViULFPYnUN8rcpp0ypaD9RrtqSN/IKUgxCeTNNcwJOLIr0SLqtmTgT2F2HzCbOkv2g84FqfCC8m2ISFyUgt8FqUD8bRfov++oHfiwSUDZHJaPkn1/NUG3qxrM85B6cC+iZH7MiudP2LF+frBJUtq4bimmjCDuQXX4c224LQC8hnG46sZGtH1i9PGp/wxdnO9gxDa+0ZIIbs86Uy6LrJptwZwWr/W4boian1JTLT8P6fPxuwDFejZwPVkyBGV1GF29pvVJ+4hRnJAKoUA/hg5IrEByXdMknkKh6yiMynmfNGEgCkAcqVPEcQie6u/nbLPqg0m3Pjs4GElEd0wIdqo9GBmK4q8FJGv05k98JX27Tm5gcwIps6qA5lPZoahOdy7GiBZFWdTfbgeah7tNjIqENbMhNFTS9Y1qy9gpgFZl8x9e0liF9OuTyTVlAmsHs9z1huuj8Bb6Eqbr8fvnVqAN9iHIBUWR7uGLeL4zwKmQZ5xiexba9LdnHuiaZjHzdzgA5SnVqXy/pabgCfoZ+wNiWcKu76mCjGU=
  jobs:
  - TF2TEST=1
install:
- pip install -r requirements.txt
- pip install -r tests/dlconvert/dlconvert_requirements.txt 
- python setup.py install
- docs/prepare.sh
- tests/dlconvert/data/prepare.sh
script:
- pytest --cov-report=xml --cov=src/aup tests
after_success:
- codecov
deploy:
  provider: pypi
  user: "__token__"
  password: $PYPITOKEN
  on:
    branch: release
  distributions: "sdist bdist_wheel"
  skip_existing: true
after_deploy:
- "./publish.sh"


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
 advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
 address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
 professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at auptimizer@lge.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: Examples/.gitignore
================================================
jobs/
spearmint/


================================================
FILE: Examples/2dfunc_diff_mult_res/README.md
================================================
# Return multiple results

This feature allows the user to save and track multiple secondary results along with the primary result for the HPO experiment. 
Auptimizer still uses the primary result for the HPO algorithms, but saves the secondary results in the database under the table `multiple_results`.

## Usage 

The feature can be used by adding the following parameter to the experiment configuration file:

    "resource_args": {
      "multi_res_labels": ["x", "y", …]
    }
    
In the above example, {"x", "y", …} are the secondary parameters the user wants to track and record. 
The user script would then return the results as a list including the primary result 'res' along with the secondary parameters as follows:

    @aup_args
    def HPO():
        res = calculate_results()
        return [res, x, y, …]
        
In the above example 'res' is the primary result which is always the first index of the returned array when using multiple results, and is used by HPO algorithm.
The other indices are matched directly with the array provided in the `multi_res_labels` parameter. 
Hence, The length of the returned array from HPO script is '1 + length of multi_res_labels' parameter.


## Example code 

    python -m aup.setup cpu.ini
	python -m aup exp_cpu.json

The code will create the job configuration file, interactively ask you to run the script, and ask for the result from your training code.
e.g. 

    # Job running path is Examples/2dfunc_diff_mult_res
    # Config is at Examples/2dfunc_diff_mult_res/jobs/452.json
    Job command is:
    Examples/2dfunc_diff_mult_res/rosenbrock_hpo.py
    Return results:

Then you should run the command in another terminal like:
    
    ./rosenbrock_hpo.py ./jobs/452.json
    
You will see something like:
 
    #Auptimizer:232.78278278806914,-0.8297799529742598,2.2032449344215808

The first result is the main result, the next are "x" and "y" defined by multi_res_labels.
 
Once you paste the result back to **Auptimizer**, it will ask you for the next one.



================================================
FILE: Examples/2dfunc_diff_mult_res/cpu.ini
================================================
[Auptimizer]
# Auptimizer environment folder to be created, this file will be copied over
Auptimizer_PATH=./.aup
# Temp folder
TMP_FOLDER=./aup_tmp
# SQL engine
SQL_ENGINE=sqlite


================================================
FILE: Examples/2dfunc_diff_mult_res/exp_cpu.json
================================================
{
  "name": "./2dfunc_diff_mult_res/exp_cpu.json",
  "proposer": "random",
  "n_samples": 10,
  "random_seed": 1,
  "script": "rosenbrock_hpo.py",
  "parameter_config": [
    {
      "name": "x",
      "range": [
        -5,
        5
      ],
      "type": "float"
    },
    {
      "name": "y",
      "range": [
        -5,
        5
      ],
      "type": "float"
    }
  ],
  "resource": "cpu",
  "n_parallel": 4,
  "target":"min",
  "resource_args": {
    "multi_res_labels": ["x", "y"]
  }
}


================================================
FILE: Examples/2dfunc_diff_mult_res/rosenbrock_hpo.py
================================================
#!/usr/bin/env python
"""
Modified Rosenbrock function for HPO and aup
============================================

..
  Copyright (c) 2018 LG Electronics Inc.
  SPDX-License-Identifier: GPL-3.0-or-later

"""

import sys
""" # ver 1.0 - modify existing code
from aup import BasicConfig, print_result

def rosenbrock(conf, a=1, b=100):
    x = conf.x
    y = conf.y
    return (a-x)*(a-x) + b*(y-x*x)*(y-x*x)


if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("config file required")
        exit(1)
    config = BasicConfig().load(sys.argv[1])
    val = rosenbrock(config)
    print_result(val)
"""

from aup import aup_args

@aup_args
def rosenbrock(x, y, a=1, b=100):
    return [(a-x)*(a-x) + b*(y-x*x)*(y-x*x), x, y]

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("config file required")
        exit(1)
    
    rosenbrock(sys.argv[1])


================================================
FILE: Examples/2dfunc_diff_opt/.gitignore
================================================
spearmint/
rosenbrock_auto.py


================================================
FILE: Examples/2dfunc_diff_opt/History.ipynb
================================================
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pylab as plt\n",
    "from aup.ET.Connector.SQLiteConnector import SQLiteConnector\n",
    "import json\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# connect to the result\n",
    "sql = SQLiteConnector(\"./.aup/sqlite3.db\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 2, 3, 4]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get all experiments (this run is for iris using hyperopt, sequence, spearmint, random)\n",
    "eids = sql.get_all_experiment()\n",
    "eids"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2,\n",
       " 1,\n",
       " 1564088286,\n",
       " 1564088287,\n",
       " '{\"proposer\": \"random\", \"n_samples\": 10, \"random_seed\": 1, \"script\": \"rosenbrock_hpo.py\", \"parameter_config\": [{\"name\": \"x\", \"range\": [-5, 5], \"type\": \"float\"}, {\"name\": \"y\", \"range\": [-5, 5], \"type\": \"float\"}], \"resource\": \"cpu\", \"n_parallel\": 2, \"target\": \"min\", \"workingdir\": \"/Users/jason.liu/PycharmProjects/CTE/Examples/2dfunc_diff_opt\"}')"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Show details in one experiment\n",
    "sql.cursor.execute(\"SELECT * FROM experiment where eid = ?\", (eids[1],))\n",
    "sql.cursor.fetchone()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>jid</th>\n",
       "      <th>score</th>\n",
       "      <th>eid</th>\n",
       "      <th>rid</th>\n",
       "      <th>start_time</th>\n",
       "      <th>end_time</th>\n",
       "      <th>job_config</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>90036.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088282</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -5, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>40519.252553</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088282</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -3.888888888888889, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>16184.062795</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088282</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -2.7777777777777777, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>6056.493827</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088282</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -1.6666666666666665, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2820.587715</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -0.5555555555555554, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>2818.365493</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 0.5555555555555558, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>6049.827160</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 1.666666666666667, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>8</td>\n",
       "      <td>16172.951684</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 2.777777777777778, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>9</td>\n",
       "      <td>40503.696997</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 3.8888888888888893, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>10</td>\n",
       "      <td>90016.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 5.0, 'y': -5}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>11</td>\n",
       "      <td>83492.790123</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -5, 'y': -3.888888888888889}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>12</td>\n",
       "      <td>36170.830056</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -3.888888888888889, 'y': -3.888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>13</td>\n",
       "      <td>13481.730834</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -2.7777777777777777, 'y': -3.88888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>14</td>\n",
       "      <td>4451.555556</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -1.6666666666666665, 'y': -3.88888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>15</td>\n",
       "      <td>1764.346289</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -0.5555555555555554, 'y': -3.88888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>16</td>\n",
       "      <td>1762.124066</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 0.5555555555555558, 'y': -3.888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>17</td>\n",
       "      <td>4444.888889</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 1.666666666666667, 'y': -3.888888888888889}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>18</td>\n",
       "      <td>13470.619723</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 2.777777777777778, 'y': -3.888888888888889}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>19</td>\n",
       "      <td>36155.274501</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 3.8888888888888893, 'y': -3.888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20</td>\n",
       "      <td>83472.790123</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 5.0, 'y': -3.888888888888889}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>21</td>\n",
       "      <td>77196.493827</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -5, 'y': -2.7777777777777777}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>22</td>\n",
       "      <td>32069.321140</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -3.888888888888889, 'y': -2.777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>23</td>\n",
       "      <td>11026.312452</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -2.7777777777777777, 'y': -2.77777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>24</td>\n",
       "      <td>3093.530864</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -1.6666666666666665, 'y': -2.77777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>25</td>\n",
       "      <td>955.018442</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': -0.5555555555555554, 'y': -2.77777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>26</td>\n",
       "      <td>952.796220</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 0.5555555555555558, 'y': -2.777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>27</td>\n",
       "      <td>3086.864198</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 1.666666666666667, 'y': -2.7777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>28</td>\n",
       "      <td>11015.201341</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 2.777777777777778, 'y': -2.7777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>29</td>\n",
       "      <td>32053.765585</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 3.8888888888888893, 'y': -2.777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>30</td>\n",
       "      <td>77176.493827</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>1564088283</td>\n",
       "      <td>{'x': 5.0, 'y': -2.7777777777777777}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>70</th>\n",
       "      <td>71</td>\n",
       "      <td>49418.716049</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': -5, 'y': 2.777777777777778}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>72</td>\n",
       "      <td>15265.480262</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': -3.888888888888889, 'y': 2.777777777777778}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>73</td>\n",
       "      <td>2452.924249</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': -2.7777777777777777, 'y': 2.777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>73</th>\n",
       "      <td>74</td>\n",
       "      <td>7.111111</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': -1.6666666666666665, 'y': 2.777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>74</th>\n",
       "      <td>75</td>\n",
       "      <td>612.082914</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': -0.5555555555555554, 'y': 2.777777777777...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75</th>\n",
       "      <td>76</td>\n",
       "      <td>609.860692</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': 0.5555555555555558, 'y': 2.777777777777778}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76</th>\n",
       "      <td>77</td>\n",
       "      <td>0.444444</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': 1.666666666666667, 'y': 2.777777777777778}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77</th>\n",
       "      <td>78</td>\n",
       "      <td>2441.813138</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': 2.777777777777778, 'y': 2.777777777777778}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78</th>\n",
       "      <td>79</td>\n",
       "      <td>15249.924707</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': 3.8888888888888893, 'y': 2.777777777777778}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>79</th>\n",
       "      <td>80</td>\n",
       "      <td>49398.716049</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>{'x': 5.0, 'y': 2.777777777777778}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>81</td>\n",
       "      <td>44603.901235</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -5, 'y': 3.8888888888888893}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81</th>\n",
       "      <td>82</td>\n",
       "      <td>12645.452827</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -3.888888888888889, 'y': 3.8888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>82</th>\n",
       "      <td>83</td>\n",
       "      <td>1478.987349</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -2.7777777777777777, 'y': 3.888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>83</th>\n",
       "      <td>84</td>\n",
       "      <td>130.567901</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088284</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -1.6666666666666665, 'y': 3.888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>84</th>\n",
       "      <td>85</td>\n",
       "      <td>1284.236549</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -0.5555555555555554, 'y': 3.888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>85</th>\n",
       "      <td>86</td>\n",
       "      <td>1282.014327</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 0.5555555555555558, 'y': 3.8888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86</th>\n",
       "      <td>87</td>\n",
       "      <td>123.901235</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 1.666666666666667, 'y': 3.8888888888888893}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>87</th>\n",
       "      <td>88</td>\n",
       "      <td>1467.876238</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 2.777777777777778, 'y': 3.8888888888888893}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>89</td>\n",
       "      <td>12629.897272</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 3.8888888888888893, 'y': 3.8888888888888...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89</th>\n",
       "      <td>90</td>\n",
       "      <td>44583.901235</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 5.0, 'y': 3.8888888888888893}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>91</td>\n",
       "      <td>40036.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -5, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>92</td>\n",
       "      <td>10272.338973</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -3.888888888888889, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>92</th>\n",
       "      <td>93</td>\n",
       "      <td>751.964030</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -2.7777777777777777, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>93</th>\n",
       "      <td>94</td>\n",
       "      <td>500.938272</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -1.6666666666666665, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>94</th>\n",
       "      <td>95</td>\n",
       "      <td>2203.303765</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': -0.5555555555555554, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>96</td>\n",
       "      <td>2201.081542</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 0.5555555555555558, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>97</td>\n",
       "      <td>494.271605</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 1.666666666666667, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>98</td>\n",
       "      <td>740.852919</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 2.777777777777778, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>99</td>\n",
       "      <td>10256.783417</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 3.8888888888888893, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>100</td>\n",
       "      <td>40016.000000</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>1564088285</td>\n",
       "      <td>{'x': 5.0, 'y': 5.0}</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    jid         score  eid  rid  start_time    end_time  \\\n",
       "0     1  90036.000000    1    3  1564088282  1564088283   \n",
       "1     2  40519.252553    1    2  1564088282  1564088283   \n",
       "2     3  16184.062795    1    1  1564088282  1564088283   \n",
       "3     4   6056.493827    1    4  1564088282  1564088283   \n",
       "4     5   2820.587715    1    3  1564088283  1564088283   \n",
       "5     6   2818.365493    1    2  1564088283  1564088283   \n",
       "6     7   6049.827160    1    1  1564088283  1564088283   \n",
       "7     8  16172.951684    1    4  1564088283  1564088283   \n",
       "8     9  40503.696997    1    3  1564088283  1564088283   \n",
       "9    10  90016.000000    1    2  1564088283  1564088283   \n",
       "10   11  83492.790123    1    1  1564088283  1564088283   \n",
       "11   12  36170.830056    1    4  1564088283  1564088283   \n",
       "12   13  13481.730834    1    3  1564088283  1564088283   \n",
       "13   14   4451.555556    1    2  1564088283  1564088283   \n",
       "14   15   1764.346289    1    1  1564088283  1564088283   \n",
       "15   16   1762.124066    1    4  1564088283  1564088283   \n",
       "16   17   4444.888889    1    3  1564088283  1564088283   \n",
       "17   18  13470.619723    1    2  1564088283  1564088283   \n",
       "18   19  36155.274501    1    1  1564088283  1564088283   \n",
       "19   20  83472.790123    1    4  1564088283  1564088283   \n",
       "20   21  77196.493827    1    3  1564088283  1564088283   \n",
       "21   22  32069.321140    1    2  1564088283  1564088283   \n",
       "22   23  11026.312452    1    1  1564088283  1564088283   \n",
       "23   24   3093.530864    1    4  1564088283  1564088283   \n",
       "24   25    955.018442    1    3  1564088283  1564088283   \n",
       "25   26    952.796220    1    2  1564088283  1564088283   \n",
       "26   27   3086.864198    1    1  1564088283  1564088283   \n",
       "27   28  11015.201341    1    4  1564088283  1564088283   \n",
       "28   29  32053.765585    1    3  1564088283  1564088283   \n",
       "29   30  77176.493827    1    2  1564088283  1564088283   \n",
       "..  ...           ...  ...  ...         ...         ...   \n",
       "70   71  49418.716049    1    1  1564088284  1564088284   \n",
       "71   72  15265.480262    1    4  1564088284  1564088284   \n",
       "72   73   2452.924249    1    3  1564088284  1564088284   \n",
       "73   74      7.111111    1    2  1564088284  1564088284   \n",
       "74   75    612.082914    1    1  1564088284  1564088284   \n",
       "75   76    609.860692    1    4  1564088284  1564088284   \n",
       "76   77      0.444444    1    3  1564088284  1564088284   \n",
       "77   78   2441.813138    1    2  1564088284  1564088284   \n",
       "78   79  15249.924707    1    1  1564088284  1564088284   \n",
       "79   80  49398.716049    1    4  1564088284  1564088284   \n",
       "80   81  44603.901235    1    3  1564088284  1564088285   \n",
       "81   82  12645.452827    1    2  1564088284  1564088285   \n",
       "82   83   1478.987349    1    1  1564088284  1564088285   \n",
       "83   84    130.567901    1    4  1564088284  1564088285   \n",
       "84   85   1284.236549    1    3  1564088285  1564088285   \n",
       "85   86   1282.014327    1    2  1564088285  1564088285   \n",
       "86   87    123.901235    1    1  1564088285  1564088285   \n",
       "87   88   1467.876238    1    4  1564088285  1564088285   \n",
       "88   89  12629.897272    1    3  1564088285  1564088285   \n",
       "89   90  44583.901235    1    2  1564088285  1564088285   \n",
       "90   91  40036.000000    1    1  1564088285  1564088285   \n",
       "91   92  10272.338973    1    4  1564088285  1564088285   \n",
       "92   93    751.964030    1    3  1564088285  1564088285   \n",
       "93   94    500.938272    1    2  1564088285  1564088285   \n",
       "94   95   2203.303765    1    1  1564088285  1564088285   \n",
       "95   96   2201.081542    1    4  1564088285  1564088285   \n",
       "96   97    494.271605    1    3  1564088285  1564088285   \n",
       "97   98    740.852919    1    2  1564088285  1564088285   \n",
       "98   99  10256.783417    1    1  1564088285  1564088285   \n",
       "99  100  40016.000000    1    4  1564088285  1564088285   \n",
       "\n",
       "                                           job_config  \n",
       "0                                  {'x': -5, 'y': -5}  \n",
       "1                  {'x': -3.888888888888889, 'y': -5}  \n",
       "2                 {'x': -2.7777777777777777, 'y': -5}  \n",
       "3                 {'x': -1.6666666666666665, 'y': -5}  \n",
       "4                 {'x': -0.5555555555555554, 'y': -5}  \n",
       "5                  {'x': 0.5555555555555558, 'y': -5}  \n",
       "6                   {'x': 1.666666666666667, 'y': -5}  \n",
       "7                   {'x': 2.777777777777778, 'y': -5}  \n",
       "8                  {'x': 3.8888888888888893, 'y': -5}  \n",
       "9                                 {'x': 5.0, 'y': -5}  \n",
       "10                 {'x': -5, 'y': -3.888888888888889}  \n",
       "11  {'x': -3.888888888888889, 'y': -3.888888888888...  \n",
       "12  {'x': -2.7777777777777777, 'y': -3.88888888888...  \n",
       "13  {'x': -1.6666666666666665, 'y': -3.88888888888...  \n",
       "14  {'x': -0.5555555555555554, 'y': -3.88888888888...  \n",
       "15  {'x': 0.5555555555555558, 'y': -3.888888888888...  \n",
       "16  {'x': 1.666666666666667, 'y': -3.888888888888889}  \n",
       "17  {'x': 2.777777777777778, 'y': -3.888888888888889}  \n",
       "18  {'x': 3.8888888888888893, 'y': -3.888888888888...  \n",
       "19                {'x': 5.0, 'y': -3.888888888888889}  \n",
       "20                {'x': -5, 'y': -2.7777777777777777}  \n",
       "21  {'x': -3.888888888888889, 'y': -2.777777777777...  \n",
       "22  {'x': -2.7777777777777777, 'y': -2.77777777777...  \n",
       "23  {'x': -1.6666666666666665, 'y': -2.77777777777...  \n",
       "24  {'x': -0.5555555555555554, 'y': -2.77777777777...  \n",
       "25  {'x': 0.5555555555555558, 'y': -2.777777777777...  \n",
       "26  {'x': 1.666666666666667, 'y': -2.7777777777777...  \n",
       "27  {'x': 2.777777777777778, 'y': -2.7777777777777...  \n",
       "28  {'x': 3.8888888888888893, 'y': -2.777777777777...  \n",
       "29               {'x': 5.0, 'y': -2.7777777777777777}  \n",
       "..                                                ...  \n",
       "70                  {'x': -5, 'y': 2.777777777777778}  \n",
       "71  {'x': -3.888888888888889, 'y': 2.777777777777778}  \n",
       "72  {'x': -2.7777777777777777, 'y': 2.777777777777...  \n",
       "73  {'x': -1.6666666666666665, 'y': 2.777777777777...  \n",
       "74  {'x': -0.5555555555555554, 'y': 2.777777777777...  \n",
       "75  {'x': 0.5555555555555558, 'y': 2.777777777777778}  \n",
       "76   {'x': 1.666666666666667, 'y': 2.777777777777778}  \n",
       "77   {'x': 2.777777777777778, 'y': 2.777777777777778}  \n",
       "78  {'x': 3.8888888888888893, 'y': 2.777777777777778}  \n",
       "79                 {'x': 5.0, 'y': 2.777777777777778}  \n",
       "80                 {'x': -5, 'y': 3.8888888888888893}  \n",
       "81  {'x': -3.888888888888889, 'y': 3.8888888888888...  \n",
       "82  {'x': -2.7777777777777777, 'y': 3.888888888888...  \n",
       "83  {'x': -1.6666666666666665, 'y': 3.888888888888...  \n",
       "84  {'x': -0.5555555555555554, 'y': 3.888888888888...  \n",
       "85  {'x': 0.5555555555555558, 'y': 3.8888888888888...  \n",
       "86  {'x': 1.666666666666667, 'y': 3.8888888888888893}  \n",
       "87  {'x': 2.777777777777778, 'y': 3.8888888888888893}  \n",
       "88  {'x': 3.8888888888888893, 'y': 3.8888888888888...  \n",
       "89                {'x': 5.0, 'y': 3.8888888888888893}  \n",
       "90                                {'x': -5, 'y': 5.0}  \n",
       "91                {'x': -3.888888888888889, 'y': 5.0}  \n",
       "92               {'x': -2.7777777777777777, 'y': 5.0}  \n",
       "93               {'x': -1.6666666666666665, 'y': 5.0}  \n",
       "94               {'x': -0.5555555555555554, 'y': 5.0}  \n",
       "95                {'x': 0.5555555555555558, 'y': 5.0}  \n",
       "96                 {'x': 1.666666666666667, 'y': 5.0}  \n",
       "97                 {'x': 2.777777777777778, 'y': 5.0}  \n",
       "98                {'x': 3.8888888888888893, 'y': 5.0}  \n",
       "99                               {'x': 5.0, 'y': 5.0}  \n",
       "\n",
       "[100 rows x 7 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# show details in job history for one experiment\n",
    "history = sql.get_all_history(1)\n",
    "history = pd.DataFrame(history)\n",
    "history.columns = ['jid', 'score','eid','rid','start_time','end_time','job_config']\n",
    "history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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+5QuCV1IMP2oFBER72knZZFT0//aPOKco6mpyeswRFoVmqLcDo9w8fsU5eai/kjjEVIStf5WRET8ISs9i78d+htHG496HYqIb8VVgWtm3zazR+rr670OJayamhouuugivv/975Obm8t1111HYWEhOTk53HbbbaHrMjMzue222xg+fDh5eXns2rULgI8++ojS0lJycnKYPXv2cdvE/+pXvyI3N5fc3Fzuvffe0PsNGjSIWbNmkZ2dzTXXXMO6desoKSkhKyuLsrKyju0AiSnnJJ8DfPHInGgKbTLl0wK35bRsv8YoEiv8nptFYkl2j2waXSNv1b/ldSgivhVXjwlyzj0PPF9YWPiDNi9cuwDeq4zum381D7511ykv27NnD4899hgjR47k4MGD9OjRg8bGRsaPH88bb7xBfn4+AL169WLbtm089NBDLF68mN/85jcsWrSI0aNHc+utt/LCCy/w29/+FoBXX32VpUuXsmXLFpxzfP3rX+fSSy8lIyOD6upqfv/73/Poo49SVFTEypUr2bBhA8899xx33nknzz77bHT7QeJGcmIy3ZK6tcsIrt/X4LYscLWDssiZiTg3i8gpZadnA7Cndg+DegzyOBoRf4qrAjcWXHjhhYwcORKAJ598kkceeYSGhgbeffdddu7cGSpwp06dCsCIESN4+umnAXjllVdCn19xxRVkZGQAsGHDBq688kpSU1NDr12/fj2TJ0+mX79+5OXlAZCTk8P48eMxM/Ly8qipqemw71ti0zldz2mXEdzuXfy9BjfBEki0RBpdozaYEhER37jgnAvomtCVlVUref3A62fcXpeELkzqP4mcXjlRiE7EHzpngRvBSGt7aS5C//rXv7J48WK2bt1KRkYGs2bN4siRI6HrkpMD/6lOTEykoaHhS79fczsACQkJoeOEhIQzalc6h29c+A3OP/v8qLebmuTvNbgQGMVtbFSBKyIi/pGUkMTEzIls3L+R/Yf3n3F7h48d5j+r/pPRfUbzo/wfUXBeQRSiFPFW5yxwfeDQoUOkpqaSlpbG+++/z9q1axk7dmybrxkzZgwrV65k4cKFrF27ltraWgAuueQSZs2axYIFC3DO8cwzz/C73/2uA74LiXcLihe0S7vNI7jtsUNztCQlJPF54+cqcEVExFfuvOTOqLX1ydFPeOLNJ1i+Yzkz187kooyLQjnaL1IS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\n",
      "text/plain": [
       "<Figure size 1152x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(16,8))\n",
    "plt.subplot(121)\n",
    "for i in eids:\n",
    "    history = sql.get_all_history(i)\n",
    "    history = pd.DataFrame(history)\n",
    "    history.columns = ['jid', 'score','eid','rid','start_time','end_time','job_config']\n",
    "    sql.cursor.execute(\"SELECT * FROM experiment where eid = ?\", (i,))\n",
    "    label = json.loads(sql.cursor.fetchone()[4])['proposer']\n",
    "    plt.plot(history.score, label=label)\n",
    "plt.legend()\n",
    "plt.xlabel(\"Iteration\")\n",
    "plt.ylabel(\"Accuracy\")\n",
    "plt.yscale(\"log\")\n",
    "\n",
    "plt.subplot(122)\n",
    "for i in eids:\n",
    "    history = sql.get_all_history(i)\n",
    "    history = pd.DataFrame(history)\n",
    "    history.columns = ['jid', 'score','eid','rid','start_time','end_time','job_config']\n",
    "    sql.cursor.execute(\"SELECT * FROM experiment where eid = ?\", (i,))\n",
    "    label = json.loads(sql.cursor.fetchone()[4])['proposer']\n",
    "    plt.plot(history.score.cummin(), label=label)\n",
    "plt.legend()\n",
    "plt.xlabel(\"Iteration\")\n",
    "plt.ylabel(\"Best Accuracy so far\")\n",
    "plt.yscale(\"log\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "sql.close()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}


================================================
FILE: Examples/2dfunc_diff_opt/README.md
================================================
# Rosenbrock demo

## Setup

    python -m aup.setup

To setup different resource configuration, see [resource example](../2dfunc_diff_res/README.md).

## Experiment

    python -m aup experiment_sequence.json --log warn
    python -m aup experiment_random.json
    python -m aup experiment_spearmint.json
    python -m aup experiment_hyperopt.json

Results are presented in [Hist
Download .txt
gitextract_g8wyt_2k/

├── .coveragerc
├── .dockerignore
├── .gitignore
├── .travis.yml
├── CODE_OF_CONDUCT.md
├── Examples/
│   ├── .gitignore
│   ├── 2dfunc_diff_mult_res/
│   │   ├── README.md
│   │   ├── cpu.ini
│   │   ├── exp_cpu.json
│   │   └── rosenbrock_hpo.py
│   ├── 2dfunc_diff_opt/
│   │   ├── .gitignore
│   │   ├── History.ipynb
│   │   ├── README.md
│   │   ├── experiment_auto.json
│   │   ├── experiment_bohb.json
│   │   ├── experiment_hyperband.json
│   │   ├── experiment_hyperopt.json
│   │   ├── experiment_random.json
│   │   ├── experiment_sequence.json
│   │   ├── experiment_spearmint.json
│   │   ├── rosenbrock_hpo.py
│   │   └── rosenbrock_origin.py
│   ├── 2dfunc_diff_res/
│   │   ├── README.md
│   │   ├── aws.txt
│   │   ├── cpu.ini
│   │   ├── env_local_template.ini
│   │   ├── env_user_template.ini
│   │   ├── exp_aws.json
│   │   ├── exp_cpu.json
│   │   ├── exp_gpu.json
│   │   ├── exp_node.json
│   │   ├── exp_node_async.json
│   │   ├── exp_passive.json
│   │   ├── gpu.txt
│   │   ├── node.txt
│   │   ├── plainGPU.txt
│   │   ├── rosenbrock_hpo.py
│   │   └── singleGPU.txt
│   ├── cai_eas/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── eas/
│   │   │   ├── client.py
│   │   │   ├── data_providers/
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base_provider.py
│   │   │   │   ├── cifar.py
│   │   │   │   ├── downloader.py
│   │   │   │   ├── svhn.py
│   │   │   │   └── utils.py
│   │   │   ├── expdir_monitor/
│   │   │   │   ├── __init__.py
│   │   │   │   └── expdir_monitor.py
│   │   │   ├── experiment.json
│   │   │   └── models/
│   │   │       ├── __init__.py
│   │   │       ├── basic_model.py
│   │   │       ├── convnet.py
│   │   │       ├── dense_net.py
│   │   │       ├── layer_cascade.py
│   │   │       ├── layer_multi_branch.py
│   │   │       ├── layers.py
│   │   │       └── utils.py
│   │   └── start_nets/
│   │       └── start_net_convnet_small_C10+/
│   │           ├── init
│   │           └── net.config
│   ├── compression/
│   │   ├── mnist_pytorch/
│   │   │   ├── README.md
│   │   │   ├── exp_activation_apoz_rank.json
│   │   │   ├── exp_activation_apoz_rank_dependency_aware.json
│   │   │   ├── exp_activation_mean_rank.json
│   │   │   ├── exp_activation_mean_rank_dependency_aware.json
│   │   │   ├── exp_admm.json
│   │   │   ├── exp_agp.json
│   │   │   ├── exp_amc.json
│   │   │   ├── exp_auto_activation_apoz_rank.json
│   │   │   ├── exp_auto_activation_mean_rank.json
│   │   │   ├── exp_auto_admm.json
│   │   │   ├── exp_auto_agp.json
│   │   │   ├── exp_auto_fpgm_aup_args.json
│   │   │   ├── exp_auto_fpgm_bohb.json
│   │   │   ├── exp_auto_fpgm_hyperband.json
│   │   │   ├── exp_auto_fpgm_hyperopt.json
│   │   │   ├── exp_auto_fpgm_no_expand.json
│   │   │   ├── exp_auto_fpgm_random.json
│   │   │   ├── exp_auto_fpgm_random_no_expand.json
│   │   │   ├── exp_auto_fpgm_sequence.json
│   │   │   ├── exp_auto_fpgm_spearmint.json
│   │   │   ├── exp_auto_l1filter.json
│   │   │   ├── exp_auto_l2filter.json
│   │   │   ├── exp_auto_level.json
│   │   │   ├── exp_auto_lottery_ticket.json
│   │   │   ├── exp_auto_taylor_fo.json
│   │   │   ├── exp_autocompress.json
│   │   │   ├── exp_fpgm.json
│   │   │   ├── exp_fpgm_aup_args.json
│   │   │   ├── exp_fpgm_dependency_aware.json
│   │   │   ├── exp_l1filter.json
│   │   │   ├── exp_l1filter_dependency_aware.json
│   │   │   ├── exp_l2filter.json
│   │   │   ├── exp_l2filter_dependency_aware.json
│   │   │   ├── exp_level.json
│   │   │   ├── exp_lottery_ticket.json
│   │   │   ├── exp_net_adapt.json
│   │   │   ├── exp_quantization_bnn.json
│   │   │   ├── exp_quantization_dorefa.json
│   │   │   ├── exp_quantization_naive.json
│   │   │   ├── exp_quantization_qat.json
│   │   │   ├── exp_sensitivity.json
│   │   │   ├── exp_simulated_annealing.json
│   │   │   ├── exp_taylor_fo.json
│   │   │   ├── exp_taylor_fo_dependency_aware.json
│   │   │   ├── mnist.py
│   │   │   ├── mnist_admm.py
│   │   │   ├── mnist_agp.py
│   │   │   ├── mnist_amc.py
│   │   │   ├── mnist_aup_args.py
│   │   │   ├── mnist_autocompress.py
│   │   │   ├── mnist_dependency_aware.py
│   │   │   ├── mnist_lottery_ticket.py
│   │   │   ├── mnist_net_adapt.py
│   │   │   ├── mnist_no_speedup.py
│   │   │   ├── mnist_pretrained.pth
│   │   │   ├── mnist_pretrained.py
│   │   │   ├── mnist_sensitivity.py
│   │   │   └── mnist_simulated_annealing.py
│   │   ├── mnist_tensorflow/
│   │   │   ├── README.md
│   │   │   ├── exp_auto_level.json
│   │   │   ├── exp_level.json
│   │   │   ├── mnist.py
│   │   │   └── mnist_pretrained.py
│   │   └── utility_functions/
│   │       ├── README.md
│   │       └── mnist.py
│   ├── converter_examples/
│   │   ├── Convert_Benchmark/
│   │   │   ├── .gitignore
│   │   │   ├── Benchmark.ipynb
│   │   │   ├── README.md
│   │   │   ├── repdata.py
│   │   │   └── script_mobilenet.py
│   │   ├── Convert_Profiler/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── convert_onnx.json
│   │   │   ├── convert_tflite.json
│   │   │   ├── download_test_models.py
│   │   │   ├── env_onnx.template
│   │   │   ├── env_tflite.template
│   │   │   ├── model_names_tflite.txt
│   │   │   ├── test_perf_onnx.py
│   │   │   ├── test_perf_tflite.py
│   │   │   └── tflite_output.txt
│   │   ├── README.md
│   │   ├── Tested_Models/
│   │   │   ├── .gitignore
│   │   │   ├── README.md
│   │   │   ├── conversion_jsons/
│   │   │   │   ├── convert_checkpoint_to_onnx.json
│   │   │   │   ├── convert_checkpoint_to_tflite.json
│   │   │   │   ├── convert_keras_to_onnx.json
│   │   │   │   ├── convert_keras_to_tflite.json
│   │   │   │   ├── convert_protobuf_to_onnx.json
│   │   │   │   ├── convert_protobuf_to_tflite.json
│   │   │   │   ├── convert_pytorch_to_onnx.json
│   │   │   │   ├── convert_pytorch_to_tflite.json
│   │   │   │   ├── convert_savedmodel_to_onnx.json
│   │   │   │   └── convert_savedmodel_to_tflite.json
│   │   │   ├── convert_pb_to_tflite.json
│   │   │   ├── create_test_models.py
│   │   │   ├── download_models.py
│   │   │   └── download_urls.json
│   │   └── dlconvert_requirements.txt
│   ├── decorator_example/
│   │   ├── origin.py
│   │   └── use_decorator.py
│   ├── demo/
│   │   ├── .gitignore
│   │   ├── demo.yml
│   │   ├── experiment_wrapper.json
│   │   ├── hpo_wrapper.py
│   │   └── origin.py
│   ├── early_stopping/
│   │   ├── README.md
│   │   ├── mnist_keras/
│   │   │   ├── cpu.ini
│   │   │   ├── exp_BOHB_bandit.json
│   │   │   ├── exp_BOHB_curve_fitting.json
│   │   │   ├── exp_BOHB_median.json
│   │   │   ├── exp_BOHB_trunc.json
│   │   │   ├── exp_random_bandit.json
│   │   │   ├── exp_random_curve_fitting.json
│   │   │   ├── exp_random_median.json
│   │   │   ├── exp_random_trunc.json
│   │   │   ├── exp_spearmint_bandit.json
│   │   │   ├── exp_spearmint_curve_fitting.json
│   │   │   ├── exp_spearmint_median.json
│   │   │   ├── exp_spearmint_trunc.json
│   │   │   └── mnist.py
│   │   └── quad_equation_min/
│   │       ├── cpu.ini
│   │       ├── quad_min.py
│   │       ├── quad_min_BOHB_bandit.json
│   │       ├── quad_min_BOHB_median.json
│   │       ├── quad_min_BOHB_trunc.json
│   │       ├── quad_min_random_bandit.json
│   │       ├── quad_min_random_median.json
│   │       ├── quad_min_random_trunc.json
│   │       ├── quad_min_spearmint_bandit.json
│   │       ├── quad_min_spearmint_median.json
│   │       └── quad_min_spearmint_trunc.json
│   ├── hpo_mnist/
│   │   ├── .gitignore
│   │   ├── MNIST Hyperparameter Optimization Demo.ipynb
│   │   ├── README.md
│   │   ├── demo.json
│   │   ├── exp_aws_async.json
│   │   ├── exp_aws_demo.json
│   │   ├── exp_aws_retry_job.json
│   │   ├── exp_bohb.json
│   │   ├── exp_hyperband.json
│   │   ├── exp_hyperopt.json
│   │   ├── exp_random.json
│   │   ├── exp_random_async.json
│   │   ├── exp_sequence.json
│   │   ├── exp_spearmint.json
│   │   ├── job_retries_random.json
│   │   ├── mnist_hpo_demo.py
│   │   └── mnist_hpo_fail.py
│   ├── intermediate_results/
│   │   ├── README.md
│   │   └── quad_equation_min/
│   │       ├── quad_min.py
│   │       ├── quad_min_BOHB.json
│   │       ├── quad_min_random.json
│   │       └── quad_min_spearmint.json
│   ├── job_failure_control/
│   │   ├── README.md
│   │   ├── experiment_extra_argument.json
│   │   ├── experiment_job_ignore_fail.json
│   │   ├── experiment_job_retries.json
│   │   ├── experiment_job_retries_ignore_fail.json
│   │   ├── experiment_no_nsample.json
│   │   ├── experiment_no_param_config.json
│   │   ├── experiment_no_proposer.json
│   │   ├── experiment_no_resource.json
│   │   ├── experiment_no_script.json
│   │   ├── experiment_test.json
│   │   ├── rosenbrock_hpo.py
│   │   └── test.py
│   ├── mnist_keras_save_model/
│   │   ├── README.md
│   │   ├── cpu.ini
│   │   ├── exp_random_cpu.json
│   │   ├── exp_random_node.json
│   │   ├── mnist.py
│   │   ├── mnist_wo_decorator.py
│   │   └── node.txt
│   ├── profiler_examples/
│   │   ├── README.md
│   │   ├── bench/
│   │   │   ├── download.sh
│   │   │   └── test_perf.py
│   │   ├── env_benchmark.template
│   │   ├── env_mnist.template
│   │   ├── experiments/
│   │   │   └── Readme.md
│   │   ├── internal/
│   │   │   └── ImageNet Experiments.ipynb
│   │   ├── issues.md
│   │   ├── mnist/
│   │   │   └── mnist.py
│   │   └── model_names.txt
│   ├── quad_equation_min/
│   │   ├── QUAD_MIN_Demo.ipynb
│   │   ├── cpu.ini
│   │   ├── quad_min.py
│   │   ├── quad_min_BOHB.json
│   │   ├── quad_min_random.json
│   │   └── quad_min_spearmint.json
│   ├── tf_flags/
│   │   ├── README.md
│   │   ├── experiment.json
│   │   ├── rosenbrock_hpo.py
│   │   └── rosenbrock_tf.py
│   └── tf_iris_diff_opt/
│       ├── History.ipynb
│       ├── README.md
│       ├── experiment_demo.json
│       ├── experiment_hpo.json
│       ├── experiment_hyperband.json
│       ├── experiment_random.json
│       ├── experiment_sequence.json
│       ├── experiment_spearmint.json
│       ├── iris_data.py
│       ├── premade_estimator.py
│       ├── premade_estimator_hpo.py
│       ├── premade_estimator_hyper.py
│       └── premade_estimator_wrapper.py
├── LICENSE
├── MANIFEST.in
├── R-src/
│   ├── README.md
│   ├── Rpackage/
│   │   ├── DESCRIPTION
│   │   ├── NAMESPACE
│   │   ├── R/
│   │   │   └── auptimizer.R
│   │   ├── man/
│   │   │   ├── get_config.Rd
│   │   │   └── print_result.Rd
│   │   ├── tests/
│   │   │   ├── testthat/
│   │   │   │   ├── test_IO.R
│   │   │   │   └── test_io.json
│   │   │   └── testthat.R
│   │   └── vignettes/
│   │       ├── .gitignore
│   │       └── auptimizer.Rmd
│   └── examples/
│       ├── exp_ridge.R
│       ├── exp_rosenbrock.R
│       ├── ridge.json
│       ├── ridgeRegression.R
│       ├── rosenbrock.R
│       └── rosenbrock.json
├── README.md
├── docs/
│   ├── Database/
│   │   ├── schema.dot
│   │   ├── schema.sql
│   │   └── sql_graphviz.py
│   ├── Dockerfile
│   ├── LICENSE
│   ├── Makefile
│   ├── README.rst
│   ├── _static/
│   │   └── .gitkeep
│   ├── algorithm.rst
│   ├── archive/
│   │   ├── Auptimizer-1.0-py2-none-any.whl
│   │   ├── Auptimizer-1.0-py3-none-any.whl
│   │   ├── Auptimizer-1.1-py2-none-any.whl
│   │   ├── Auptimizer-1.1-py3-none-any.whl
│   │   ├── Auptimizer-1.2-py2-none-any.whl
│   │   ├── Auptimizer-1.2-py3-none-any.whl
│   │   ├── Auptimizer-1.3-py2-none-any.whl
│   │   ├── Auptimizer-1.3-py3-none-any.whl
│   │   ├── Auptimizer-1.4-py2.py3-none-any.whl
│   │   ├── Auptimizer-2.0-py2.py3-none-any.whl
│   │   └── aup.py
│   ├── aup.EE.Experiment.rst
│   ├── aup.EE.Job.rst
│   ├── aup.EE.Resource.rst
│   ├── aup.EE.rst
│   ├── aup.ET.Connector.rst
│   ├── aup.ET.rst
│   ├── aup.Proposer.BOHBProposer.rst
│   ├── aup.Proposer.EASProposer.rst
│   ├── aup.Proposer.HyperbandProposer.rst
│   ├── aup.Proposer.HyperoptProposer.rst
│   ├── aup.Proposer.RandomProposer.rst
│   ├── aup.Proposer.SequenceProposer.rst
│   ├── aup.Proposer.SpearmintProposer.rst
│   ├── aup.Proposer.rst
│   ├── aup.__main__.rst
│   ├── aup.compression.rst
│   ├── aup.convert.rst
│   ├── aup.dlconvert.rst
│   ├── aup.dlconvert_API.rst
│   ├── aup.init.rst
│   ├── aup.profiler.rst
│   ├── aup.rst
│   ├── aup.setup.rst
│   ├── aup.setupdb.rst
│   ├── aup.setupdb.sqlite.rst
│   ├── aup.setupdb_API.rst
│   ├── aup.utils.rst
│   ├── aup.visualize.rst
│   ├── compression.rst
│   ├── compression_main.rst
│   ├── compression_utilities.rst
│   ├── compressors.rst
│   ├── conf.py
│   ├── dashboard.rst
│   ├── demo.rst
│   ├── developer.rst
│   ├── developer_guide.rst
│   ├── dlconvert.rst
│   ├── dlconvert_example.rst
│   ├── dlconvert_readme.rst
│   ├── early_stop.rst
│   ├── edge.rst
│   ├── environment.rst
│   ├── errors.rst
│   ├── experiment.rst
│   ├── hpo.rst
│   ├── index.rst
│   ├── install.rst
│   ├── prepare.sh
│   ├── prof_example.rst
│   ├── prof_readme.rst
│   ├── profiler.rst
│   ├── r_user.rst
│   ├── requirements.txt
│   ├── setup.rst
│   └── version.rst
├── oss-package.info
├── publish.sh
├── requirements.txt
├── setup.py
├── src/
│   └── aup/
│       ├── EE/
│       │   ├── Experiment.py
│       │   ├── Job.py
│       │   ├── Resource/
│       │   │   ├── AWSResourceManager.py
│       │   │   ├── AbstractResourceManager.py
│       │   │   ├── CPUResourceManager.py
│       │   │   ├── GPUResourceManager.py
│       │   │   ├── PassiveResourceManager.py
│       │   │   ├── SSHResourceManager.py
│       │   │   ├── __init__.py
│       │   │   └── utils/
│       │   │       ├── ResourceThreadPoolExecutor.py
│       │   │       ├── __init__.py
│       │   │       └── curve_fitting.py
│       │   └── __init__.py
│       ├── ET/
│       │   ├── Connector/
│       │   │   ├── AbstractConnector.py
│       │   │   ├── SQLiteConnector.py
│       │   │   └── __init__.py
│       │   └── __init__.py
│       ├── Proposer/
│       │   ├── AbstractProposer.py
│       │   ├── BOHBProposer.py
│       │   ├── EASProposer.py
│       │   ├── HyperbandProposer.py
│       │   ├── HyperoptProposer.py
│       │   ├── Hyperopt_LICENSE
│       │   ├── RandomProposer.py
│       │   ├── SequenceProposer.py
│       │   ├── SpearmintProposer.py
│       │   ├── Spearmint_LICENSE
│       │   ├── __init__.py
│       │   ├── eas/
│       │   │   ├── LICENSE
│       │   │   ├── __init__.py
│       │   │   ├── arch_search/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── arch_search_convnet_net2net.py
│       │   │   │   └── arch_search_densenet_net2net.py
│       │   │   ├── arch_search.py
│       │   │   ├── client.py
│       │   │   ├── data_providers/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base_provider.py
│       │   │   │   ├── cifar.py
│       │   │   │   ├── downloader.py
│       │   │   │   ├── svhn.py
│       │   │   │   └── utils.py
│       │   │   ├── expdir_monitor/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── arch_manager.py
│       │   │   │   ├── distributed.py
│       │   │   │   └── expdir_monitor.py
│       │   │   ├── main.py
│       │   │   ├── meta_controller/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base_controller.py
│       │   │   │   └── rl_controller.py
│       │   │   ├── models/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── basic_model.py
│       │   │   │   ├── convnet.py
│       │   │   │   ├── dense_net.py
│       │   │   │   ├── layer_cascade.py
│       │   │   │   ├── layer_multi_branch.py
│       │   │   │   ├── layers.py
│       │   │   │   └── utils.py
│       │   │   ├── run_dense_net.py
│       │   │   └── run_simple_convnet.py
│       │   ├── hpbandster/
│       │   │   ├── __init__.py
│       │   │   ├── core/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base_config_generator.py
│       │   │   │   ├── base_iteration.py
│       │   │   │   ├── dispatcher.py
│       │   │   │   ├── master.py
│       │   │   │   ├── nameserver.py
│       │   │   │   ├── result.py
│       │   │   │   └── worker.py
│       │   │   ├── examples/
│       │   │   │   ├── README.txt
│       │   │   │   ├── __init__.py
│       │   │   │   ├── commons.py
│       │   │   │   ├── example_1_local_sequential.py
│       │   │   │   ├── example_2_local_parallel_threads.py
│       │   │   │   ├── example_3_local_parallel_processes.py
│       │   │   │   ├── example_4_cluster.py
│       │   │   │   ├── example_5_keras_worker.py
│       │   │   │   ├── example_5_mnist.py
│       │   │   │   ├── example_5_pytorch_worker.py
│       │   │   │   ├── example_5_run/
│       │   │   │   │   ├── configs.json
│       │   │   │   │   └── results.json
│       │   │   │   ├── example_8_mnist_continued.py
│       │   │   │   ├── plot_example_6_analysis.py
│       │   │   │   └── plot_example_7_interactive_plot.py
│       │   │   ├── optimizers/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── bohb.py
│       │   │   │   ├── config_generators/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── bohb.py
│       │   │   │   │   ├── h2bo.py
│       │   │   │   │   ├── kde.py
│       │   │   │   │   ├── lcnet.py
│       │   │   │   │   └── random_sampling.py
│       │   │   │   ├── h2bo.py
│       │   │   │   ├── hyperband.py
│       │   │   │   ├── iterations/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── successivehalving.py
│       │   │   │   │   └── successiveresampling.py
│       │   │   │   ├── kde/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── kernels.py
│       │   │   │   │   └── mvkde.py
│       │   │   │   ├── lcnet.py
│       │   │   │   ├── learning_curve_models/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── arif.py
│       │   │   │   │   ├── base.py
│       │   │   │   │   └── lcnet.py
│       │   │   │   └── randomsearch.py
│       │   │   ├── utils.py
│       │   │   ├── visualization.py
│       │   │   └── workers/
│       │   │       ├── __init__.py
│       │   │       └── hpolibbenchmark.py
│       │   ├── hpbandster_LICENSE
│       │   ├── hyperband_LICENSE
│       │   ├── hyperopt/
│       │   │   ├── LICENSE.txt
│       │   │   ├── __init__.py
│       │   │   ├── algobase.py
│       │   │   ├── anneal.py
│       │   │   ├── base.py
│       │   │   ├── criteria.py
│       │   │   ├── exceptions.py
│       │   │   ├── fmin.py
│       │   │   ├── graphviz.py
│       │   │   ├── hp.py
│       │   │   ├── ipy.py
│       │   │   ├── main.py
│       │   │   ├── mix.py
│       │   │   ├── mongoexp.py
│       │   │   ├── plotting.py
│       │   │   ├── pyll/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── base.py
│       │   │   │   └── stochastic.py
│       │   │   ├── pyll_utils.py
│       │   │   ├── rand.py
│       │   │   ├── rdists.py
│       │   │   ├── tpe.py
│       │   │   ├── utils.py
│       │   │   └── vectorize.py
│       │   └── spearmint/
│       │       ├── ExperimentGrid.py
│       │       ├── Locker.py
│       │       ├── __init__.py
│       │       ├── chooser/
│       │       │   ├── CMAChooser.py
│       │       │   ├── GPConstrainedEIChooser.py
│       │       │   ├── GPEIChooser.py
│       │       │   ├── GPEIOptChooser.py
│       │       │   ├── GPEIperSecChooser.py
│       │       │   ├── RandomChooser.py
│       │       │   ├── RandomForestEIChooser.py
│       │       │   ├── SequentialChooser.py
│       │       │   ├── __init__.py
│       │       │   └── cma.py
│       │       ├── gp.py
│       │       ├── helpers.py
│       │       ├── runner.py
│       │       ├── sobol_lib.py
│       │       ├── spearmint_pb2.py
│       │       └── util.py
│       ├── RestAPI/
│       │   ├── __init__.py
│       │   ├── server.py
│       │   └── templates/
│       │       └── home.html
│       ├── __init__.py
│       ├── __main__.py
│       ├── aup.py
│       ├── compression/
│       │   ├── Compressor.py
│       │   ├── NNI-LICENSE
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── tensorflow/
│       │   │   ├── __init__.py
│       │   │   ├── compressor.py
│       │   │   ├── default_layers.py
│       │   │   └── pruning/
│       │   │       ├── __init__.py
│       │   │       └── one_shot.py
│       │   ├── torch/
│       │   │   ├── __init__.py
│       │   │   ├── _graph_utils.py
│       │   │   ├── compressor.py
│       │   │   ├── default_layers.py
│       │   │   ├── parameter_expressions.py
│       │   │   ├── pruning/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── admm_pruner.py
│       │   │   │   ├── agp.py
│       │   │   │   ├── amc/
│       │   │   │   │   ├── __init__.py
│       │   │   │   │   ├── amc_pruner.py
│       │   │   │   │   ├── channel_pruning_env.py
│       │   │   │   │   └── lib/
│       │   │   │   │       ├── __init__.py
│       │   │   │   │       ├── agent.py
│       │   │   │   │       ├── memory.py
│       │   │   │   │       ├── net_measure.py
│       │   │   │   │       └── utils.py
│       │   │   │   ├── apply_compression.py
│       │   │   │   ├── auto_compress_pruner.py
│       │   │   │   ├── constants.py
│       │   │   │   ├── constants_pruner.py
│       │   │   │   ├── finegrained_pruning.py
│       │   │   │   ├── lottery_ticket.py
│       │   │   │   ├── net_adapt_pruner.py
│       │   │   │   ├── one_shot.py
│       │   │   │   ├── sensitivity_pruner.py
│       │   │   │   ├── simulated_annealing_pruner.py
│       │   │   │   ├── structured_pruning.py
│       │   │   │   └── weight_masker.py
│       │   │   ├── quantization/
│       │   │   │   ├── __init__.py
│       │   │   │   └── quantizers.py
│       │   │   ├── speedup/
│       │   │   │   ├── __init__.py
│       │   │   │   ├── compress_modules.py
│       │   │   │   ├── compressor.py
│       │   │   │   └── infer_shape.py
│       │   │   ├── torch_utils.py
│       │   │   └── utils/
│       │   │       ├── __init__.py
│       │   │       ├── config_validation.py
│       │   │       ├── counter.py
│       │   │       ├── mask_conflict.py
│       │   │       ├── num_param_counter.py
│       │   │       ├── sensitivity_analysis.py
│       │   │       ├── shape_dependency.py
│       │   │       └── utils.py
│       │   └── utils.py
│       ├── convert.py
│       ├── dashboard/
│       │   ├── README.md
│       │   ├── __init__.py
│       │   ├── dashboard.py
│       │   └── frontend/
│       │       ├── .browserslistrc
│       │       ├── .editorconfig
│       │       ├── .eslintrc.json
│       │       ├── .gitignore
│       │       ├── .prettierignore
│       │       ├── .prettierrc
│       │       ├── Angular-LICENSE
│       │       ├── README.md
│       │       ├── angular.json
│       │       ├── e2e/
│       │       │   ├── protractor.conf.js
│       │       │   ├── src/
│       │       │   │   ├── app.e2e-spec.ts
│       │       │   │   └── app.po.ts
│       │       │   └── tsconfig.json
│       │       ├── febuild/
│       │       │   └── auptimizer-dashboard/
│       │       │       ├── 3rdpartylicenses.txt
│       │       │       ├── 4.3bf463bd37e16d085b6c.js
│       │       │       ├── 5.0e291298e9c49cb93c71.js
│       │       │       ├── _redirects
│       │       │       ├── index.html
│       │       │       ├── main.09d22743789a55973001.js
│       │       │       ├── polyfills.9cfb3f513e777138fb2c.js
│       │       │       ├── runtime.29a333e72cc7398676d0.js
│       │       │       └── styles.5a1d2b21684fc92c4f99.css
│       │       ├── karma.conf.js
│       │       ├── package.json
│       │       ├── src/
│       │       │   ├── _redirects
│       │       │   ├── app/
│       │       │   │   ├── @core/
│       │       │   │   │   ├── app-load.service.ts
│       │       │   │   │   └── core.module.ts
│       │       │   │   ├── app-routing.module.ts
│       │       │   │   ├── app.component.html
│       │       │   │   ├── app.component.scss
│       │       │   │   ├── app.component.spec.ts
│       │       │   │   ├── app.component.ts
│       │       │   │   ├── app.module.ts
│       │       │   │   ├── app.service.ts
│       │       │   │   ├── appStore/
│       │       │   │   │   ├── app-state.model.ts
│       │       │   │   │   ├── app.actions.ts
│       │       │   │   │   └── app.store.ts
│       │       │   │   ├── guards/
│       │       │   │   │   └── db.guard.ts
│       │       │   │   ├── main/
│       │       │   │   │   ├── containers/
│       │       │   │   │   │   ├── index.ts
│       │       │   │   │   │   └── main/
│       │       │   │   │   │       ├── main.component.html
│       │       │   │   │   │       ├── main.component.scss
│       │       │   │   │   │       ├── main.component.spec.ts
│       │       │   │   │   │       └── main.component.ts
│       │       │   │   │   ├── experiment/
│       │       │   │   │   │   ├── components/
│       │       │   │   │   │   │   ├── experiment-dropdown/
│       │       │   │   │   │   │   │   ├── experiment-dropdown.component.html
│       │       │   │   │   │   │   │   ├── experiment-dropdown.component.scss
│       │       │   │   │   │   │   │   ├── experiment-dropdown.component.spec.ts
│       │       │   │   │   │   │   │   └── experiment-dropdown.component.ts
│       │       │   │   │   │   │   ├── header/
│       │       │   │   │   │   │   │   ├── header.component.html
│       │       │   │   │   │   │   │   ├── header.component.scss
│       │       │   │   │   │   │   │   ├── header.component.spec.ts
│       │       │   │   │   │   │   │   └── header.component.ts
│       │       │   │   │   │   │   ├── index.ts
│       │       │   │   │   │   │   ├── sidenav/
│       │       │   │   │   │   │   │   ├── sidenav.component.html
│       │       │   │   │   │   │   │   ├── sidenav.component.scss
│       │       │   │   │   │   │   │   ├── sidenav.component.spec.ts
│       │       │   │   │   │   │   │   └── sidenav.component.ts
│       │       │   │   │   │   │   └── sidenav-element/
│       │       │   │   │   │   │       ├── sidenav-element.component.html
│       │       │   │   │   │   │       ├── sidenav-element.component.scss
│       │       │   │   │   │   │       ├── sidenav-element.component.spec.ts
│       │       │   │   │   │   │       └── sidenav-element.component.ts
│       │       │   │   │   │   ├── containers/
│       │       │   │   │   │   │   ├── create-experiment/
│       │       │   │   │   │   │   │   ├── create-experiment.component.html
│       │       │   │   │   │   │   │   ├── create-experiment.component.scss
│       │       │   │   │   │   │   │   ├── create-experiment.component.spec.ts
│       │       │   │   │   │   │   │   ├── create-experiment.component.ts
│       │       │   │   │   │   │   │   └── exampleJSON.ts
│       │       │   │   │   │   │   ├── experiment/
│       │       │   │   │   │   │   │   ├── experiment.component.html
│       │       │   │   │   │   │   │   ├── experiment.component.scss
│       │       │   │   │   │   │   │   ├── experiment.component.spec.ts
│       │       │   │   │   │   │   │   └── experiment.component.ts
│       │       │   │   │   │   │   ├── index.ts
│       │       │   │   │   │   │   ├── initialize/
│       │       │   │   │   │   │   │   ├── initialize.component.html
│       │       │   │   │   │   │   │   ├── initialize.component.scss
│       │       │   │   │   │   │   │   ├── initialize.component.spec.ts
│       │       │   │   │   │   │   │   └── initialize.component.ts
│       │       │   │   │   │   │   ├── interm-results/
│       │       │   │   │   │   │   │   ├── interm-results.component.html
│       │       │   │   │   │   │   │   ├── interm-results.component.scss
│       │       │   │   │   │   │   │   ├── interm-results.component.spec.ts
│       │       │   │   │   │   │   │   └── interm-results.component.ts
│       │       │   │   │   │   │   ├── job-status/
│       │       │   │   │   │   │   │   ├── job-status.component.html
│       │       │   │   │   │   │   │   ├── job-status.component.scss
│       │       │   │   │   │   │   │   ├── job-status.component.spec.ts
│       │       │   │   │   │   │   │   └── job-status.component.ts
│       │       │   │   │   │   │   ├── list/
│       │       │   │   │   │   │   │   ├── list.component.html
│       │       │   │   │   │   │   │   ├── list.component.scss
│       │       │   │   │   │   │   │   ├── list.component.spec.ts
│       │       │   │   │   │   │   │   └── list.component.ts
│       │       │   │   │   │   │   ├── main/
│       │       │   │   │   │   │   │   ├── main.component.html
│       │       │   │   │   │   │   │   ├── main.component.scss
│       │       │   │   │   │   │   │   ├── main.component.spec.ts
│       │       │   │   │   │   │   │   └── main.component.ts
│       │       │   │   │   │   │   ├── multi-exp-comp/
│       │       │   │   │   │   │   │   ├── multi-exp-comp.component.html
│       │       │   │   │   │   │   │   ├── multi-exp-comp.component.scss
│       │       │   │   │   │   │   │   ├── multi-exp-comp.component.spec.ts
│       │       │   │   │   │   │   │   └── multi-exp-comp.component.ts
│       │       │   │   │   │   │   ├── notification/
│       │       │   │   │   │   │   │   ├── notification.component.html
│       │       │   │   │   │   │   │   ├── notification.component.scss
│       │       │   │   │   │   │   │   ├── notification.component.spec.ts
│       │       │   │   │   │   │   │   └── notification.component.ts
│       │       │   │   │   │   │   ├── overview/
│       │       │   │   │   │   │   │   ├── overview.component.html
│       │       │   │   │   │   │   │   ├── overview.component.scss
│       │       │   │   │   │   │   │   ├── overview.component.spec.ts
│       │       │   │   │   │   │   │   └── overview.component.ts
│       │       │   │   │   │   │   └── pcg/
│       │       │   │   │   │   │       ├── pcg.component.html
│       │       │   │   │   │   │       ├── pcg.component.scss
│       │       │   │   │   │   │       ├── pcg.component.spec.ts
│       │       │   │   │   │   │       └── pcg.component.ts
│       │       │   │   │   │   ├── experiment-routing.module.ts
│       │       │   │   │   │   ├── experiment.module.ts
│       │       │   │   │   │   ├── services/
│       │       │   │   │   │   │   └── experiment.service.ts
│       │       │   │   │   │   └── store/
│       │       │   │   │   │       ├── experiment-state.model.ts
│       │       │   │   │   │       ├── experiment.actions.ts
│       │       │   │   │   │       └── experiment.store.ts
│       │       │   │   │   ├── main-routing.module.ts
│       │       │   │   │   └── main.module.ts
│       │       │   │   ├── material/
│       │       │   │   │   └── material.module.ts
│       │       │   │   ├── models/
│       │       │   │   │   ├── data/
│       │       │   │   │   │   ├── custom-icons.data.ts
│       │       │   │   │   │   ├── graph-colors.data.ts
│       │       │   │   │   │   ├── nav-items.ts
│       │       │   │   │   │   └── plotly-hidden-displays.ts
│       │       │   │   │   ├── enum/
│       │       │   │   │   │   ├── experiment-status.enum.ts
│       │       │   │   │   │   ├── experiment-view-type.enum.ts
│       │       │   │   │   │   ├── notification-type.enum.ts
│       │       │   │   │   │   └── theme-option.enum.ts
│       │       │   │   │   ├── experiment.model.ts
│       │       │   │   │   ├── nav-items.model.ts
│       │       │   │   │   ├── progress-bar.model.ts
│       │       │   │   │   └── resource.model.ts
│       │       │   │   ├── page-not-found/
│       │       │   │   │   ├── page-not-found.component.html
│       │       │   │   │   ├── page-not-found.component.scss
│       │       │   │   │   ├── page-not-found.component.spec.ts
│       │       │   │   │   └── page-not-found.component.ts
│       │       │   │   └── shared/
│       │       │   │       ├── dialogs/
│       │       │   │       │   ├── confirm/
│       │       │   │       │   │   ├── confirm-dialog.component.html
│       │       │   │       │   │   ├── confirm-dialog.component.scss
│       │       │   │       │   │   └── confirm-dialog.component.ts
│       │       │   │       │   └── index.ts
│       │       │   │       ├── pipes/
│       │       │   │       │   ├── experiment-status.pipe.ts
│       │       │   │       │   ├── first-letter-uppercase/
│       │       │   │       │   │   ├── first-letter-uppercase.pipe.spec.ts
│       │       │   │       │   │   └── first-letter-uppercase.pipe.ts
│       │       │   │       │   ├── index.ts
│       │       │   │       │   ├── min-to-hour/
│       │       │   │       │   │   ├── min-to-hour.pipe.spec.ts
│       │       │   │       │   │   └── min-to-hour.pipe.ts
│       │       │   │       │   ├── notification-icon.pipe.ts
│       │       │   │       │   ├── progressBarWidth.pipe.ts
│       │       │   │       │   ├── roudNumber.pipe.ts
│       │       │   │       │   ├── sec-to-min/
│       │       │   │       │   │   ├── sec-to-min.pipe.spec.ts
│       │       │   │       │   │   └── sec-to-min.pipe.ts
│       │       │   │       │   └── truncate.pipe.ts
│       │       │   │       ├── services/
│       │       │   │       │   ├── api.service.ts
│       │       │   │       │   ├── color-scheme.service.ts
│       │       │   │       │   ├── helper.service.ts
│       │       │   │       │   ├── index.ts
│       │       │   │       │   ├── snackbar.service.ts
│       │       │   │       │   └── utils.service.ts
│       │       │   │       ├── shared.module.ts
│       │       │   │       └── validators/
│       │       │   │           ├── at-least.validator.ts
│       │       │   │           └── index.ts
│       │       │   ├── assets/
│       │       │   │   └── .gitkeep
│       │       │   ├── environments/
│       │       │   │   ├── environment.prod.ts
│       │       │   │   └── environment.ts
│       │       │   ├── index.html
│       │       │   ├── main.ts
│       │       │   ├── polyfills.ts
│       │       │   ├── scss/
│       │       │   │   ├── _colors.scss
│       │       │   │   ├── _helpers.scss
│       │       │   │   ├── _material-overrides.scss
│       │       │   │   ├── jsoneditor-dark.scss
│       │       │   │   ├── jsoneditor.scss
│       │       │   │   ├── main.scss
│       │       │   │   └── theme.scss
│       │       │   ├── styles.scss
│       │       │   └── test.ts
│       │       ├── tailwind.config.js
│       │       ├── tsconfig.app.json
│       │       ├── tsconfig.json
│       │       ├── tsconfig.spec.json
│       │       └── webpack.config.js
│       ├── dlconvert/
│       │   ├── .gitignore
│       │   ├── README.md
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── __version__.py
│       │   ├── checkpoint_to_onnx.py
│       │   ├── checkpoint_to_pb.py
│       │   ├── checkpoint_to_tflite.py
│       │   ├── keras_to_onnx.py
│       │   ├── keras_to_pb.py
│       │   ├── keras_to_tflite.py
│       │   ├── pb_to_onnx.py
│       │   ├── pb_to_tflite.py
│       │   ├── pytorch_to_keras.py
│       │   ├── pytorch_to_onnx.py
│       │   ├── pytorch_to_tflite.py
│       │   ├── savedmodel_to_onnx.py
│       │   ├── savedmodel_to_tflite.py
│       │   ├── spec_utils/
│       │   │   ├── __init__.py
│       │   │   └── pb.py
│       │   ├── to_frozen_pb.py
│       │   ├── to_onnx.py
│       │   ├── to_tflite.py
│       │   └── utils.py
│       ├── init.py
│       ├── profiler/
│       │   ├── README.md
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── calculate.py
│       │   ├── compile_stats.py
│       │   ├── issues.md
│       │   ├── profiler.sh
│       │   └── statscript.sh
│       ├── setup.py
│       ├── setupdb/
│       │   ├── __init__.py
│       │   ├── __main__.py
│       │   ├── reset.py
│       │   └── sqlite.py
│       ├── utils.py
│       └── visualize.py
└── tests/
    ├── EE/
    │   ├── Resource/
    │   │   ├── .gitignore
    │   │   ├── __init__.py
    │   │   ├── test_AbstractResourceManager.py
    │   │   ├── test_CPUResourceManager.py
    │   │   ├── test_GPUResourceManager.py
    │   │   ├── test_PassiveResourceManager.py
    │   │   └── test_SSHResourceManager.py
    │   ├── __init__.py
    │   ├── test_Experiment.py
    │   └── test_Job.py
    ├── ET/
    │   ├── Connector/
    │   │   ├── __init__.py
    │   │   └── test_SQLiteConnector.py
    │   └── __init__.py
    ├── Proposer/
    │   ├── __init__.py
    │   ├── test_AbstractProposer.py
    │   ├── test_BOHBProposer.py
    │   ├── test_HyperbandProposer.py
    │   ├── test_HyperoptProposer.py
    │   ├── test_RandomProposer.py
    │   ├── test_SequenceProposer.py
    │   └── test_SpearmintProposer.py
    ├── __init__.py
    ├── command/
    │   ├── __init__.py
    │   ├── test_convert.py
    │   └── test_setup.py
    ├── compression/
    │   ├── __init__.py
    │   ├── test_aup_compressor.py
    │   ├── test_compression_utils.py
    │   ├── test_compressor_tf.py
    │   ├── test_compressor_torch.py
    │   └── test_model_speedup.py
    ├── data/
    │   ├── config/
    │   │   ├── test_read.json
    │   │   └── test_wrong.json
    │   ├── exp4.json
    │   ├── exp4_no_name.json
    │   ├── exp4_no_param.json
    │   ├── exp4_no_script.json
    │   ├── exp5.json
    │   ├── exp6.json
    │   ├── exp7.json
    │   ├── gpus.txt
    │   ├── nodes.txt
    │   ├── plain_env.ini
    │   ├── target_gpu_env.ini
    │   ├── target_plain_env.ini
    │   ├── task1.py
    │   ├── task2.py
    │   ├── task3.py
    │   ├── task4.py
    │   ├── task5.py
    │   ├── task6.py
    │   ├── task7.py
    │   ├── task8.py
    │   ├── test_script.py
    │   ├── wrapper1.json
    │   └── wrapper2.json
    ├── dlconvert/
    │   ├── .gitignore
    │   ├── Dockerfile_tf1
    │   ├── Dockerfile_tf2
    │   ├── README.md
    │   ├── __init__.py
    │   ├── data/
    │   │   ├── .gitignore
    │   │   ├── create_test_model.py
    │   │   ├── evaluate_pred.py
    │   │   ├── flag_names.json
    │   │   ├── prepare.sh
    │   │   ├── prepare_docker.sh
    │   │   ├── pytorch_model.py
    │   │   └── repdata.py
    │   ├── dlconvert_requirements.txt
    │   ├── pytest.ini
    │   ├── test_checkpoint_to_onnx.py
    │   ├── test_checkpoint_to_pb.py
    │   ├── test_checkpoint_to_tflite.py
    │   ├── test_keras_to_onnx.py
    │   ├── test_keras_to_pb.py
    │   ├── test_keras_to_tflite.py
    │   ├── test_pb_to_onnx.py
    │   ├── test_pb_to_tflite.py
    │   ├── test_pytorch_to_keras.py
    │   ├── test_pytorch_to_onnx.py
    │   ├── test_pytorch_to_tflite.py
    │   ├── test_savedmodel_to_onnx.py
    │   ├── test_savedmodel_to_tflite.py
    │   ├── unittest_tf1.sh
    │   └── unittest_tf2.sh
    ├── setupdb/
    │   ├── __init__.py
    │   └── test_sqlite.py
    ├── test_BasicConfig.py
    ├── test_utils.py
    └── test_wrapper.py
Copy disabled (too large) Download .txt
Showing preview only (86,732K chars total). Download the full file to get everything.
SYMBOL INDEX (13556 symbols across 368 files)

FILE: Examples/2dfunc_diff_mult_res/rosenbrock_hpo.py
  function rosenbrock (line 34) | def rosenbrock(x, y, a=1, b=100):

FILE: Examples/2dfunc_diff_opt/rosenbrock_hpo.py
  function rosenbrock (line 34) | def rosenbrock(x, y, a=1, b=100):

FILE: Examples/2dfunc_diff_opt/rosenbrock_origin.py
  function rosenbrock (line 12) | def rosenbrock(x, y, a=1, b=100):

FILE: Examples/2dfunc_diff_res/rosenbrock_hpo.py
  function rosenbrock (line 34) | def rosenbrock(x, y, a=1, b=100):

FILE: Examples/cai_eas/eas/client.py
  function run (line 16) | def run(expdir):
  function main (line 26) | def main():

FILE: Examples/cai_eas/eas/data_providers/base_provider.py
  class DataSet (line 4) | class DataSet:
    method num_examples (line 8) | def num_examples(self):
    method next_batch (line 12) | def next_batch(self, batch_size):
  class ImagesDataSet (line 17) | class ImagesDataSet(DataSet):
    method measure_mean_and_std (line 21) | def measure_mean_and_std(images):
    method shuffle_images_and_labels (line 32) | def shuffle_images_and_labels(images, labels):
    method normalize_images (line 39) | def normalize_images(images, normalization_type, meanstd=None):
  class DataProvider (line 65) | class DataProvider:
    method data_shape (line 69) | def data_shape(self):
    method n_classes (line 74) | def n_classes(self):
    method labels_to_one_hot (line 78) | def labels_to_one_hot(self, labels):
    method labels_from_one_hot (line 89) | def labels_from_one_hot(labels):

FILE: Examples/cai_eas/eas/data_providers/cifar.py
  function augment_image (line 12) | def augment_image(image, pad):
  function augment_all_images (line 34) | def augment_all_images(initial_images, pad=4):
  class CifarDataSet (line 41) | class CifarDataSet(ImagesDataSet):
    method __init__ (line 42) | def __init__(self, images, labels, n_classes, shuffle, normalization, ...
    method start_new_epoch (line 80) | def start_new_epoch(self):
    method num_examples (line 93) | def num_examples(self):
    method next_batch (line 96) | def next_batch(self, batch_size):
  class CifarDataProvider (line 109) | class CifarDataProvider(DataProvider):
    method __init__ (line 111) | def __init__(self, save_path=None, validation_size=None, shuffle=None,...
    method save_path (line 175) | def save_path(self):
    method data_url (line 182) | def data_url(self):
    method data_shape (line 189) | def data_shape(self):
    method n_classes (line 193) | def n_classes(self):
    method get_filenames (line 196) | def get_filenames(self, save_path):
    method read_cifar (line 200) | def read_cifar(self, filenames):
  class Cifar10DataProvider (line 223) | class Cifar10DataProvider(CifarDataProvider):
    method get_filenames (line 227) | def get_filenames(self, save_path):
  class Cifar100DataProvider (line 237) | class Cifar100DataProvider(CifarDataProvider):
    method get_filenames (line 241) | def get_filenames(self, save_path):
  class Cifar10AugmentedDataProvider (line 248) | class Cifar10AugmentedDataProvider(Cifar10DataProvider):
  class Cifar100AugmentedDataProvider (line 253) | class Cifar100AugmentedDataProvider(Cifar100DataProvider):

FILE: Examples/cai_eas/eas/data_providers/downloader.py
  function report_download_progress (line 8) | def report_download_progress(count, block_size, total_size):
  function download_data_url (line 15) | def download_data_url(url, download_dir):

FILE: Examples/cai_eas/eas/data_providers/svhn.py
  class SVHNDataSet (line 11) | class SVHNDataSet(ImagesDataSet):
    method __init__ (line 14) | def __init__(self, images, labels, shuffle, normalization):
    method start_new_epoch (line 35) | def start_new_epoch(self):
    method num_examples (line 44) | def num_examples(self):
    method next_batch (line 47) | def next_batch(self, batch_size):
  class SVHNDataProvider (line 64) | class SVHNDataProvider(DataProvider):
    method __init__ (line 65) | def __init__(self, save_path=None, validation_size=None, shuffle=False...
    method get_images_and_labels (line 119) | def get_images_and_labels(self, name_part, one_hot=False):
    method n_classes (line 132) | def n_classes(self):
    method save_path (line 136) | def save_path(self):
    method data_url (line 142) | def data_url(self):
    method data_shape (line 146) | def data_shape(self):

FILE: Examples/cai_eas/eas/data_providers/utils.py
  function get_data_provider_by_name (line 6) | def get_data_provider_by_name(name, train_params):

FILE: Examples/cai_eas/eas/expdir_monitor/expdir_monitor.py
  class ExpdirMonitor (line 9) | class ExpdirMonitor:
    method __init__ (line 10) | def __init__(self, expdir):
    method logs (line 15) | def logs(self): return '%s/logs' % self.expdir
    method checkpoint (line 18) | def checkpoint(self): return '%s/checkpoint' % self.expdir
    method snapshot (line 21) | def snapshot(self): return '%s/snapshot' % self.expdir
    method output (line 24) | def output(self): return '%s/output' % self.expdir
    method init (line 27) | def init(self): return '%s/init' % self.expdir
    method run_config_path (line 30) | def run_config_path(self): return '%s/run.config' % self.expdir
    method net_config_path (line 33) | def net_config_path(self): return '%s/net.config' % self.expdir
    method load_run_config (line 35) | def load_run_config(self, print_info=False, dataset='C10+'):
    method load_init (line 47) | def load_init(self):
    method load_net_config (line 54) | def load_net_config(self, init, print_info=False):
    method run (line 62) | def run(self, pure=True, restore=False, test=False, valid=False, valid...

FILE: Examples/cai_eas/eas/models/basic_model.py
  class BasicModel (line 11) | class BasicModel:
    method __init__ (line 12) | def __init__(self, path, data_provider, run_config, net_config, pure=F...
    method save_path (line 38) | def save_path(self):
    method logs_path (line 47) | def logs_path(self):
    method _build_graph (line 56) | def _build_graph(self, only_forward=False):
    method _define_inputs (line 59) | def _define_inputs(self):
    method _initialize_session (line 76) | def _initialize_session(self, set_logs=True):
    method train_all_epochs (line 88) | def train_all_epochs(self, start_epoch=1):
    method train_one_epoch (line 131) | def train_one_epoch(self, data, batch_size, learning_rate):
    method test (line 159) | def test(self, data, batch_size):
    method save_config (line 191) | def save_config(self, save_path, print_info=True):
    method save_init (line 200) | def save_init(self, save_path, print_info=True):
    method pure_train (line 208) | def pure_train(self):
    method save_model (line 230) | def save_model(self, global_step=None):
    method load_model (line 233) | def load_model(self):
    method log_loss_accuracy (line 241) | def log_loss_accuracy(self, loss, accuracy, epoch, prefix, should_prin...
    method _count_trainable_params (line 256) | def _count_trainable_params():
    method dropout (line 267) | def dropout(_input, keep_prob, is_training):
    method weight_variable (line 279) | def weight_variable(shape, name, initializer):
    method avg_pool (line 287) | def avg_pool(_input, k=2, s=2):
    method max_pool (line 297) | def max_pool(_input, k=2, s=2):
    method conv2d (line 307) | def conv2d(_input, out_features, kernel_size, strides=1, padding='SAME...
    method fc_layer (line 321) | def fc_layer(_input, out_units, use_bias=False, param_initializer=None):
    method batch_norm (line 338) | def batch_norm(_input, is_training, epsilon=1e-3, decay=0.999, param_i...
    method activation (line 345) | def activation(_input, activation='relu'):
    method build_optimizer (line 360) | def build_optimizer(learning_rate, opt_name, opt_param):
    method flatten (line 369) | def flatten(_input):

FILE: Examples/cai_eas/eas/models/convnet.py
  class SimpleConvnetConfig (line 9) | class SimpleConvnetConfig:
    method __init__ (line 10) | def __init__(self):
    method weight_decay (line 20) | def weight_decay(self): return self.net_config['weight_decay']
    method bn_epsilon (line 23) | def bn_epsilon(self): return self.net_config['bn_epsilon']
    method bn_decay (line 26) | def bn_decay(self): return self.net_config['bn_decay']
    method drop_scheme (line 29) | def drop_scheme(self): return self.net_config['drop_scheme']
    method depth (line 32) | def depth(self): return self.layer_cascade.depth
    method get_config (line 34) | def get_config(self):
    method copy (line 41) | def copy(self):
    method renew_init (line 46) | def renew_init(self, convnet):
    method set_standard_convnet (line 51) | def set_standard_convnet(self, data_provider: DataProvider, conv_block...
    method set_net_from_config (line 99) | def set_net_from_config(self, net_config_json, init=None, print_info=T...
    method widen (line 108) | def widen(self, layer_idx, new_width, widen_type='output_dim', noise=N...
    method deepen (line 113) | def deepen(self, layer_idx, new_layer_config):
    method set_identity4deepen (line 116) | def set_identity4deepen(self, to_set_layers, data_provider, batch_size...
  class SimpleConvnet (line 159) | class SimpleConvnet(BasicModel):
    method _build_graph (line 160) | def _build_graph(self, only_forward=False):

FILE: Examples/cai_eas/eas/models/dense_net.py
  function get_block_by_name (line 10) | def get_block_by_name(name):
  class TransitionBlock (line 19) | class TransitionBlock(LayerCascade):
    method get_config (line 20) | def get_config(self):
    method set_from_config (line 27) | def set_from_config(config_json, init=None, return_class=True):
    method prev_widen (line 31) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 35) | def widen(self, loc, new_width, widen_type='output_dim', noise=None, i...
    method deepen (line 38) | def deepen(self, loc, new_layer_config, input_dim):
  class DenseBlock (line 42) | class DenseBlock:
    method __init__ (line 43) | def __init__(self, _id, miniblocks):
    method id (line 50) | def id(self):
    method id (line 54) | def id(self, value):
    method depth (line 58) | def depth(self):
    method out_features_dim (line 64) | def out_features_dim(self, in_features_dim):
    method build (line 70) | def build(self, _input, densenet, store_output_op=False):
    method get_config (line 80) | def get_config(self):
    method renew_init (line 87) | def renew_init(self, densenet):
    method set_from_config (line 94) | def set_from_config(config_json, init=None):
    method insert_miniblock (line 106) | def insert_miniblock(self, idx, miniblock_config, input_dim, noise=Non...
    method prev_widen (line 173) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 190) | def widen(self, loc, new_width, widen_type='output_dim', noise=None, i...
    method deepen (line 224) | def deepen(self, loc, new_layer_config, input_dim):
  class DenseNetConfig (line 231) | class DenseNetConfig:
    method __init__ (line 232) | def __init__(self):
    method model_type (line 246) | def model_type(self): return self.net_config['model_type']
    method weight_decay (line 249) | def weight_decay(self): return self.net_config['weight_decay']
    method first_ratio (line 252) | def first_ratio(self): return self.net_config['first_ratio']
    method reduction (line 255) | def reduction(self): return self.net_config['reduction']
    method bc_ratio (line 258) | def bc_ratio(self): return self.net_config['bc_ratio']
    method bn_epsilon (line 261) | def bn_epsilon(self): return self.net_config['bn_epsilon']
    method bn_decay (line 264) | def bn_decay(self): return self.net_config['bn_decay']
    method depth (line 267) | def depth(self):
    method average_growth_rate (line 274) | def average_growth_rate(self):
    method copy (line 283) | def copy(self):
    method get_config (line 288) | def get_config(self):
    method renew_init (line 295) | def renew_init(self, densenet):
    method set_standard_dense_net (line 300) | def set_standard_dense_net(self, data_provider: DataProvider, growth_r...
    method set_net_from_config (line 389) | def set_net_from_config(self, net_config_json, init=None, print_info=T...
    method widen (line 405) | def widen(self, loc, new_width, widen_type='output_dim', noise=None, i...
    method deepen (line 423) | def deepen(self, loc, new_layer_config, image_channel=3):
    method set_identity4deepen (line 435) | def set_identity4deepen(self, to_set_layers, data_provider, batch_size...
    method insert_miniblock (line 477) | def insert_miniblock(self, loc, miniblock_config, image_channel=3, noi...
  class DenseNet (line 492) | class DenseNet(BasicModel):
    method _build_graph (line 493) | def _build_graph(self, only_forward=False):

FILE: Examples/cai_eas/eas/models/layer_cascade.py
  class LayerCascade (line 5) | class LayerCascade:
    method __init__ (line 6) | def __init__(self, _id, layers):
    method id (line 13) | def id(self):
    method id (line 17) | def id(self, value):
    method out_features_dim (line 21) | def out_features_dim(self):
    method depth (line 30) | def depth(self):
    method get_str (line 37) | def get_str(self):
    method build (line 41) | def build(self, _input, densenet, store_output_op=False):
    method get_config (line 50) | def get_config(self):
    method renew_init (line 56) | def renew_init(self, densenet):
    method copy (line 62) | def copy(self):
    method set_from_config (line 66) | def set_from_config(config_json, init=None, return_class=True):
    method prev_widen (line 82) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 90) | def widen(self, idx, new_width, widen_type='output_dim', noise=None):
    method deepen (line 113) | def deepen(self, idx, new_layer_config, input_dim):

FILE: Examples/cai_eas/eas/models/layer_multi_branch.py
  class LayerMultiBranch (line 6) | class LayerMultiBranch:
    method __init__ (line 7) | def __init__(self, _id, branches, merge=None, in_bottle=None, out_bott...
    method id (line 24) | def id(self):
    method id (line 28) | def id(self, value):
    method out_features_dim (line 32) | def out_features_dim(self):
    method depth (line 46) | def depth(self):
    method get_str (line 58) | def get_str(self):
    method build (line 65) | def build(self, _input, densenet, store_output_op=False):
    method get_config (line 90) | def get_config(self):
    method renew_init (line 99) | def renew_init(self, densenet):
    method set_from_config (line 108) | def set_from_config(config_json, init=None):
    method prev_widen (line 130) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 137) | def widen(self, loc, new_width, widen_type='output_dim', noise=None):
    method deepen (line 184) | def deepen(self, loc, new_layer_config, input_dim):
    method remapped_branches (line 199) | def remapped_branches(self, noise=None):

FILE: Examples/cai_eas/eas/models/layers.py
  function apply_noise (line 7) | def apply_noise(weights, noise_config):
  function get_layer_by_name (line 25) | def get_layer_by_name(name):
  function get_magnifier (line 36) | def get_magnifier(old_size, indices):
  function get_random_remapping (line 44) | def get_random_remapping(old_size, new_size):
  class BaseLayer (line 52) | class BaseLayer:
    method __init__ (line 56) | def __init__(self, _id, use_bn=True, activation='relu', keep_prob=1.0,...
    method id (line 69) | def id(self): return self._id
    method id (line 72) | def id(self, value): self._id = value
    method init (line 75) | def init(self):
    method param_initializer (line 79) | def param_initializer(self):
    method renew_init (line 90) | def renew_init(self, net: BasicModel):
    method copy (line 102) | def copy(self):
    method get_config (line 105) | def get_config(self):
    method variable_list (line 115) | def variable_list(self):
    method set_from_config (line 132) | def set_from_config(layer_config, layer_init):
    method build (line 135) | def build(self, _input, net, store_output_op):
    method prev_widen (line 138) | def prev_widen(self, indices, magnifier, noise=None):
    method set_identity_layer (line 141) | def set_identity_layer(self, strict, param, noise):
    method widen_bn (line 144) | def widen_bn(self, indices, magnifier, noise=None):
    method set_bn_identity (line 151) | def set_bn_identity(self, strict=True, param=None, noise=None):
  class ConvLayer (line 164) | class ConvLayer(BaseLayer):
    method __init__ (line 165) | def __init__(self, _id, filter_num, kernel_size=3, strides=1,
    method layer_str (line 173) | def layer_str(self):
    method variable_list (line 177) | def variable_list(self):
    method get_config (line 182) | def get_config(self):
    method set_from_config (line 192) | def set_from_config(layer_config, layer_init=None):
    method build (line 197) | def build(self, _input, net: BasicModel, store_output_op=False):
    method widen_filters (line 230) | def widen_filters(self, new_filter_num, noise=None):
    method prev_widen (line 249) | def prev_widen(self, indices, magnifier, noise=None):
    method set_identity_layer (line 256) | def set_identity_layer(self, strict=True, param=None, noise=None):
    method remap (line 265) | def remap(self, indices, noise=None):
  class FCLayer (line 274) | class FCLayer(BaseLayer):
    method __init__ (line 275) | def __init__(self, _id, units, use_bn=True, use_bias=False, activation...
    method layer_str (line 282) | def layer_str(self):
    method variable_list (line 286) | def variable_list(self):
    method get_config (line 293) | def get_config(self):
    method set_from_config (line 302) | def set_from_config(layer_config, layer_init=None):
    method build (line 307) | def build(self, _input, net: BasicModel, store_output_op=False):
    method widen_units (line 340) | def widen_units(self, new_units_num, noise=None):
    method prev_widen (line 364) | def prev_widen(self, indices, magnifier, noise=None):
    method set_identity_layer (line 371) | def set_identity_layer(self, strict=True, param=None, noise=None):
    method remap (line 380) | def remap(self, indices, noise=None):
  class PoolLayer (line 391) | class PoolLayer(BaseLayer):
    method __init__ (line 392) | def __init__(self, _id, _type, kernel_size=2, strides=2, use_bn=False,...
    method layer_str (line 401) | def layer_str(self):
    method get_config (line 404) | def get_config(self):
    method set_from_config (line 414) | def set_from_config(layer_config, layer_init=None):
    method build (line 419) | def build(self, _input, net: BasicModel, store_output_op=False):
    method set_identity_layer (line 460) | def set_identity_layer(self, strict=True, param=None, noise=None):
    method prev_widen (line 463) | def prev_widen(self, indices, magnifier, noise=None):

FILE: Examples/cai_eas/eas/models/utils.py
  function get_model_config_by_name (line 6) | def get_model_config_by_name(name):
  function get_model_by_name (line 15) | def get_model_by_name(name):
  class RunConfig (line 24) | class RunConfig:
    method __init__ (line 25) | def __init__(self, batch_size, n_epochs, init_lr, reduce_lr_epochs, re...
    method get_config (line 46) | def get_config(self):
    method update (line 49) | def update(self, new_config):
    method copy (line 52) | def copy(self):
    method learning_rate (line 55) | def learning_rate(self, epoch):
    method get_default_run_config (line 71) | def get_default_run_config(dataset='C10+'):

FILE: Examples/compression/mnist_pytorch/mnist.py
  class Net (line 29) | class Net(nn.Module):
    method __init__ (line 30) | def __init__(self):
    method forward (line 39) | def forward(self, x):
  function train (line 55) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 72) | def test(model, device, test_loader):
  function main (line 93) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_admm.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_agp.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_amc.py
  function train (line 21) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 38) | def test(model, device, test_loader):
  function main (line 59) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_aup_args.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 84) | def main(compression_type, compression_framework, compressor, config_list):

FILE: Examples/compression/mnist_pytorch/mnist_autocompress.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_dependency_aware.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_lottery_ticket.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_net_adapt.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_no_speedup.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_pretrained.py
  class Net (line 11) | class Net(nn.Module):
    method __init__ (line 12) | def __init__(self):
    method forward (line 21) | def forward(self, x):
  function train (line 37) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 54) | def test(model, device, test_loader):
  function main (line 73) | def main():

FILE: Examples/compression/mnist_pytorch/mnist_sensitivity.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_pytorch/mnist_simulated_annealing.py
  class Net (line 19) | class Net(nn.Module):
    method __init__ (line 20) | def __init__(self):
    method forward (line 29) | def forward(self, x):
  function train (line 45) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 62) | def test(model, device, test_loader):
  function main (line 83) | def main(config):

FILE: Examples/compression/mnist_tensorflow/mnist.py
  function get_model (line 33) | def get_model(**kwargs):
  function test_model (line 50) | def test_model(model, test_dataset):
  function main (line 58) | def main(config):

FILE: Examples/compression/mnist_tensorflow/mnist_pretrained.py
  function get_model (line 21) | def get_model(**kwargs):
  function test_model (line 38) | def test_model(model, test_dataset):
  function main (line 46) | def main():

FILE: Examples/compression/utility_functions/mnist.py
  class Net (line 33) | class Net(nn.Module):
    method __init__ (line 34) | def __init__(self):
    method forward (line 43) | def forward(self, x):
  function train (line 59) | def train(args, model, device, train_loader, optimizer, epoch):
  function test (line 76) | def test(model, device, test_loader):
  function main (line 97) | def main():

FILE: Examples/converter_examples/Convert_Benchmark/repdata.py
  function parse_arg (line 12) | def parse_arg():
  function get_dataset (line 20) | def get_dataset():

FILE: Examples/converter_examples/Convert_Benchmark/script_mobilenet.py
  function preprocess (line 27) | def preprocess(name):
  function push_to_device (line 42) | def push_to_device(name):
  function run_benchmark (line 52) | def run_benchmark(name):
  function compile_results (line 69) | def compile_results(infer, memo, df, of, op, alpha, size):
  function convert (line 100) | def convert(name, size, op):

FILE: Examples/converter_examples/Convert_Profiler/download_test_models.py
  function download_all_url (line 16) | def download_all_url(all_urls, model_folder):

FILE: Examples/converter_examples/Convert_Profiler/test_perf_onnx.py
  function compute (line 16) | def compute(model_path):

FILE: Examples/converter_examples/Convert_Profiler/test_perf_tflite.py
  function compute (line 18) | def compute(model_path):

FILE: Examples/converter_examples/Tested_Models/create_test_models.py
  class Test_Model_Classification (line 33) | class Test_Model_Classification(object):
    method __init__ (line 34) | def __init__(self, model_name):
    method create_model (line 37) | def create_model(self):
  class Test_Model_Segmentation (line 41) | class Test_Model_Segmentation(object):
    method __init__ (line 42) | def __init__(self, model_name):
    method create_model (line 45) | def create_model(self):
  class Test_Model_Video (line 49) | class Test_Model_Video(object):
    method __init__ (line 50) | def __init__(self, model_name):
    method create_model (line 53) | def create_model(self):
  function create_torch_cnn_models (line 57) | def create_torch_cnn_models():
  function create_keras_cnn_models (line 92) | def create_keras_cnn_models():
  function create_tf_lstm_model (line 100) | def create_tf_lstm_model():
  function create_tf_gru_model (line 127) | def create_tf_gru_model():

FILE: Examples/converter_examples/Tested_Models/download_models.py
  function download_all_url (line 11) | def download_all_url(url_file, model_folder):

FILE: Examples/decorator_example/origin.py
  function func (line 2) | def func(hyperparameter):
  function main (line 17) | def main(unused):

FILE: Examples/decorator_example/use_decorator.py
  function func (line 7) | def func(hyperparameter):
  function main (line 21) | def main():

FILE: Examples/demo/hpo_wrapper.py
  function demo_func (line 8) | def demo_func(x, a=1, b=0):

FILE: Examples/demo/origin.py
  function demo_func (line 5) | def demo_func(x, a=1, b=0):

FILE: Examples/early_stopping/mnist_keras/mnist.py
  function get_flops (line 44) | def get_flops():
  function get_model (line 54) | def get_model(**kwargs):
  class CustomCallback (line 74) | class CustomCallback(keras.callbacks.Callback):
    method on_train_batch_end (line 77) | def on_train_batch_end(self, batch, logs=None):
    method on_train_begin (line 82) | def on_train_begin(self, logs=None):
  function init (line 85) | def init(**kwargs):
  function do_train (line 90) | def do_train(learning_rate=0.001, dropout=0.1, conv1=32, conv2=64):

FILE: Examples/early_stopping/quad_equation_min/quad_min.py
  function rosenbrock (line 17) | def rosenbrock(x, a=2, b=4, c=5):

FILE: Examples/hpo_mnist/mnist_hpo_demo.py
  function conv_net (line 65) | def conv_net(x_dict, n_classes, reuse, is_training):
  function model_fn (line 101) | def model_fn(features, labels, mode):
  function train (line 139) | def train():
  function get_flop (line 165) | def get_flop():
  function main (line 177) | def main(_):

FILE: Examples/hpo_mnist/mnist_hpo_fail.py
  function conv_net (line 65) | def conv_net(x_dict, n_classes, reuse, is_training):
  function model_fn (line 101) | def model_fn(features, labels, mode):
  function train (line 139) | def train():
  function get_flop (line 165) | def get_flop():
  function main (line 177) | def main(_):

FILE: Examples/intermediate_results/quad_equation_min/quad_min.py
  function rosenbrock (line 17) | def rosenbrock(x, a=2, b=4, c=5):

FILE: Examples/job_failure_control/rosenbrock_hpo.py
  function rosenbrock (line 32) | def rosenbrock(x, y, a=1, b=100):

FILE: Examples/mnist_keras_save_model/mnist.py
  function get_flops (line 44) | def get_flops():
  function get_model (line 54) | def get_model(**kwargs):
  function do_train (line 75) | def do_train(learning_rate=0.001, dropout=0.1, conv1=32, conv2=64):
  function save_model (line 102) | def save_model(model):

FILE: Examples/mnist_keras_save_model/mnist_wo_decorator.py
  function get_flops (line 45) | def get_flops():
  function get_model (line 55) | def get_model(**kwargs):
  function do_train (line 75) | def do_train(learning_rate=0.001, dropout=0.1, conv1=32, conv2=64,
  function save_model_fun (line 119) | def save_model_fun(model):

FILE: Examples/profiler_examples/bench/test_perf.py
  function compute (line 18) | def compute(model_path):

FILE: Examples/profiler_examples/mnist/mnist.py
  function conv_net (line 30) | def conv_net(x_dict, n_classes, dropout, reuse, is_training):
  function model_fn (line 66) | def model_fn(features, labels, mode):

FILE: Examples/quad_equation_min/quad_min.py
  function rosenbrock (line 35) | def rosenbrock(x, a=2, b=4, c=5):

FILE: Examples/tf_flags/rosenbrock_hpo.py
  function rosenbrock (line 49) | def rosenbrock(x, y, a=1, b=100):
  function main (line 54) | def main(unused):

FILE: Examples/tf_flags/rosenbrock_tf.py
  function rosenbrock (line 22) | def rosenbrock(x, y, a=1, b=100):
  function main (line 26) | def main(unused):

FILE: Examples/tf_iris_diff_opt/iris_data.py
  function maybe_download (line 13) | def maybe_download():
  function load_data (line 19) | def load_data(y_name='Species'):
  function train_input_fn (line 32) | def train_input_fn(features, labels, batch_size):
  function eval_input_fn (line 44) | def eval_input_fn(features, labels, batch_size):
  function _parse_line (line 71) | def _parse_line(line):
  function csv_input_fn (line 84) | def csv_input_fn(csv_path, batch_size):

FILE: Examples/tf_iris_diff_opt/premade_estimator.py
  function main (line 34) | def main(argv):

FILE: Examples/tf_iris_diff_opt/premade_estimator_hpo.py
  function main (line 46) | def main(conf):

FILE: Examples/tf_iris_diff_opt/premade_estimator_hyper.py
  function main (line 38) | def main(layer1, layer2):

FILE: Examples/tf_iris_diff_opt/premade_estimator_wrapper.py
  function main (line 39) | def main(layer1, layer2):
  function aup_wrapper (line 99) | def aup_wrapper(config):

FILE: docs/Database/schema.sql
  type user (line 1) | CREATE TABLE user
  type resource (line 3) | CREATE TABLE resource
  type experiment (line 5) | CREATE TABLE experiment
  type job (line 8) | CREATE TABLE job
  type job_attempt (line 13) | CREATE TABLE job_attempt
  type intermediate_result (line 17) | CREATE TABLE intermediate_result
  type multiple_result (line 20) | CREATE TABLE multiple_result

FILE: docs/Database/sql_graphviz.py
  function field_act (line 9) | def field_act(s, loc, tok):
  function field_list_act (line 13) | def field_list_act(s, loc, tok):
  function create_table_act (line 17) | def create_table_act(s, loc, tok):
  function add_fkey_act (line 29) | def add_fkey_act(s, loc, tok):
  function other_statement_act (line 33) | def other_statement_act(s, loc, tok):
  function grammar (line 37) | def grammar():
  function graphviz (line 64) | def graphviz(filename):

FILE: docs/archive/aup.py
  function print_result (line 38) | def print_result(result):
  class BasicConfig (line 52) | class BasicConfig(dict):
    method load (line 63) | def load(self, filename):
    method save (line 80) | def save(self, filename):
    method _get_format (line 93) | def _get_format(filename):
    method _load_json (line 100) | def _load_json(filename):
    method _load_pkl (line 105) | def _load_pkl(filename):
    method _save_json (line 109) | def _save_json(self, filename):
    method _save_pkl (line 113) | def _save_pkl(self, filename):
    method save_flags (line 118) | def save_flags(filename):
    method to_flags (line 129) | def to_flags(self, FLAGS):
    method __setattr__ (line 142) | def __setattr__(self, key, value):
    method __getattr__ (line 145) | def __getattr__(self, key):
    method __delattr__ (line 148) | def __delattr__(self, key):
    method __hash__ (line 151) | def __hash__(self):
  function aup_args (line 155) | def aup_args(func):
  function aup_flags (line 229) | def aup_flags(flags):
  function aup_save_model (line 254) | def aup_save_model(callback_fn, *args, **kwargs):

FILE: setup.py
  function find_version (line 10) | def find_version():

FILE: src/aup/EE/Experiment.py
  function _verify_config (line 37) | def _verify_config(config):
  class Experiment (line 50) | class Experiment:
    method __init__ (line 66) | def __init__(self,
    method add_suspend_signal (line 141) | def add_suspend_signal(self):
    method add_refresh_signal (line 144) | def add_refresh_signal(self):
    method finish (line 147) | def finish(self):
    method resume (line 182) | def resume(self, filename):
    method start (line 192) | def start(self):
    method submit_job (line 212) | def submit_job(self, job=None, rid_blacklist=None):
    method update (line 257) | def update(self, score, jid):
    method _suspend (line 306) | def _suspend(self, sig, frame):
    method _check_status (line 328) | def _check_status(self):
    method _force_refresh (line 354) | def _force_refresh(self, sig, frame):

FILE: src/aup/EE/Job.py
  class Job (line 29) | class Job:
    method __init__ (line 32) | def __init__(self, script, config, path=".", retries=3):
    method verify_local (line 63) | def verify_local(self):
    method verify_remote (line 90) | def verify_remote(self, remote, overwrite=False):  # pragma: no cover

FILE: src/aup/EE/Resource/AWSResourceManager.py
  function _is_instance_id (line 32) | def _is_instance_id(hostname):
  class AWSRemote (line 36) | class AWSRemote(Remote):  # pragma: no cover
    method change_status (line 41) | def change_status(cls, hostnames, target='start'):
    method verify (line 78) | def verify(cls, hostname):
    method __init__ (line 92) | def __init__(self, instance):
    method exec_command (line 126) | def exec_command(self, command, *args, **kwargs):
    method __enter__ (line 129) | def __enter__(self):
  class AWSResourceManager (line 147) | class AWSResourceManager(SSHResourceManager):  # pragma: no cover
    method __init__ (line 148) | def __init__(self, *args, **kwargs):
    method __del__ (line 156) | def __del__(self):
    method run (line 178) | def run(self, job, rid, *args, **kwargs):

FILE: src/aup/EE/Resource/AbstractResourceManager.py
  function get_resource_manager (line 44) | def get_resource_manager(resource, connector, n_parallel, auppath=DEFAUL...
  class AbstractResourceManager (line 68) | class AbstractResourceManager(ABC):
    method __init__ (line 76) | def __init__(self, connector, n_parallel, *args, **kwargs):
    method finish (line 123) | def finish(self, status="FINISHED"):
    method finish_job (line 138) | def finish_job(self, jid, score, status=None):
    method get_available (line 153) | def get_available(self, username, rtype, rid_blacklist=None):
    method run_job (line 170) | def run_job(self, job, rid, exp_config, call_back_func, **kwargs):
    method append_interm_res (line 199) | def append_interm_res(self, jid, interm_res):
    method append_multiple_results (line 214) | def append_multiple_results(self, jid, irid, eid, scores):
    method set_last_multiple_results (line 224) | def set_last_multiple_results(self, eid, jid):
    method stop_job (line 231) | def stop_job(self, jid):
    method is_job_stopped (line 243) | def is_job_stopped(self, jid):
    method run (line 256) | def run(self, job, rid, exp_config, call_back_func, **kwargs):
    method suspend (line 272) | def suspend(self):
    method run_curve_fitting (line 280) | def run_curve_fitting(self, interm_res, c_jid, step, comp_fn, curve_fi...
    method early_stop_daemon_fun (line 292) | def early_stop_daemon_fun(self):
    method refresh (line 378) | def refresh(self):
    method log_error_message (line 384) | def log_error_message(self, msg):

FILE: src/aup/EE/Resource/CPUResourceManager.py
  class CPUResourceManager (line 34) | class CPUResourceManager(AbstractResourceManager):
    method __init__ (line 35) | def __init__(self, connector, n_parallel, *args, **kwargs):
    method finish (line 47) | def finish(self, maximize=True, status="FINISHED"):
    method run (line 88) | def run(self, job, rid, exp_config, call_back_func, **kwargs):

FILE: src/aup/EE/Resource/GPUResourceManager.py
  function _load_gpu_mapping (line 29) | def _load_gpu_mapping(auppath=DEFAULT_AUPTIMIZER_PATH):
  class GPUResourceManager (line 40) | class GPUResourceManager(CPUResourceManager):
    method __init__ (line 41) | def __init__(self, connector, n_parallel, auppath=DEFAULT_AUPTIMIZER_P...
    method run (line 45) | def run(self, job, rid, exp_config, call_back_func, **kwargs):

FILE: src/aup/EE/Resource/PassiveResourceManager.py
  class PassiveResourceManager (line 27) | class PassiveResourceManager(AbstractResourceManager):
    method __init__ (line 28) | def __init__(self, connector, *args, **kwargs):
    method get_available (line 32) | def get_available(self, username, rtype):
    method run (line 43) | def run(self, job, rid, exp_config, call_back_func, **kwargs):

FILE: src/aup/EE/Resource/SSHResourceManager.py
  function parse_hostname (line 31) | def parse_hostname(host):
  class Remote (line 66) | class Remote(object):  # pragma: no cover
    method __init__ (line 67) | def __init__(self, host):
    method exec_command (line 80) | def exec_command(self, command, command_async=None, *args, **kwargs):
    method __enter__ (line 83) | def __enter__(self):
    method __exit__ (line 88) | def __exit__(self, exc_type, exc_val, exc_tb):
  class SSHResourceManager (line 92) | class SSHResourceManager(CPUResourceManager):  # pragma: no cover
    method __init__ (line 93) | def __init__(self, connector, n_parallel, key="node_mapping", auppath=...
    method load_node_mapping (line 124) | def load_node_mapping(key="node_mapping", auppath=DEFAULT_AUPTIMIZER_P...
    method run (line 134) | def run(self, job, rid, exp_config, call_back_func, **kwargs):
    method refresh (line 497) | def refresh(self):

FILE: src/aup/EE/Resource/utils/ResourceThreadPoolExecutor.py
  class ResourceThreadPoolExecutor (line 20) | class ResourceThreadPoolExecutor(ThreadPoolExecutor):
    method __init__ (line 21) | def __init__(self, *args, **kwargs):
    method submit (line 24) | def submit(self, fn, *args, **kwargs):

FILE: src/aup/EE/Resource/utils/curve_fitting.py
  function vap (line 11) | def vap(x, a, b, c):
  function pow3 (line 14) | def pow3(x, c, a, alpha):
  function linear (line 17) | def linear(x, a, b):
  function logx_linear (line 20) | def logx_linear(x, a, b):
  function dr_hill_zero_background (line 24) | def dr_hill_zero_background(x, theta, eta, kappa):
  function log_power (line 27) | def log_power(x, a, b, c):
  function pow4 (line 30) | def pow4(x, alpha, a, b, c):
  function mmf (line 33) | def mmf(x, alpha, beta, kappa, delta):
  function exp4 (line 36) | def exp4(x, c, a, b, alpha):
  function ilog2 (line 39) | def ilog2(x, c, a):
  function weibull (line 42) | def weibull(x, alpha, beta, kappa, delta):
  function janoschek (line 45) | def janoschek(x, a, beta, k, delta):
  class CurveModel (line 64) | class CurveModel:
    method __init__ (line 69) | def __init__(self, iterations):
    method fit_theta (line 72) | def fit_theta(self):
    method filter_curve (line 89) | def filter_curve(self, func_params):
    method normalize_weights (line 113) | def normalize_weights(self, samples, num_funcs):
    method f_comb (line 122) | def f_comb(self, pos, sample, funcs, func_params):
    method sigma_sq (line 129) | def sigma_sq(self, sample, funcs, func_params):
    method normal_distribution (line 136) | def normal_distribution(self, pos, sample, funcs, func_params):
    method likelihood (line 141) | def likelihood(self, samples, funcs, func_params):
    method prior (line 148) | def prior(self, samples, funcs, func_params):
    method target_distribution (line 158) | def target_distribution(self, samples, funcs, func_params):
    method mcmc_sampling (line 166) | def mcmc_sampling(self, filtered_funcs, func_params, timeout):
    method predict (line 183) | def predict(self, interm_res, timeout):

FILE: src/aup/ET/Connector/AbstractConnector.py
  class AbstractConnector (line 23) | class AbstractConnector(ABC):
    method close (line 26) | def close(self):
    method is_closed (line 33) | def is_closed(self):
    method free_used_resource (line 41) | def free_used_resource(self, rid):
    method get_resource_type (line 51) | def get_resource_type(self):
    method get_available_resource (line 60) | def get_available_resource(self, username, rtype):
    method take_available_resource (line 75) | def take_available_resource(self, rid):
    method end_experiment (line 89) | def end_experiment(self, eid):
    method get_best_result (line 99) | def get_best_result(self, eid, maximize=True):
    method start_experiment (line 113) | def start_experiment(self, username, name, exp_config_blob):
    method end_job (line 130) | def end_job(self, jid, score, status):
    method get_all_experiment (line 144) | def get_all_experiment(self, username=None):
    method get_all_history (line 156) | def get_all_history(self, eid):
    method get_running_job (line 167) | def get_running_job(self, eid):
    method start_job (line 179) | def start_job(self, eid, rid, job_config):
    method start_job_attempt (line 195) | def start_job_attempt(self, rid, jid):
    method end_job_attempt (line 209) | def end_job_attempt(self, jid):
    method update_job_status (line 218) | def update_job_status(self, jid, status):
    method job_finished (line 230) | def job_finished(self, rid, jid, score=None, status=None):
    method job_started (line 248) | def job_started(self, eid, rid, job_config):
    method job_failed (line 264) | def job_failed(self, rid, jid):
    method job_retry (line 276) | def job_retry(self, rid, jid):
    method save_intermediate_result (line 288) | def save_intermediate_result(self, jid, score):
    method get_intermediate_results_job (line 301) | def get_intermediate_results_job(self, jid):
    method get_intermediate_results_jobs (line 312) | def get_intermediate_results_jobs(self, jids):
    method get_intermediate_results_experiment (line 323) | def get_intermediate_results_experiment(self, eid, status):
    method create_experiment (line 337) | def create_experiment(self, username, name, exp_config_blob):
    method delete_experiment (line 343) | def delete_experiment(self, eid):
    method get_experiment_status (line 349) | def get_experiment_status(self, eid):
    method start_experiment_by_eid (line 355) | def start_experiment_by_eid(self, eid):
    method log_error_message (line 361) | def log_error_message(self, eid, msg):
    method save_multiple_results (line 367) | def save_multiple_results(self, jid, irid, eid, labels, scores):
    method set_last_multiple_results (line 373) | def set_last_multiple_results(self, eid, jid, num_labels):

FILE: src/aup/ET/Connector/SQLiteConnector.py
  function _delayed (line 31) | def _delayed(func):
  class SQLiteConnector (line 51) | class SQLiteConnector(AbstractConnector):
    method __init__ (line 52) | def __init__(self, filename):
    method _fix_name (line 59) | def _fix_name(self, name):
    method _mark_resource (line 74) | def _mark_resource(self, rid, status):
    method free_all_resources (line 82) | def free_all_resources(self):
    method close (line 87) | def close(self):
    method is_closed (line 93) | def is_closed(self):
    method end_experiment (line 97) | def end_experiment(self, eid, status="FINISHED"):
    method change_experiment_status (line 102) | def change_experiment_status(self, eid, status="FINISHED"):
    method end_job (line 107) | def end_job(self, jid, score=None, status=None):
    method end_job_attempt (line 112) | def end_job_attempt(self, jid):
    method free_used_resource (line 118) | def free_used_resource(self, rid):
    method get_all_experiment (line 123) | def get_all_experiment(self, username=None):
    method get_available_resource (line 136) | def get_available_resource(self, username, rtype, rid_blacklist=None):
    method get_all_history (line 153) | def get_all_history(self, eid):
    method get_best_result (line 158) | def get_best_result(self, eid, maximize=True):
    method get_best_result_config (line 176) | def get_best_result_config(self, eid, maximize=True):
    method get_running_job (line 188) | def get_running_job(self, eid):
    method get_resource_type (line 195) | def get_resource_type(self):
    method start_experiment (line 200) | def start_experiment(self, username, name, exp_config_blob):
    method start_experiment_by_eid (line 215) | def start_experiment_by_eid(self, eid):
    method start_job (line 229) | def start_job(self, eid, rid, job_config):
    method start_job_attempt (line 240) | def start_job_attempt(self, rid, jid):
    method update_job_status (line 248) | def update_job_status(self, jid, status):
    method take_available_resource (line 253) | def take_available_resource(self, rid):
    method save_intermediate_result (line 258) | def save_intermediate_result(self, jid, score):
    method get_intermediate_results_job (line 270) | def get_intermediate_results_job(self, jid):
    method get_intermediate_results_jobs (line 280) | def get_intermediate_results_jobs(self, jids):
    method get_intermediate_results_experiment (line 295) | def get_intermediate_results_experiment(self, eid, status):
    method create_experiment (line 310) | def create_experiment(self, username, name, exp_config_blob):
    method delete_experiment (line 324) | def delete_experiment(self, eid):
    method get_experiment_status (line 340) | def get_experiment_status(self, eid):
    method maybe_get_experiment_status (line 350) | def maybe_get_experiment_status(self, eid):
    method log_error_message (line 364) | def log_error_message(self, eid, msg):
    method save_multiple_results (line 369) | def save_multiple_results(self, jid, irid, eid, labels, scores):
    method set_last_multiple_results (line 390) | def set_last_multiple_results(self, eid, jid, num_labels):

FILE: src/aup/Proposer/AbstractProposer.py
  function create_param_config (line 29) | def create_param_config(name, vrange, vtype):
  class AbstractProposer (line 40) | class AbstractProposer(ABC):
    method __init__ (line 48) | def __init__(self, config):
    method set_status (line 56) | def set_status(self, status):
    method get_status (line 60) | def get_status(self):
    method increment_job_counter (line 64) | def increment_job_counter(self):
    method check_termination (line 68) | def check_termination(self):
    method get_remaining_jobs (line 73) | def get_remaining_jobs(self):
    method setup_config (line 78) | def setup_config():  # pragma: no cover
    method parse_param_config (line 106) | def parse_param_config(config):
    method get (line 123) | def get(self, **kwargs):
    method get_param (line 144) | def get_param(self, **kwargs):
    method reload (line 150) | def reload(self, path):
    method reset (line 164) | def reset(self):
    method save (line 172) | def save(self, path):
    method update (line 184) | def update(self, score, job):
    method failed (line 195) | def failed(self, job):
    method verify_config (line 204) | def verify_config(self, config):
    method __getstate__ (line 219) | def __getstate__(self):
    method __setstate__ (line 224) | def __setstate__(self, state):

FILE: src/aup/Proposer/BOHBProposer.py
  class BOHBProposer (line 72) | class BOHBProposer(AbstractProposer):
    method __init__ (line 73) | def __init__(self, config):
    method get_param (line 105) | def get_param(self):
    method update (line 139) | def update(self, score, job):
    method failed (line 153) | def failed(self, job):
    method get_next_iteration (line 163) | def get_next_iteration(self, iteration, iteration_kwargs={}):
    method _get_nSample (line 172) | def _get_nSample(self):
    method create_configspace (line 183) | def create_configspace(parameter_config):
    method setup_config (line 205) | def setup_config():  # pragma: no cover
    method active_iterations (line 219) | def active_iterations(self):  # pragma: no cover
    method save (line 225) | def save(self, path):
    method reload (line 230) | def reload(self, path):

FILE: src/aup/Proposer/EASProposer.py
  class EASProposer (line 47) | class EASProposer(AbstractProposer):
    method get_net_str (line 49) | def get_net_str(self, net_configs):
    method get_net_seq (line 70) | def get_net_seq(net_configs, vocabulary, num_steps):
    method get_block_layer_num (line 83) | def get_block_layer_num(net_configs):
    method apply_wider_decision (line 102) | def apply_wider_decision(wider_decision, net_configs, filter_num_list,...
    method apply_deeper_decision (line 149) | def apply_deeper_decision(deeper_decision, net_configs, kernel_size_li...
    method __init__ (line 203) | def __init__(self, config):
    method setup (line 306) | def setup(self):
    method get_param (line 443) | def get_param(self, **kwargs):
    method update (line 493) | def update(self, score, job):
    method failed (line 502) | def failed(self, job):
    method save (line 506) | def save(self, path):
    method reload (line 511) | def reload(self, path):

FILE: src/aup/Proposer/HyperbandProposer.py
  class HyperbandProposer (line 62) | class HyperbandProposer(AbstractProposer):
    method __init__ (line 63) | def __init__(self, config):
    method setup (line 95) | def setup(self, s):
    method verify_config (line 111) | def verify_config(self, config):
    method get_param (line 122) | def get_param(self):
    method update (line 150) | def update(self, score, job):
    method failed (line 153) | def failed(self, job):
    method save (line 157) | def save(self, path):
    method reload (line 162) | def reload(self, path):
    method setup_config (line 168) | def setup_config():  # pragma: no cover

FILE: src/aup/Proposer/HyperoptProposer.py
  function _get_algo (line 54) | def _get_algo(engine):
  function _convert (line 59) | def _convert(param_config):
  class HyperoptProposer (line 79) | class HyperoptProposer(AbstractProposer):
    method __init__ (line 81) | def __init__(self, config, random_seed=0):
    method setup_config (line 98) | def setup_config():  # pragma: no cover
    method get_param (line 106) | def get_param(self, **kwargs):
    method reload (line 130) | def reload(self, path):
    method save (line 134) | def save(self, path):
    method update (line 138) | def update(self, score, job):
    method failed (line 164) | def failed(self, job):
    method verify_config (line 174) | def verify_config(self, config):

FILE: src/aup/Proposer/RandomProposer.py
  function _random_int (line 50) | def _random_int(x):
  function _random_float (line 58) | def _random_float(x):
  function _random_choice (line 66) | def _random_choice(x):
  class RandomProposer (line 81) | class RandomProposer(AbstractProposer):
    method __init__ (line 89) | def __init__(self, config, random_seed=0):
    method setup_config (line 102) | def setup_config():  # pragma: no cover
    method get_param (line 113) | def get_param(self, **kwargs):
    method reload (line 126) | def reload(self, path):
    method save (line 132) | def save(self, path):
    method verify_config (line 138) | def verify_config(self, config):

FILE: src/aup/Proposer/SequenceProposer.py
  class _AbstractGen (line 57) | class _AbstractGen(object):
    method __init__ (line 58) | def __init__(self, conf):
    method get (line 64) | def get(self, next_flag=True):  # pragma: no cover
    method get_gen (line 69) | def get_gen(cls, conf):
  class _IntGen (line 82) | class _IntGen(_AbstractGen):
    method __init__ (line 83) | def __init__(self, conf):
    method get (line 96) | def get(self, next_flag=True):
  class _FloatGen (line 109) | class _FloatGen(_AbstractGen):
    method __init__ (line 110) | def __init__(self, conf):
    method get (line 124) | def get(self, next_flag=True):
  class _ChoiceGen (line 137) | class _ChoiceGen(_AbstractGen):
    method __init__ (line 138) | def __init__(self, conf):
    method get (line 144) | def get(self, next_flag=True):
  class SequenceProposer (line 156) | class SequenceProposer(AbstractProposer):
    method __init__ (line 157) | def __init__(self, config):
    method setup_config (line 169) | def setup_config():  # pragma: no cover
    method get_param (line 199) | def get_param(self, **kwargs):

FILE: src/aup/Proposer/SpearmintProposer.py
  class SpearmintProposer (line 64) | class SpearmintProposer(AbstractProposer):
    method __init__ (line 65) | def __init__(self, config):
    method setup_config (line 107) | def setup_config():  # pragma: no cover
    method get_param (line 120) | def get_param(self, **kwargs):
    method save (line 145) | def save(self, path):
    method reload (line 150) | def reload(self, path):
    method update (line 155) | def update(self, score, job):
    method failed (line 158) | def failed(self, job):
    method verify_config (line 162) | def verify_config(self, config):

FILE: src/aup/Proposer/__init__.py
  function get_proposer (line 27) | def get_proposer(proposer, disable_proposer_logging=False):

FILE: src/aup/Proposer/eas/arch_search/arch_search_convnet_net2net.py
  function get_net_str (line 11) | def get_net_str(net_configs):
  function get_net_seq (line 33) | def get_net_seq(net_configs, vocabulary, num_steps):
  function get_block_layer_num (line 47) | def get_block_layer_num(net_configs):
  function apply_wider_decision (line 67) | def apply_wider_decision(wider_decision, net_configs, filter_num_list, u...
  function apply_deeper_decision (line 114) | def apply_deeper_decision(deeper_decision, net_configs, kernel_size_list...
  function arch_search_convnet (line 168) | def arch_search_convnet(start_net_path, arch_search_folder, net_pool_fol...

FILE: src/aup/Proposer/eas/arch_search/arch_search_densenet_net2net.py
  function get_net_str (line 11) | def get_net_str(net_configs):
  function get_net_seq (line 32) | def get_net_seq(net_configs, vocabulary, num_steps):
  function get_block_layer_num (line 46) | def get_block_layer_num(net_configs):
  function apply_wider_decision (line 61) | def apply_wider_decision(wider_decision, net_configs, growth_rate_list, ...
  function apply_deeper_decision (line 108) | def apply_deeper_decision(deeper_decision, net_configs, noise):
  function widen_transition (line 137) | def widen_transition(net_configs, noise):
  function arch_search_densenet (line 162) | def arch_search_densenet(start_net_path, arch_search_folder, net_pool_fo...

FILE: src/aup/Proposer/eas/client.py
  function run (line 11) | def run(expdir):
  function main (line 21) | def main():

FILE: src/aup/Proposer/eas/data_providers/base_provider.py
  class DataSet (line 4) | class DataSet:
    method num_examples (line 8) | def num_examples(self):
    method next_batch (line 12) | def next_batch(self, batch_size):
  class ImagesDataSet (line 17) | class ImagesDataSet(DataSet):
    method measure_mean_and_std (line 21) | def measure_mean_and_std(images):
    method shuffle_images_and_labels (line 32) | def shuffle_images_and_labels(images, labels):
    method normalize_images (line 39) | def normalize_images(images, normalization_type, meanstd=None):
  class DataProvider (line 65) | class DataProvider:
    method data_shape (line 69) | def data_shape(self):
    method n_classes (line 74) | def n_classes(self):
    method labels_to_one_hot (line 78) | def labels_to_one_hot(self, labels):
    method labels_from_one_hot (line 89) | def labels_from_one_hot(labels):

FILE: src/aup/Proposer/eas/data_providers/cifar.py
  function augment_image (line 12) | def augment_image(image, pad):
  function augment_all_images (line 34) | def augment_all_images(initial_images, pad=4):
  class CifarDataSet (line 41) | class CifarDataSet(ImagesDataSet):
    method __init__ (line 42) | def __init__(self, images, labels, n_classes, shuffle, normalization, ...
    method start_new_epoch (line 80) | def start_new_epoch(self):
    method num_examples (line 93) | def num_examples(self):
    method next_batch (line 96) | def next_batch(self, batch_size):
  class CifarDataProvider (line 109) | class CifarDataProvider(DataProvider):
    method __init__ (line 111) | def __init__(self, save_path=None, validation_size=None, shuffle=None,...
    method save_path (line 175) | def save_path(self):
    method data_url (line 182) | def data_url(self):
    method data_shape (line 189) | def data_shape(self):
    method n_classes (line 193) | def n_classes(self):
    method get_filenames (line 196) | def get_filenames(self, save_path):
    method read_cifar (line 200) | def read_cifar(self, filenames):
  class Cifar10DataProvider (line 223) | class Cifar10DataProvider(CifarDataProvider):
    method get_filenames (line 227) | def get_filenames(self, save_path):
  class Cifar100DataProvider (line 237) | class Cifar100DataProvider(CifarDataProvider):
    method get_filenames (line 241) | def get_filenames(self, save_path):
  class Cifar10AugmentedDataProvider (line 248) | class Cifar10AugmentedDataProvider(Cifar10DataProvider):
  class Cifar100AugmentedDataProvider (line 253) | class Cifar100AugmentedDataProvider(Cifar100DataProvider):

FILE: src/aup/Proposer/eas/data_providers/downloader.py
  function report_download_progress (line 8) | def report_download_progress(count, block_size, total_size):
  function download_data_url (line 15) | def download_data_url(url, download_dir):

FILE: src/aup/Proposer/eas/data_providers/svhn.py
  class SVHNDataSet (line 11) | class SVHNDataSet(ImagesDataSet):
    method __init__ (line 14) | def __init__(self, images, labels, shuffle, normalization):
    method start_new_epoch (line 35) | def start_new_epoch(self):
    method num_examples (line 44) | def num_examples(self):
    method next_batch (line 47) | def next_batch(self, batch_size):
  class SVHNDataProvider (line 64) | class SVHNDataProvider(DataProvider):
    method __init__ (line 65) | def __init__(self, save_path=None, validation_size=None, shuffle=False...
    method get_images_and_labels (line 119) | def get_images_and_labels(self, name_part, one_hot=False):
    method n_classes (line 132) | def n_classes(self):
    method save_path (line 136) | def save_path(self):
    method data_url (line 142) | def data_url(self):
    method data_shape (line 146) | def data_shape(self):

FILE: src/aup/Proposer/eas/data_providers/utils.py
  function get_data_provider_by_name (line 6) | def get_data_provider_by_name(name, train_params):

FILE: src/aup/Proposer/eas/expdir_monitor/arch_manager.py
  class NetPool (line 14) | class NetPool:
    method __init__ (line 15) | def __init__(self, path):
    method str2id_path (line 26) | def str2id_path(self):
    method id2val_path (line 30) | def id2val_path(self):
    method on_load (line 33) | def on_load(self):
    method add_net (line 63) | def add_net(self, net_str, net_val):
    method get_net_val (line 72) | def get_net_val(self, net_str):
    method on_running_finished (line 89) | def on_running_finished(self, net_str, net_folder, net_val):
    method save (line 95) | def save(self):
    method get_net_folder (line 100) | def get_net_folder(net_id):
  class ArchManager (line 104) | class ArchManager:
    method __init__ (line 105) | def __init__(self, start_net_path, arch_path, net_pool_path):
    method meta_controller_path (line 122) | def meta_controller_path(self):
    method val_logs_path (line 126) | def val_logs_path(self):
    method net_logs_path (line 130) | def net_logs_path(self):
    method on_load (line 133) | def on_load(self):
    method get_start_net (line 143) | def get_start_net(self, copy=False):
    method prepare_folder_for_valid (line 164) | def prepare_folder_for_valid(net_str, net_config, run_config, exp_dir):
    method get_net_tasks (line 172) | def get_net_tasks(self, net_str_list, net_configs, run_configs):
    method val2reward (line 201) | def val2reward(self, net_val_list, func=None):
    method reward (line 213) | def reward(self, net_val_list, reward_config):
    method log_nets (line 226) | def log_nets(self, net_str_list, running_time, print_info=True):

FILE: src/aup/Proposer/eas/expdir_monitor/distributed.py
  class GpuChecker (line 20) | class GpuChecker:
    method __init__ (line 21) | def __init__(self, nvidia_getter, gpuid):
    method state_parser (line 25) | def state_parser(self, state_str):
    method instance_available (line 38) | def instance_available(self, state_str):
    method check (line 45) | def check(self):
    method is_on (line 56) | def is_on(self):
  class RemoteController (line 67) | class RemoteController:
    method __init__ (line 68) | def __init__(self, remote, gpuid, executive):
    method occupied (line 81) | def occupied(self):
    method occupied (line 87) | def occupied(self, val):
    method run (line 93) | def run(self, cmd, stdin=None):
    method gpu_state (line 102) | def gpu_state(self):
    method exe_cmd (line 106) | def exe_cmd(self):
    method check_on (line 112) | def check_on(self, queue):
    method remote_executer (line 123) | def remote_executer(self, idx, expdir, queue):
    method execute (line 155) | def execute(self, idx, expdir, queue):
  class ClusterController (line 169) | class ClusterController:
    method __init__ (line 170) | def __init__(self, config_list):
    method choice (line 175) | def choice(self, queue):
    method get_available (line 189) | def get_available(self, queue):
    method execute (line 204) | def execute(self, idx, expdir, queue):
  function run_tasks (line 209) | def run_tasks(config_list, expdir_list):
  function run (line 237) | def run(task_list):

FILE: src/aup/Proposer/eas/expdir_monitor/expdir_monitor.py
  class ExpdirMonitor (line 9) | class ExpdirMonitor:
    method __init__ (line 10) | def __init__(self, expdir):
    method logs (line 15) | def logs(self): return '%s/logs' % self.expdir
    method checkpoint (line 18) | def checkpoint(self): return '%s/checkpoint' % self.expdir
    method snapshot (line 21) | def snapshot(self): return '%s/snapshot' % self.expdir
    method output (line 24) | def output(self): return '%s/output' % self.expdir
    method init (line 27) | def init(self): return '%s/init' % self.expdir
    method run_config_path (line 30) | def run_config_path(self): return '%s/run.config' % self.expdir
    method net_config_path (line 33) | def net_config_path(self): return '%s/net.config' % self.expdir
    method load_run_config (line 35) | def load_run_config(self, print_info=False, dataset='C10+'):
    method load_init (line 47) | def load_init(self):
    method load_net_config (line 54) | def load_net_config(self, init, print_info=False):
    method run (line 62) | def run(self, pure=True, restore=False, test=False, valid=False, valid...

FILE: src/aup/Proposer/eas/meta_controller/base_controller.py
  class BaseController (line 9) | class BaseController:
    method __init__ (line 10) | def __init__(self, path):
    method load (line 14) | def load(self):
    method save (line 17) | def save(self, global_step=None):
    method save_path (line 21) | def save_path(self):
    method logs_path (line 25) | def logs_path(self):
  class Vocabulary (line 29) | class Vocabulary:
    method __init__ (line 30) | def __init__(self, token_list):
    method size (line 38) | def size(self):
    method get_code (line 41) | def get_code(self, token_list):
    method get_token (line 44) | def get_token(self, code_list):
    method pad_code (line 48) | def pad_code(self):
  function embedding (line 52) | def embedding(_input, vocab_size, embedding_dim, name='embedding'):
  function build_cell (line 68) | def build_cell(units, cell_type='lstm', num_layers=1):
  function seq_len (line 83) | def seq_len(sequence):
  class EncoderNet (line 95) | class EncoderNet:
    method __init__ (line 96) | def __init__(self, num_steps, vocab, embedding_dim, rnn_units, rnn_typ...
    method bidirectional (line 111) | def bidirectional(self):
    method cell_type (line 115) | def cell_type(self):
    method _define_input (line 118) | def _define_input(self):
    method build (line 131) | def build(self):
  class WiderActorNet (line 173) | class WiderActorNet:
    method __init__ (line 174) | def __init__(self, out_dim, num_steps, net_type='simple', net_config=N...
    method build_forward (line 183) | def build_forward(self, _input):
  class DeeperActorNet (line 209) | class DeeperActorNet:
    method __init__ (line 210) | def __init__(self, decision_num, out_dims, embedding_dim,
    method _define_input (line 225) | def _define_input(self):
    method build_decoder_cell (line 231) | def build_decoder_cell(self, encoder_state):
    method build_forward (line 240) | def build_forward(self, encoder_output, encoder_state, is_training, de...

FILE: src/aup/Proposer/eas/meta_controller/rl_controller.py
  class RLNet2NetController (line 10) | class RLNet2NetController(BaseController):
    method save (line 11) | def save(self, global_step=None):
    method load (line 14) | def load(self):
    method __init__ (line 25) | def __init__(self, path, entropy_penalty,
    method _define_input (line 45) | def _define_input(self):
    method update_controller (line 87) | def update_controller(self, learning_rate, wider_seg_deeper, wider_dec...
    method build_forward (line 106) | def build_forward(self):
    method build_training_process (line 131) | def build_training_process(self):
    method sample_wider_decision (line 134) | def sample_wider_decision(self, input_seq, seq_len):
    method sample_deeper_decision (line 146) | def sample_deeper_decision(self, input_seq, seq_len, block_layer_num):
    method _initialize_session (line 160) | def _initialize_session(self):
    method get_wider_entropy (line 170) | def get_wider_entropy(self):
    method get_deeper_entropy (line 178) | def get_deeper_entropy(self):
  class ReinforceNet2NetController (line 189) | class ReinforceNet2NetController(RLNet2NetController):
    method build_training_process (line 190) | def build_training_process(self):
    method get_wider_side_obj (line 210) | def get_wider_side_obj(self):
    method get_deeper_side_obj (line 223) | def get_deeper_side_obj(self):

FILE: src/aup/Proposer/eas/models/basic_model.py
  class BasicModel (line 11) | class BasicModel:
    method __init__ (line 12) | def __init__(self, path, data_provider, run_config, net_config, pure=F...
    method save_path (line 38) | def save_path(self):
    method logs_path (line 47) | def logs_path(self):
    method _build_graph (line 56) | def _build_graph(self, only_forward=False):
    method _define_inputs (line 59) | def _define_inputs(self):
    method _initialize_session (line 76) | def _initialize_session(self, set_logs=True):
    method train_all_epochs (line 88) | def train_all_epochs(self, start_epoch=1):
    method train_one_epoch (line 131) | def train_one_epoch(self, data, batch_size, learning_rate):
    method test (line 159) | def test(self, data, batch_size):
    method save_config (line 191) | def save_config(self, save_path, print_info=True):
    method save_init (line 200) | def save_init(self, save_path, print_info=True):
    method pure_train (line 208) | def pure_train(self):
    method save_model (line 230) | def save_model(self, global_step=None):
    method load_model (line 233) | def load_model(self):
    method log_loss_accuracy (line 241) | def log_loss_accuracy(self, loss, accuracy, epoch, prefix, should_prin...
    method _count_trainable_params (line 256) | def _count_trainable_params():
    method dropout (line 267) | def dropout(_input, keep_prob, is_training):
    method weight_variable (line 279) | def weight_variable(shape, name, initializer):
    method avg_pool (line 287) | def avg_pool(_input, k=2, s=2):
    method max_pool (line 297) | def max_pool(_input, k=2, s=2):
    method conv2d (line 307) | def conv2d(_input, out_features, kernel_size, strides=1, padding='SAME...
    method fc_layer (line 321) | def fc_layer(_input, out_units, use_bias=False, param_initializer=None):
    method batch_norm (line 338) | def batch_norm(_input, is_training, epsilon=1e-3, decay=0.999, param_i...
    method activation (line 345) | def activation(_input, activation='relu'):
    method build_optimizer (line 360) | def build_optimizer(learning_rate, opt_name, opt_param):
    method flatten (line 369) | def flatten(_input):

FILE: src/aup/Proposer/eas/models/convnet.py
  class SimpleConvnetConfig (line 9) | class SimpleConvnetConfig:
    method __init__ (line 10) | def __init__(self):
    method weight_decay (line 20) | def weight_decay(self): return self.net_config['weight_decay']
    method bn_epsilon (line 23) | def bn_epsilon(self): return self.net_config['bn_epsilon']
    method bn_decay (line 26) | def bn_decay(self): return self.net_config['bn_decay']
    method drop_scheme (line 29) | def drop_scheme(self): return self.net_config['drop_scheme']
    method depth (line 32) | def depth(self): return self.layer_cascade.depth
    method get_config (line 34) | def get_config(self):
    method copy (line 41) | def copy(self):
    method renew_init (line 46) | def renew_init(self, convnet):
    method set_standard_convnet (line 51) | def set_standard_convnet(self, data_provider: DataProvider, conv_block...
    method set_net_from_config (line 99) | def set_net_from_config(self, net_config_json, init=None, print_info=T...
    method widen (line 108) | def widen(self, layer_idx, new_width, widen_type='output_dim', noise=N...
    method deepen (line 113) | def deepen(self, layer_idx, new_layer_config):
    method set_identity4deepen (line 116) | def set_identity4deepen(self, to_set_layers, data_provider, batch_size...
  class SimpleConvnet (line 159) | class SimpleConvnet(BasicModel):
    method _build_graph (line 160) | def _build_graph(self, only_forward=False):

FILE: src/aup/Proposer/eas/models/dense_net.py
  function get_block_by_name (line 10) | def get_block_by_name(name):
  class TransitionBlock (line 19) | class TransitionBlock(LayerCascade):
    method get_config (line 20) | def get_config(self):
    method set_from_config (line 27) | def set_from_config(config_json, init=None, return_class=True):
    method prev_widen (line 31) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 35) | def widen(self, loc, new_width, widen_type='output_dim', noise=None, i...
    method deepen (line 38) | def deepen(self, loc, new_layer_config, input_dim):
  class DenseBlock (line 42) | class DenseBlock:
    method __init__ (line 43) | def __init__(self, _id, miniblocks):
    method id (line 50) | def id(self):
    method id (line 54) | def id(self, value):
    method depth (line 58) | def depth(self):
    method out_features_dim (line 64) | def out_features_dim(self, in_features_dim):
    method build (line 70) | def build(self, _input, densenet, store_output_op=False):
    method get_config (line 80) | def get_config(self):
    method renew_init (line 87) | def renew_init(self, densenet):
    method set_from_config (line 94) | def set_from_config(config_json, init=None):
    method insert_miniblock (line 106) | def insert_miniblock(self, idx, miniblock_config, input_dim, noise=Non...
    method prev_widen (line 173) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 190) | def widen(self, loc, new_width, widen_type='output_dim', noise=None, i...
    method deepen (line 224) | def deepen(self, loc, new_layer_config, input_dim):
  class DenseNetConfig (line 231) | class DenseNetConfig:
    method __init__ (line 232) | def __init__(self):
    method model_type (line 246) | def model_type(self): return self.net_config['model_type']
    method weight_decay (line 249) | def weight_decay(self): return self.net_config['weight_decay']
    method first_ratio (line 252) | def first_ratio(self): return self.net_config['first_ratio']
    method reduction (line 255) | def reduction(self): return self.net_config['reduction']
    method bc_ratio (line 258) | def bc_ratio(self): return self.net_config['bc_ratio']
    method bn_epsilon (line 261) | def bn_epsilon(self): return self.net_config['bn_epsilon']
    method bn_decay (line 264) | def bn_decay(self): return self.net_config['bn_decay']
    method depth (line 267) | def depth(self):
    method average_growth_rate (line 274) | def average_growth_rate(self):
    method copy (line 283) | def copy(self):
    method get_config (line 288) | def get_config(self):
    method renew_init (line 295) | def renew_init(self, densenet):
    method set_standard_dense_net (line 300) | def set_standard_dense_net(self, data_provider: DataProvider, growth_r...
    method set_net_from_config (line 389) | def set_net_from_config(self, net_config_json, init=None, print_info=T...
    method widen (line 405) | def widen(self, loc, new_width, widen_type='output_dim', noise=None, i...
    method deepen (line 423) | def deepen(self, loc, new_layer_config, image_channel=3):
    method set_identity4deepen (line 435) | def set_identity4deepen(self, to_set_layers, data_provider, batch_size...
    method insert_miniblock (line 477) | def insert_miniblock(self, loc, miniblock_config, image_channel=3, noi...
  class DenseNet (line 492) | class DenseNet(BasicModel):
    method _build_graph (line 493) | def _build_graph(self, only_forward=False):

FILE: src/aup/Proposer/eas/models/layer_cascade.py
  class LayerCascade (line 5) | class LayerCascade:
    method __init__ (line 6) | def __init__(self, _id, layers):
    method id (line 13) | def id(self):
    method id (line 17) | def id(self, value):
    method out_features_dim (line 21) | def out_features_dim(self):
    method depth (line 30) | def depth(self):
    method get_str (line 37) | def get_str(self):
    method build (line 41) | def build(self, _input, densenet, store_output_op=False):
    method get_config (line 50) | def get_config(self):
    method renew_init (line 56) | def renew_init(self, densenet):
    method copy (line 62) | def copy(self):
    method set_from_config (line 66) | def set_from_config(config_json, init=None, return_class=True):
    method prev_widen (line 82) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 90) | def widen(self, idx, new_width, widen_type='output_dim', noise=None):
    method deepen (line 113) | def deepen(self, idx, new_layer_config, input_dim):

FILE: src/aup/Proposer/eas/models/layer_multi_branch.py
  class LayerMultiBranch (line 6) | class LayerMultiBranch:
    method __init__ (line 7) | def __init__(self, _id, branches, merge=None, in_bottle=None, out_bott...
    method id (line 24) | def id(self):
    method id (line 28) | def id(self, value):
    method out_features_dim (line 32) | def out_features_dim(self):
    method depth (line 46) | def depth(self):
    method get_str (line 58) | def get_str(self):
    method build (line 65) | def build(self, _input, densenet, store_output_op=False):
    method get_config (line 90) | def get_config(self):
    method renew_init (line 99) | def renew_init(self, densenet):
    method set_from_config (line 108) | def set_from_config(config_json, init=None):
    method prev_widen (line 130) | def prev_widen(self, indices, magnifier, noise=None):
    method widen (line 137) | def widen(self, loc, new_width, widen_type='output_dim', noise=None):
    method deepen (line 184) | def deepen(self, loc, new_layer_config, input_dim):
    method remapped_branches (line 199) | def remapped_branches(self, noise=None):

FILE: src/aup/Proposer/eas/models/layers.py
  function apply_noise (line 7) | def apply_noise(weights, noise_config):
  function get_layer_by_name (line 25) | def get_layer_by_name(name):
  function get_magnifier (line 36) | def get_magnifier(old_size, indices):
  function get_random_remapping (line 44) | def get_random_remapping(old_size, new_size):
  class BaseLayer (line 52) | class BaseLayer:
    method __init__ (line 56) | def __init__(self, _id, use_bn=True, activation='relu', keep_prob=1.0,...
    method id (line 69) | def id(self): return self._id
    method id (line 72) | def id(self, value): self._id = value
    method init (line 75) | def init(self):
    method param_initializer (line 79) | def param_initializer(self):
    method renew_init (line 90) | def renew_init(self, net: BasicModel):
    method copy (line 102) | def copy(self):
    method get_config (line 105) | def get_config(self):
    method variable_list (line 115) | def variable_list(self):
    method set_from_config (line 132) | def set_from_config(layer_config, layer_init):
    method build (line 135) | def build(self, _input, net, store_output_op):
    method prev_widen (line 138) | def prev_widen(self, indices, magnifier, noise=None):
    method set_identity_layer (line 141) | def set_identity_layer(self, strict, param, noise):
    method widen_bn (line 144) | def widen_bn(self, indices, magnifier, noise=None):
    method set_bn_identity (line 151) | def set_bn_identity(self, strict=True, param=None, noise=None):
  class ConvLayer (line 164) | class ConvLayer(BaseLayer):
    method __init__ (line 165) | def __init__(self, _id, filter_num, kernel_size=3, strides=1,
    method layer_str (line 173) | def layer_str(self):
    method variable_list (line 177) | def variable_list(self):
    method get_config (line 182) | def get_config(self):
    method set_from_config (line 192) | def set_from_config(layer_config, layer_init=None):
    method build (line 197) | def build(self, _input, net: BasicModel, store_output_op=False):
    method widen_filters (line 230) | def widen_filters(self, new_filter_num, noise=None):
    method prev_widen (line 249) | def prev_widen(self, indices, magnifier, noise=None):
    method set_identity_layer (line 256) | def set_identity_layer(self, strict=True, param=None, noise=None):
    method remap (line 265) | def remap(self, indices, noise=None):
  class FCLayer (line 274) | class FCLayer(BaseLayer):
    method __init__ (line 275) | def __init__(self, _id, units, use_bn=True, use_bias=False, activation...
    method layer_str (line 282) | def layer_str(self):
    method variable_list (line 286) | def variable_list(self):
    method get_config (line 293) | def get_config(self):
    method set_from_config (line 302) | def set_from_config(layer_config, layer_init=None):
    method build (line 307) | def build(self, _input, net: BasicModel, store_output_op=False):
    method widen_units (line 340) | def widen_units(self, new_units_num, noise=None):
    method prev_widen (line 364) | def prev_widen(self, indices, magnifier, noise=None):
    method set_identity_layer (line 371) | def set_identity_layer(self, strict=True, param=None, noise=None):
    method remap (line 380) | def remap(self, indices, noise=None):
  class PoolLayer (line 391) | class PoolLayer(BaseLayer):
    method __init__ (line 392) | def __init__(self, _id, _type, kernel_size=2, strides=2, use_bn=False,...
    method layer_str (line 401) | def layer_str(self):
    method get_config (line 404) | def get_config(self):
    method set_from_config (line 414) | def set_from_config(layer_config, layer_init=None):
    method build (line 419) | def build(self, _input, net: BasicModel, store_output_op=False):
    method set_identity_layer (line 460) | def set_identity_layer(self, strict=True, param=None, noise=None):
    method prev_widen (line 463) | def prev_widen(self, indices, magnifier, noise=None):

FILE: src/aup/Proposer/eas/models/utils.py
  function get_model_config_by_name (line 6) | def get_model_config_by_name(name):
  function get_model_by_name (line 15) | def get_model_by_name(name):
  class RunConfig (line 24) | class RunConfig:
    method __init__ (line 25) | def __init__(self, batch_size, n_epochs, init_lr, reduce_lr_epochs, re...
    method get_config (line 46) | def get_config(self):
    method update (line 49) | def update(self, new_config):
    method copy (line 52) | def copy(self):
    method learning_rate (line 55) | def learning_rate(self, epoch):
    method get_default_run_config (line 71) | def get_default_run_config(dataset='C10+'):

FILE: src/aup/Proposer/hpbandster/core/base_config_generator.py
  class base_config_generator (line 4) | class base_config_generator(object):
    method __init__ (line 10) | def __init__(self, logger=None):
    method get_config (line 31) | def get_config(self, budget):
    method new_result (line 47) | def new_result(self, job, update_model=True):

FILE: src/aup/Proposer/hpbandster/core/base_iteration.py
  class Datum (line 11) | class Datum(object):
    method __init__ (line 12) | def __init__(self, config, config_info, results=None, time_stamps=None...
    method __repr__ (line 21) | def __repr__(self):
  class BaseIteration (line 32) | class BaseIteration(object):
    method __init__ (line 38) | def __init__(self, HPB_iter, num_configs, budgets, config_sampler, log...
    method add_configuration (line 72) | def add_configuration(self, config = None, config_info={}):
    method register_result (line 105) | def register_result(self, job, skip_sanity_checks=False):
    method get_next_run (line 141) | def get_next_run(self):
    method _advance_to_next_stage (line 178) | def _advance_to_next_stage(self, config_ids, losses):
    method process_results (line 201) | def process_results(self):
    method finish_up (line 244) | def finish_up(self):
  class WarmStartIteration (line 252) | class WarmStartIteration(BaseIteration):
    method __init__ (line 257) | def __init__(self, Result, config_generator):
    method fix_timestamps (line 290) | def fix_timestamps(self, time_ref):

FILE: src/aup/Proposer/hpbandster/core/dispatcher.py
  class Job (line 9) | class Job(object):
    method __init__ (line 10) | def __init__(self, id, **kwargs):
    method time_it (line 22) | def time_it(self, which_time):
    method __repr__ (line 25) | def __repr__(self):
    method recreate_from_run (line 32) | def recreate_from_run(self, run):
  class Worker (line 44) | class Worker(object):
    method __init__ (line 45) | def __init__(self, name, uri):
    method is_alive (line 50) | def is_alive(self):
    method shutdown (line 59) | def shutdown(self):
    method is_busy (line 62) | def is_busy(self):
    method __repr__ (line 65) | def __repr__(self):
  class Dispatcher (line 69) | class Dispatcher(object):
    method __init__ (line 74) | def __init__(self, new_result_callback, run_id='0',
    method run (line 129) | def run(self):
    method shutdown_all_workers (line 169) | def shutdown_all_workers(self, rediscover=False):
    method shutdown (line 177) | def shutdown(self, shutdown_workers=False):
    method trigger_discover_worker (line 186) | def trigger_discover_worker(self):
    method discover_workers (line 193) | def discover_workers(self):
    method number_of_workers (line 268) | def number_of_workers(self):
    method job_runner (line 272) | def job_runner(self):
    method submit_job (line 304) | def submit_job(self, id, **kwargs):
    method register_result (line 316) | def register_result(self, id=None, result=None):

FILE: src/aup/Proposer/hpbandster/core/master.py
  class Master (line 19) | class Master(object):
    method __init__ (line 20) | def __init__(self,
    method shutdown (line 129) | def shutdown(self, shutdown_workers=False):
    method wait_for_workers (line 135) | def wait_for_workers(self, min_n_workers=1):
    method get_next_iteration (line 155) | def get_next_iteration(self, iteration, iteration_kwargs):
    method run (line 176) | def run(self, n_iterations=1, min_n_workers=1, iteration_kwargs = {},):
    method adjust_queue_size (line 236) | def adjust_queue_size(self, number_of_workers=None):
    method job_callback (line 248) | def job_callback(self, job):
    method _queue_wait (line 271) | def _queue_wait(self):
    method _submit_job (line 281) | def _submit_job(self, config_id, config, budget):
    method active_iterations (line 297) | def active_iterations(self):
    method __del__ (line 309) | def __del__(self):

FILE: src/aup/Proposer/hpbandster/core/nameserver.py
  function nic_name_to_host (line 9) | def nic_name_to_host(nic_name):
  class NameServer (line 16) | class NameServer(object):
    method __init__ (line 22) | def __init__(self, run_id, working_directory=None, host=None, port=0, ...
    method start (line 48) | def start(self):
    method shutdown (line 82) | def shutdown(self):
    method __del__ (line 95) | def __del__(self):

FILE: src/aup/Proposer/hpbandster/core/result.py
  class Run (line 7) | class Run(object):
    method __init__ (line 12) | def __init__(self, config_id, budget, loss, info, time_stamps, error_l...
    method __repr__ (line 20) | def __repr__(self):
    method __getitem__ (line 28) | def __getitem__ (self, k):
  function extract_HBS_learning_curves (line 35) | def extract_HBS_learning_curves(runs):
  class json_result_logger (line 64) | class json_result_logger(object):
    method __init__ (line 65) | def __init__(self, directory, overwrite=False):
    method new_config (line 120) | def new_config(self, config_id, config, config_info):
    method __call__ (line 127) | def __call__(self, job):
  function logged_results_to_HBS_result (line 139) | def logged_results_to_HBS_result(directory):
  class Result (line 203) | class Result(object):
    method __init__ (line 210) | def __init__ (self, HB_iteration_data, HB_config):
    method __getitem__ (line 215) | def __getitem__(self, k):
    method get_incumbent_id (line 219) | def get_incumbent_id(self):
    method get_incumbent_trajectory (line 245) | def get_incumbent_trajectory(self, all_budgets=True, bigger_is_better=...
    method get_runs_by_id (line 319) | def get_runs_by_id(self, config_id):
    method get_learning_curves (line 344) | def get_learning_curves(self, lc_extractor=extract_HBS_learning_curves...
    method get_all_runs (line 374) | def get_all_runs(self, only_largest_budget=False):
    method get_id2config_mapping (line 400) | def get_id2config_mapping(self):
    method _merge_results (line 415) | def _merge_results(self):
    method num_iterations (line 431) | def num_iterations(self):
    method get_fANOVA_data (line 435) | def get_fANOVA_data(self, config_space, budgets=None, loss_fn=lambda r...
    method get_pandas_dataframe (line 485) | def get_pandas_dataframe(self, budgets=None, loss_fn=lambda r: r.loss):

FILE: src/aup/Proposer/hpbandster/core/worker.py
  class Worker (line 13) | class Worker(object):
    method __init__ (line 22) | def __init__(self, run_id, nameserver=None, nameserver_port=None, logg...
    method load_nameserver_credentials (line 70) | def load_nameserver_credentials(self, working_directory, num_tries=60,...
    method run (line 98) | def run(self, background=False):
    method _run (line 118) | def _run(self):
    method compute (line 165) | def compute(self, config_id, config, budget, working_directory):
    method start_computation (line 194) | def start_computation(self, callback, id, *args, **kwargs):
    method is_busy (line 225) | def is_busy(self):
    method shutdown (line 230) | def shutdown(self):

FILE: src/aup/Proposer/hpbandster/examples/commons.py
  class MyWorker (line 15) | class MyWorker(Worker):
    method __init__ (line 17) | def __init__(self, *args, sleep_interval=0, **kwargs):
    method compute (line 22) | def compute(self, config, budget, **kwargs):
    method get_configspace (line 49) | def get_configspace():

FILE: src/aup/Proposer/hpbandster/examples/example_5_keras_worker.py
  class KerasWorker (line 80) | class KerasWorker(Worker):
    method __init__ (line 81) | def __init__(self, N_train=8192, N_valid=1024, **kwargs):
    method compute (line 124) | def compute(self, config, budget, working_directory, *args, **kwargs):
    method get_configspace (line 189) | def get_configspace():

FILE: src/aup/Proposer/hpbandster/examples/example_5_pytorch_worker.py
  class PyTorchWorker (line 79) | class PyTorchWorker(Worker):
    method __init__ (line 80) | def __init__(self, N_train = 8192, N_valid = 1024, **kwargs):
    method compute (line 99) | def compute(self, config, budget, working_directory, *args, **kwargs):
    method evaluate_accuracy (line 146) | def evaluate_accuracy(self, model, data_loader):
    method get_configspace (line 161) | def get_configspace():
  class MNISTConvNet (line 213) | class MNISTConvNet(torch.nn.Module):
    method __init__ (line 214) | def __init__(self, num_conv_layers, num_filters_1, num_filters_2, num_...
    method forward (line 243) | def forward(self, x):
    method number_of_parameters (line 265) | def number_of_parameters(self):

FILE: src/aup/Proposer/hpbandster/examples/plot_example_7_interactive_plot.py
  function realtime_learning_curves (line 39) | def realtime_learning_curves(runs):

FILE: src/aup/Proposer/hpbandster/optimizers/bohb.py
  class BOHB (line 16) | class BOHB(Master):
    method __init__ (line 17) | def __init__(self, configspace = None,
    method get_next_iteration (line 119) | def get_next_iteration(self, iteration, iteration_kwargs={}):

FILE: src/aup/Proposer/hpbandster/optimizers/config_generators/bohb.py
  class BOHB (line 17) | class BOHB(base_config_generator):
    method __init__ (line 18) | def __init__(self, configspace, min_points_in_model = None,
    method largest_budget_with_model (line 94) | def largest_budget_with_model(self):
    method get_config (line 99) | def get_config(self, budget):
    method impute_conditional_data (line 238) | def impute_conditional_data(self, array):
    method new_result (line 267) | def new_result(self, job, update_model=True):

FILE: src/aup/Proposer/hpbandster/optimizers/config_generators/h2bo.py
  class H2BO (line 15) | class H2BO(base_config_generator):
    method __init__ (line 16) | def __init__(self, configspace, min_points_in_model = None,
    method largest_budget_with_model (line 72) | def largest_budget_with_model(self):
    method get_config (line 77) | def get_config(self, budget):
    method impute_conditional_data (line 138) | def impute_conditional_data(self, array):
    method new_result (line 167) | def new_result(self, job, update_model=True):

FILE: src/aup/Proposer/hpbandster/optimizers/config_generators/kde.py
  class KernelDensityEstimator (line 9) | class KernelDensityEstimator(base_config_generator):
    method __init__ (line 11) | def __init__(self, configspace, top_n_percent=10, update_after_n_point...
    method get_config (line 50) | def get_config(self, budget):
    method new_result (line 84) | def new_result(self, job):

FILE: src/aup/Proposer/hpbandster/optimizers/config_generators/lcnet.py
  function smoothing (line 10) | def smoothing(lc):
  class LCNetWrapper (line 20) | class LCNetWrapper(base_config_generator):
    method __init__ (line 21) | def __init__(self,
    method get_config (line 63) | def get_config(self, budget):
    method new_result (line 105) | def new_result(self, job):

FILE: src/aup/Proposer/hpbandster/optimizers/config_generators/random_sampling.py
  class RandomSampling (line 6) | class RandomSampling(base_config_generator):
    method __init__ (line 11) | def __init__(self, configspace, **kwargs):
    method get_config (line 28) | def get_config(self, budget):

FILE: src/aup/Proposer/hpbandster/optimizers/h2bo.py
  class H2BO (line 16) | class H2BO(Master):
    method __init__ (line 17) | def __init__(self,
    method get_next_iteration (line 115) | def get_next_iteration(self, iteration, iteration_kwargs={}):

FILE: src/aup/Proposer/hpbandster/optimizers/hyperband.py
  class HyperBand (line 17) | class HyperBand(Master):
    method __init__ (line 18) | def __init__(self, configspace = None,
    method get_next_iteration (line 73) | def get_next_iteration(self, iteration, iteration_kwargs={}):

FILE: src/aup/Proposer/hpbandster/optimizers/iterations/successivehalving.py
  class SuccessiveHalving (line 5) | class SuccessiveHalving(BaseIteration):
    method _advance_to_next_stage (line 7) | def _advance_to_next_stage(self, config_ids, losses):

FILE: src/aup/Proposer/hpbandster/optimizers/iterations/successiveresampling.py
  class SuccessiveResampling (line 8) | class SuccessiveResampling(BaseIteration):
    method __init__ (line 10) | def __init__(self, *args, resampling_rate = 0.5, min_samples_advance =...
    method _advance_to_next_stage (line 28) | def _advance_to_next_stage(self, config_ids, losses):

FILE: src/aup/Proposer/hpbandster/optimizers/kde/kernels.py
  class BaseKernel (line 11) | class BaseKernel(object):
    method __init__ (line 12) | def __init__(self, data=None, bandwidth=None, fix_boundary=False, num_...
    method set_bandwidth (line 25) | def set_bandwidth(self, bandwidth):
    method _compute_weights (line 29) | def _compute_weights(self):
    method __call__ (line 32) | def __call__(self, x_test):
    method sample (line 35) | def sample(self, sample_indices=None, num_samples=1):
  class Gaussian (line 39) | class Gaussian(BaseKernel):
    method _compute_weights (line 41) | def _compute_weights(self):
    method __call__ (line 51) | def __call__(self, x_test):
    method sample (line 60) | def sample(self, sample_indices=None, num_samples=1):
  class AitchisonAitken (line 90) | class AitchisonAitken(BaseKernel):
    method __call__ (line 91) | def __call__(self, x_test):
    method sample (line 101) | def sample(self, sample_indices=None, num_samples=1):
  class WangRyzinOrdinal (line 132) | class WangRyzinOrdinal(BaseKernel):
    method _compute_weights (line 134) | def _compute_weights(self):
    method __call__ (line 144) | def __call__(self, x_test):
    method sample (line 157) | def sample(self, sample_indices=None, num_samples=1):
  class WangRyzinInteger (line 192) | class WangRyzinInteger(BaseKernel):
    method _compute_weights (line 193) | def _compute_weights(self):
    method __call__ (line 203) | def __call__(self, x_test):
    method sample (line 216) | def sample(self, sample_indices=None, num_samples=1):

FILE: src/aup/Proposer/hpbandster/optimizers/kde/mvkde.py
  class MultivariateKDE (line 9) | class MultivariateKDE(object):
    method __init__ (line 10) | def __init__(self, configspace, fully_dimensional=True, min_bandwidth=...
    method fit (line 60) | def fit(self, data, weights=None, bw_estimator='scott', efficient_bw_e...
    method _set_kernel_bandwidths (line 117) | def _set_kernel_bandwidths(self):
    method set_bandwidths (line 122) | def set_bandwidths(self, bandwidths):
    method _normalize_weights (line 126) | def _normalize_weights(self, weights):
    method _individual_pdfs (line 134) | def _individual_pdfs(self, x_test):
    method loo_negloglikelihood (line 144) | def loo_negloglikelihood(self):
    method pdf (line 172) | def pdf(self, x_test):
    method sample (line 192) | def sample(self, num_samples=1):
    method _get_types (line 210) | def _get_types(self):

FILE: src/aup/Proposer/hpbandster/optimizers/lcnet.py
  class LCNet (line 17) | class LCNet(Master):
    method __init__ (line 18) | def __init__(self, configspace=None,
    method get_next_iteration (line 98) | def get_next_iteration(self, iteration, iteration_kwargs={}):

FILE: src/aup/Proposer/hpbandster/optimizers/learning_curve_models/arif.py
  class ARIF (line 11) | class ARIF(lcm_base):
    method __init__ (line 15) | def __init__(self, order=2, diff_order=0):
    method apply_differencing (line 29) | def apply_differencing(self, series, order=None):
    method invert_differencing (line 38) | def invert_differencing(self, initial_part, differenced_rest, order=No...
    method fit (line 56) | def fit(self, losses, configs=None):
    method extend_partial (line 80) | def extend_partial(self, obs_losses, num_steps, config=None):

FILE: src/aup/Proposer/hpbandster/optimizers/learning_curve_models/base.py
  class LCModel (line 1) | class LCModel():
    method fit (line 6) | def fit(self, times, losses, configs=None):
    method predict_unseen (line 25) | def predict_unseen(self, times, config):
    method extend_partial (line 45) | def extend_partial(self, times, obs_times, obs_losses, config=None):

FILE: src/aup/Proposer/hpbandster/optimizers/learning_curve_models/lcnet.py
  class LCNetWrapper (line 8) | class LCNetWrapper(LCModel):
    method __init__ (line 13) | def __init__(self, max_num_epochs):
    method fit (line 24) | def fit(self, times, losses, configs=None):
    method predict_unseen (line 65) | def predict_unseen(self, times, config):
    method extend_partial (line 95) | def extend_partial(self, times, obs_times, obs_losses, config=None):

FILE: src/aup/Proposer/hpbandster/optimizers/randomsearch.py
  class RandomSearch (line 16) | class RandomSearch(Master):
    method __init__ (line 17) | def __init__(self, configspace = None,
    method get_next_iteration (line 67) | def get_next_iteration(self, iteration, iteration_kwargs={}):

FILE: src/aup/Proposer/hpbandster/utils.py
  function nic_name_to_host (line 14) | def nic_name_to_host(nic_name):
  function start_local_nameserver (line 22) | def start_local_nameserver(host=None, port=0, nic_name=None):

FILE: src/aup/Proposer/hpbandster/visualization.py
  function default_tool_tips (line 10) | def default_tool_tips(result_object, learning_curves, include_run_info=F...
  function concurrent_runs_over_time (line 48) | def concurrent_runs_over_time(runs, num_points = 512, show=False):
  function finished_runs_over_time (line 64) | def finished_runs_over_time(runs, show=False):
  function performance_histogram_model_vs_random (line 92) | def performance_histogram_model_vs_random(runs, id2conf, show=False):
  function correlation_across_budgets (line 137) | def correlation_across_budgets(results_object, show=False):
  function losses_over_time (line 203) | def losses_over_time(runs, get_loss_from_run_fn = lambda r: r.loss, cmap...
  function interactive_HBS_plot (line 243) | def interactive_HBS_plot(learning_curves, tool_tip_strings=None,log_y=Fa...

FILE: src/aup/Proposer/hpbandster/workers/hpolibbenchmark.py
  class HPOlib2Worker (line 5) | class HPOlib2Worker(Worker):
    method __init__ (line 6) | def __init__(self,benchmark, configspace=None, budget_name='budget', b...
    method compute (line 27) | def compute(self, config, budget, **kwargs):

FILE: src/aup/Proposer/hyperopt/algobase.py
  class ExprEvaluator (line 18) | class ExprEvaluator(object):
    method __init__ (line 19) | def __init__(self, expr,
    method eval_nodes (line 63) | def eval_nodes(self, memo=None):
    method set_in_memo (line 133) | def set_in_memo(self, memo, k, v):
    method on_switch (line 154) | def on_switch(self, memo, node):
    method on_node (line 191) | def on_node(self, memo, node):
  class SuggestAlgo (line 218) | class SuggestAlgo(ExprEvaluator):
    method __init__ (line 225) | def __init__(self, domain, trials, seed):
    method __call__ (line 234) | def __call__(self, new_id):
    method on_node (line 252) | def on_node(self, memo, node):
    method batch (line 259) | def batch(self, new_ids):

FILE: src/aup/Proposer/hyperopt/anneal.py
  class AnnealingAlgo (line 42) | class AnnealingAlgo(SuggestAlgo):
    method __init__ (line 100) | def __init__(self, domain, trials, seed,
    method shrinking (line 139) | def shrinking(self, label):
    method choose_ltv (line 150) | def choose_ltv(self, label, size):
    method on_node_hyperparameter (line 183) | def on_node_hyperparameter(self, memo, node, label):
    method hp_uniform (line 229) | def hp_uniform(self, memo, node, label, tid, val,
    method hp_quniform (line 290) | def hp_quniform(self, *args, **kwargs):
    method hp_loguniform (line 297) | def hp_loguniform(self, *args, **kwargs):
    method hp_qloguniform (line 305) | def hp_qloguniform(self, *args, **kwargs):
    method hp_randint (line 313) | def hp_randint(self, memo, node, label, tid, val):
    method hp_categorical (line 330) | def hp_categorical(self, memo, node, label, tid, val):
    method hp_normal (line 364) | def hp_normal(self, memo, node, label, tid, val):
    method hp_lognormal (line 374) | def hp_lognormal(self, memo, node, label, tid, val):
    method hp_qlognormal (line 384) | def hp_qlognormal(self, memo, node, label, tid, val):
    method hp_qnormal (line 396) | def hp_qnormal(self, memo, node, label, tid, val):
  function suggest (line 408) | def suggest(new_ids, domain, trials, seed, *args, **kwargs):
  function suggest_batch (line 413) | def suggest_batch(new_ids, domain, trials, seed, *args, **kwargs):

FILE: src/aup/Proposer/hyperopt/base.py
  function _all_same (line 114) | def _all_same(*args):
  function SONify (line 118) | def SONify(arg, memo=None):
  function miscs_update_idxs_vals (line 161) | def miscs_update_idxs_vals(miscs, idxs, vals,
  function miscs_to_idxs_vals (line 192) | def miscs_to_idxs_vals(miscs, keys=None):
  function spec_from_misc (line 210) | def spec_from_misc(misc):
  class Trials (line 222) | class Trials(object):
    method __init__ (line 268) | def __init__(self, exp_key=None, refresh=True):
    method view (line 276) | def view(self, exp_key=None, refresh=True):
    method aname (line 286) | def aname(self, trial, name):
    method trial_attachments (line 289) | def trial_attachments(self, trial):
    method __iter__ (line 314) | def __iter__(self):
    method __len__ (line 321) | def __len__(self):
    method __getitem__ (line 328) | def __getitem__(self, item):
    method refresh (line 333) | def refresh(self):
    method trials (line 347) | def trials(self):
    method tids (line 351) | def tids(self):
    method specs (line 355) | def specs(self):
    method results (line 359) | def results(self):
    method miscs (line 363) | def miscs(self):
    method idxs_vals (line 367) | def idxs_vals(self):
    method idxs (line 371) | def idxs(self):
    method vals (line 375) | def vals(self):
    method assert_valid_trial (line 378) | def assert_valid_trial(self, trial):
    method _insert_trial_docs (line 408) | def _insert_trial_docs(self, docs):
    method insert_trial_doc (line 415) | def insert_trial_doc(self, doc):
    method insert_trial_docs (line 426) | def insert_trial_docs(self, docs):
    method new_trial_ids (line 433) | def new_trial_ids(self, N):
    method new_trial_docs (line 439) | def new_trial_docs(self, tids, specs, results, miscs):
    method source_trial_docs (line 457) | def source_trial_docs(self, tids, specs, results, miscs, sources):
    method delete_all (line 482) | def delete_all(self):
    method count_by_state_synced (line 487) | def count_by_state_synced(self, arg, trials=None):
    method count_by_state_unsynced (line 504) | def count_by_state_unsynced(self, arg):
    method losses (line 517) | def losses(self, bandit=None):
    method statuses (line 523) | def statuses(self, bandit=None):
    method average_best_error (line 529) | def average_best_error(self, bandit=None):
    method best_trial (line 578) | def best_trial(self):
    method argmin (line 589) | def argmin(self):
    method fmin (line 600) | def fmin(self, fn, space, algo, max_evals,
  function trials_from_docs (line 638) | def trials_from_docs(docs, validate=True, **kwargs):
  class Ctrl (line 650) | class Ctrl(object):
    method __init__ (line 658) | def __init__(self, trials, current_trial=None):
    method checkpoint (line 670) | def checkpoint(self, r=None):
    method attachments (line 676) | def attachments(self):
    method inject_results (line 683) | def inject_results(self, specs, results, miscs, new_tids=None):
  class Domain (line 708) | class Domain(object):
    method __init__ (line 720) | def __init__(self, fn, expr,
    method memo_from_config (line 815) | def memo_from_config(self, config):
    method evaluate (line 827) | def evaluate(self, config, ctrl, attach_attachments=True):
    method evaluate_async (line 867) | def evaluate_async(self, config, ctrl, attach_attachments=True,):
    method evaluate_async2 (line 888) | def evaluate_async2(self, rval, ctrl, attach_attachments=True):
    method short_str (line 917) | def short_str(self):
    method loss (line 920) | def loss(self, result, config=None):
    method loss_variance (line 925) | def loss_variance(self, result, config=None):
    method true_loss (line 929) | def true_loss(self, result, config=None):
    method true_loss_variance (line 937) | def true_loss_variance(self, config=None):
    method status (line 943) | def status(self, result, config=None):
    method new_result (line 948) | def new_result(self):

FILE: src/aup/Proposer/hyperopt/criteria.py
  function EI_empirical (line 9) | def EI_empirical(samples, thresh):
  function EI_gaussian_empirical (line 18) | def EI_gaussian_empirical(mean, var, thresh, rng, N):
  function EI_gaussian (line 26) | def EI_gaussian(mean, var, thresh):
  function logEI_gaussian (line 37) | def logEI_gaussian(mean, var, thresh):
  function UCB (line 88) | def UCB(mean, var, zscore):

FILE: src/aup/Proposer/hyperopt/exceptions.py
  class BadSearchSpace (line 6) | class BadSearchSpace(Exception):
  class DuplicateLabel (line 10) | class DuplicateLabel(BadSearchSpace):
  class InvalidTrial (line 14) | class InvalidTrial(ValueError):
    method __init__ (line 16) | def __init__(self, msg, obj):
  class InvalidResultStatus (line 21) | class InvalidResultStatus(ValueError):
    method __init__ (line 23) | def __init__(self, result):
  class InvalidLoss (line 28) | class InvalidLoss(ValueError):
    method __init__ (line 30) | def __init__(self, result):

FILE: src/aup/Proposer/hyperopt/fmin.py
  function generate_trial (line 30) | def generate_trial(tid, space):
  function generate_trials_to_calculate (line 52) | def generate_trials_to_calculate(points):
  function fmin_pass_expr_memo_ctrl (line 70) | def fmin_pass_expr_memo_ctrl(f):
  function partial (line 85) | def partial(fn, **kwargs):
  class FMinIter (line 95) | class FMinIter(object):
    method __init__ (line 101) | def __init__(self, algo, domain, trials, rstate, asynchronous=None,
    method serial_evaluate (line 127) | def serial_evaluate(self, N=-1):
    method block_until_done (line 158) | def block_until_done(self):
    method run (line 177) | def run(self, N, block_until_done=True):
    method __iter__ (line 233) | def __iter__(self):
    method __next__ (line 236) | def __next__(self):
    method exhaust (line 242) | def exhaust(self):
  function fmin (line 249) | def fmin(fn, space, algo, max_evals, trials=None, rstate=None,
  function space_eval (line 383) | def space_eval(space, hp_assignment):

FILE: src/aup/Proposer/hyperopt/graphviz.py
  function dot_hyperparameters (line 16) | def dot_hyperparameters(expr):

FILE: src/aup/Proposer/hyperopt/ipy.py
  class LostEngineError (line 31) | class LostEngineError(RuntimeError):
  class IPythonTrials (line 35) | class IPythonTrials(Trials):
    method __init__ (line 37) | def __init__(self, client,
    method _insert_trial_docs (line 48) | def _insert_trial_docs(self, docs):
    method refresh (line 53) | def refresh(self):
    method fmin (line 95) | def fmin(self, fn, space, **kw):
    method wait (line 178) | def wait(self, verbose=False, verbose_print_interval=1.0):
    method __getstate__ (line 200) | def __getstate__(self):
    method __setstate__ (line 208) | def __setstate__(self, dct):
  class IPYAsync (line 216) | class IPYAsync(object):
    method __init__ (line 218) | def __init__(self, asynchronous, domain, rv, eid, tid, ctrl):
    method ready (line 227) | def ready(self):
    method get (line 230) | def get(self):
  function call_domain (line 241) | def call_domain(domain, spec, ctrl, trial, view, eid, tid):

FILE: src/aup/Proposer/hyperopt/main.py
  function main_search (line 29) | def main_search():
  function main (line 96) | def main(cmd, fn_pos=1):

FILE: src/aup/Proposer/hyperopt/mix.py
  function suggest (line 5) | def suggest(new_ids, domain, trials, seed, p_suggest):

FILE: src/aup/Proposer/hyperopt/mongoexp.py
  class OperationFailure (line 145) | class OperationFailure(Exception):
  class Shutdown (line 151) | class Shutdown(Exception):
  class WaitQuit (line 157) | class WaitQuit(Exception):
  class InvalidMongoTrial (line 163) | class InvalidMongoTrial(InvalidTrial):
  class DomainSwapError (line 167) | class DomainSwapError(Exception):
  class ReserveTimeout (line 173) | class ReserveTimeout(Exception):
  function read_pw (line 178) | def read_pw():
  function parse_url (line 182) | def parse_url(url, pwfile=None):
  function connection_with_tunnel (line 237) | def connection_with_tunnel(dbname, host='localhost',
  function connection_from_string (line 272) | def connection_from_string(s):
  class MongoJobs (line 292) | class MongoJobs(object):
    method __init__ (line 306) | def __init__(self, db, jobs, gfs, conn, tunnel, config_name):
    method alloc (line 344) | def alloc(cls, dbname, host='localhost',
    method new_from_connection_str (line 354) | def new_from_connection_str(cls, conn_str, gfs_coll='fs', config_name=...
    method __iter__ (line 359) | def __iter__(self):
    method __len__ (line 362) | def __len__(self):
    method create_jobs_indexes (line 368) | def create_jobs_indexes(self):
    method create_drivers_indexes (line 373) | def create_drivers_indexes(self):
    method create_indexes (line 377) | def create_indexes(self):
    method jobs_complete (line 381) | def jobs_complete(self, cursor=False):
    method jobs_error (line 385) | def jobs_error(self, cursor=False):
    method jobs_running (line 389) | def jobs_running(self, cursor=False):
    method jobs_dead (line 397) | def jobs_dead(self, cursor=False):
    method jobs_queued (line 405) | def jobs_queued(self, cursor=False):
    method insert (line 409) | def insert(self, job):
    method delete (line 425) | def delete(self, job):
    method delete_all (line 434) | def delete_all(self, cond=None):
    method delete_all_error_jobs (line 453) | def delete_all_error_jobs(self):
    method reserve (line 456) | def reserve(self, host_id, cond=None, exp_key=None):
    method refresh (line 491) | def refresh(self, doc):
    method update (line 494) | def update(self, doc, dct, collection=None, do_sanity_checks=True):
    method attachment_names (line 564) | def attachment_names(self, doc):
    method set_attachment (line 570) | def set_attachment(self, doc, blob, name, collection=None):
    method get_attachment (line 614) | def get_attachment(self, doc, name):
    method delete_attachment (line 629) | def delete_attachment(self, doc, name, collection=None):
  class MongoTrials (line 643) | class MongoTrials(Trials):
    method __init__ (line 664) | def __init__(self, arg, exp_key=None, cmd=None, workdir=None,
    method view (line 678) | def view(self, exp_key=None, cmd=None, workdir=None, refresh=True):
    method refresh_tids (line 686) | def refresh_tids(self, tids):
    method refresh (line 805) | def refresh(self):
    method _insert_trial_docs (line 808) | def _insert_trial_docs(self, docs):
    method count_by_state_unsynced (line 814) | def count_by_state_unsynced(self, arg):
    method delete_all (line 831) | def delete_all(self, cond=None):
    method new_trial_ids (line 850) | def new_trial_ids(self, N):
    method trial_attachments (line 878) | def trial_attachments(self, trial):
    method attachments (line 927) | def attachments(self):
  class MongoWorker (line 976) | class MongoWorker(object):
    method __init__ (line 980) | def __init__(self, mj,
    method make_log_handler (line 998) | def make_log_handler(self):
    method run_one (line 1005) | def run_one(self,
  class MongoCtrl (line 1111) | class MongoCtrl(Ctrl):
    method __init__ (line 1121) | def __init__(self, trials, current_trial, read_only):
    method debug (line 1126) | def debug(self, *args, **kwargs):
    method info (line 1130) | def info(self, *args, **kwargs):
    method warn (line 1134) | def warn(self, *args, **kwargs):
    method error (line 1138) | def error(self, *args, **kwargs):
    method checkpoint (line 1142) | def checkpoint(self, result=None):
    method attachments (line 1150) | def attachments(self):
    method set_attachment (line 1158) | def set_attachment(self):
  function exec_import (line 1164) | def exec_import(cmd_module, cmd):
  function as_mongo_str (line 1170) | def as_mongo_str(s):
  function main_worker_helper (line 1177) | def main_worker_helper(options, args):
  function main_worker (line 1265) | def main_worker():

FILE: src/aup/Proposer/hyperopt/plotting.py
  function algo_as_str (line 37) | def algo_as_str(algo):
  function main_plot_history (line 43) | def main_plot_history(trials, bandit=None, algo=None, do_show=True,
  function main_plot_histogram (line 81) | def main_plot_histogram(trials, bandit=None, algo=None, do_show=True):
  function main_plot_vars (line 104) | def main_plot_vars(trials, bandit=None, do_show=True, fontsize=10,
  function erf (line 185) | def erf(x):
  function mixed_max_erf (line 214) | def mixed_max_erf(scores, n_valid):
  function mixed_max_sampled (line 243) | def mixed_max_sampled(scores, n_valid, n_samples=100, rng=None):
  function rexp_plot_acc (line 289) | def rexp_plot_acc(scores, n_valid, n_test, pbest_n_samples=100, rng=None):
  function rexp_pairs_raw (line 384) | def rexp_pairs_raw(x, y, vscores):
  class CoordType (line 407) | class CoordType(object):
  class RealCoord (line 410) | class RealCoord(CoordType):
    method preimage (line 413) | def preimage(x):
  class LogCoord (line 416) | class LogCoord(CoordType):
    method preimage (line 419) | def preimage(x):
  class Log0Coord (line 422) | class Log0Coord(CoordType):
    method preimage (line 425) | def preimage(x):
  class CategoryCoord (line 431) | class CategoryCoord(CoordType):
    method __init__ (line 433) | def __init__(self, categories=None):
    method preimage (line 436) | def preimage(self, x):
  function rexp_pairs (line 442) | def rexp_pairs(x, y, vscores, xtype, ytype):
  class MultiHistory (line 445) | class MultiHistory(object):
    method __init__ (line 450) | def __init__(self):
    method add_experiment (line 453) | def add_experiment(self, mj, y_fn, start=0, stop=sys.maxint,
    method add_scatters (line 470) | def add_scatters(self):
    method main_show (line 480) | def main_show(self, title=None):
  function main_plot_histories (line 489) | def main_plot_histories(cls):
  class ScatterByConf (line 529) | class ScatterByConf(object):
    method __init__ (line 532) | def __init__(self, conf_template, confs, status, y):
    method trial_color (line 555) | def trial_color(self, t):
    method scatter_one (line 558) | def scatter_one(self, column):
    method main_show_one (line 568) | def main_show_one(self, column):
    method main_show_all (line 573) | def main_show_all(self, columns=None):
  function main_plot_scatter (line 600) | def main_plot_scatter(self, argv):

FILE: src/aup/Proposer/hyperopt/pyll/base.py
  class PyllImportError (line 32) | class PyllImportError(ImportError):
  class MissingArgument (line 36) | class MissingArgument(object):
  class SymbolTable (line 41) | class SymbolTable(object):
    method __init__ (line 51) | def __init__(self):
    method _new_apply (line 66) | def _new_apply(self, name, args, kwargs, o_len, pure):
    method dict (line 76) | def dict(self, *args, **kwargs):
    method int (line 81) | def int(self, arg):
    method float (line 85) | def float(self, arg):
    method len (line 89) | def len(self, obj):
    method list (line 93) | def list(self, init):
    method map (line 97) | def map(self, fn, seq, pure=False):
    method range (line 104) | def range(self, *args):
    method max (line 107) | def max(self, *args):
    method min (line 112) | def min(self, *args):
    method getattr (line 117) | def getattr(self, obj, attr, *args):
    method _define (line 125) | def _define(self, f, o_len, pure):
    method define (line 132) | def define(self, f, o_len=None, pure=False):
    method define_if_new (line 140) | def define_if_new(self, f, o_len=None, pure=False):
    method undefine (line 148) | def undefine(self, f):
    method define_pure (line 156) | def define_pure(self, f):
    method define_info (line 159) | def define_info(self, o_len=None, pure=False):
    method inject (line 164) | def inject(self, *args, **kwargs):
    method import_ (line 183) | def import_(self, _globals, *args, **kwargs):
  class SymbolTableEntry (line 187) | class SymbolTableEntry(object):
    method __init__ (line 190) | def __init__(self, symbol_table, apply_name, o_len, pure):
    method __call__ (line 196) | def __call__(self, *args, **kwargs):
  function as_apply (line 207) | def as_apply(obj):
  class Apply (line 234) | class Apply(object):
    method __init__ (line 243) | def __init__(self, name, pos_args, named_args,
    method __setstate__ (line 260) | def __setstate__(self, state):
    method eval (line 266) | def eval(self, memo=None):
    method inputs (line 297) | def inputs(self):
    method arg (line 307) | def arg(self):
    method set_kwarg (line 399) | def set_kwarg(self, name, value):
    method clone_from_inputs (line 411) | def clone_from_inputs(self, inputs, o_len='same'):
    method replace_input (line 423) | def replace_input(self, old_node, new_node):
    method pprint (line 435) | def pprint(self, ofile, lineno=None, indent=0, memo=None):
    method __str__ (line 455) | def __str__(self):
    method __add__ (line 460) | def __add__(self, other):
    method __radd__ (line 463) | def __radd__(self, other):
    method __sub__ (line 466) | def __sub__(self, other):
    method __rsub__ (line 469) | def __rsub__(self, other):
    method __neg__ (line 472) | def __neg__(self):
    method __mul__ (line 475) | def __mul__(self, other):
    method __rmul__ (line 478) | def __rmul__(self, other):
    method __div__ (line 481) | def __div__(self, other):
    method __rdiv__ (line 484) | def __rdiv__(self, other):
    method __truediv__ (line 487) | def __truediv__(self, other):
    method __rtruediv__ (line 490) | def __rtruediv__(self, other):
    method __floordiv__ (line 493) | def __floordiv__(self, other):
    method __rfloordiv__ (line 496) | def __rfloordiv__(self, other):
    method __pow__ (line 499) | def __pow__(self, other):
    method __rpow__ (line 502) | def __rpow__(self, other):
    method __gt__ (line 505) | def __gt__(self, other):
    method __ge__ (line 508) | def __ge__(self, other):
    method __lt__ (line 511) | def __lt__(self, other):
    method __le__ (line 514) | def __le__(self, other):
    method __getitem__ (line 517) | def __getitem__(self, idx):
    method __len__ (line 525) | def __len__(self):
    method __call__ (line 530) | def __call__(self, *args, **kwargs):
  function apply (line 534) | def apply(name, *args, **kwargs):
  class Literal (line 544) | class Literal(Apply):
    method __init__ (line 545) | def __init__(self, obj=None):
    method eval (line 553) | def eval(self, memo=None):
    method obj (line 559) | def obj(self):
    method arg (line 563) | def arg(self):
    method pprint (line 566) | def pprint(self, ofile, lineno=None, indent=0, memo=None):
    method replace_input (line 584) | def replace_input(self, old_node, new_node):
    method clone_from_inputs (line 587) | def clone_from_inputs(self, inputs, o_len='same'):
  class Lambda (line 591) | class Lambda(object):
    method __init__ (line 597) | def __init__(self, name, params, expr):
    method __call__ (line 602) | def __call__(self, *args, **kwargs):
  class UndefinedValue (line 617) | class UndefinedValue(object):
  function call (line 630) | def call(fn, args=(), kwargs={}):
  function callpipe1 (line 639) | def callpipe1(fn_list, arg):
  function partial (line 661) | def partial(name, *args, **kwargs):
  function dfs (line 684) | def dfs(aa, seq=None, seqset=None):
  function toposort (line 704) | def toposort(expr):
  function clone (line 719) | def clone(expr, memo=None):
  function clone_merge (line 731) | def clone_merge(expr, memo=None, merge_literals=False):
  class GarbageCollected (line 775) | class GarbageCollected(object):
  function rec_eval (line 779) | def rec_eval(expr, deepcopy_inputs=False, memo=None,
  function pos_args (line 944) | def pos_args(*args):
  function identity (line 949) | def identity(obj):
  function exp (line 976) | def exp(a):
  function log (line 981) | def log(a):
  function pow (line 986) | def pow(a, b):
  function sin (line 991) | def sin(a):
  function cos (line 996) | def cos(a):
  function tan (line 1001) | def tan(a):
  function sum (line 1006) | def sum(x, axis=None):
  function sqrt (line 1014) | def sqrt(x):
  function minimum (line 1019) | def minimum(x, y):
  function maximum (line 1024) | def maximum(x, y):
  function array_union1 (line 1029) | def array_union1(args):
  function array_union (line 1037) | def array_union(*args):
  function asarray (line 1042) | def asarray(a, dtype=None):
  function str_join (line 1050) | def str_join(s, seq):
  function _bincount_slow (line 1054) | def _bincount_slow(x, weights=None, minlength=None):
  function bincount (line 1070) | def bincount(x, weights=None, minlength=None):
  function repeat (line 1084) | def repeat(n_times, obj):
  function call_method (line 1089) | def call_method(obj, methodname, *args, **kwargs):
  function call_method_pure (line 1095) | def call_method_pure(obj, methodname, *args, **kwargs):
  function copy_call_method_pure (line 1101) | def copy_call_method_pure(obj, methodname, *args, **kwargs):
  function switch (line 1113) | def switch(pos, *args):
  function _kwswitch (line 1124) | def _kwswitch(kw, **kwargs):
  function Raise (line 1135) | def Raise(etype, *args, **kwargs):
  function curtime (line 1140) | def curtime(obj):
  function pdb_settrace (line 1145) | def pdb_settrace(obj):

FILE: src/aup/Proposer/hyperopt/pyll/stochastic.py
  function ERR (line 16) | def ERR(msg):
  function implicit_stochastic (line 23) | def implicit_stochastic(f):
  function rng_from_seed (line 29) | def rng_from_seed(seed):
  function uniform (line 37) | def uniform(low, high, rng=None, size=()):
  function loguniform (line 43) | def loguniform(low, high, rng=None, size=()):
  function quniform (line 50) | def quniform(low, high, q, rng=None, size=()):
  function qloguniform (line 57) | def qloguniform(low, high, q, rng=None, size=()):
  function normal (line 66) | def normal(mu, sigma, rng=None, size=()):
  function qnormal (line 72) | def qnormal(mu, sigma, q, rng=None, size=()):
  function lognormal (line 79) | def lognormal(mu, sigma, rng=None, size=()):
  function qlognormal (line 86) | def qlognormal(mu, sigma, q, rng=None, size=()):
  function randint (line 96) | def randint(upper, rng=None, size=()):
  function categorical (line 111) | def categorical(p, upper=None, rng=None, size=()):
  function choice (line 150) | def choice(args):
  function one_of (line 155) | def one_of(*args):
  function recursive_set_rng_kwarg (line 161) | def recursive_set_rng_kwarg(expr, rng=None):
  function sample (line 181) | def sample(expr, rng=None, **kwargs):

FILE: src/aup/Proposer/hyperopt/pyll_utils.py
  function validate_label (line 14) | def validate_label(f):
  function hyperopt_param (line 31) | def hyperopt_param(label, obj):
  function hp_pchoice (line 42) | def hp_pchoice(label, p_options):
  function hp_choice (line 57) | def hp_choice(label, options):
  function hp_randint (line 64) | def hp_randint(label, *args, **kwargs):
  function hp_uniform (line 70) | def hp_uniform(label, *args, **kwargs):
  function hp_quniform (line 77) | def hp_quniform(label, *args, **kwargs):
  function hp_loguniform (line 84) | def hp_loguniform(label, *args, **kwargs):
  function hp_qloguniform (line 91) | def hp_qloguniform(label, *args, **kwargs):
  function hp_normal (line 98) | def hp_normal(label, *args, **kwargs):
  function hp_qnormal (line 105) | def hp_qnormal(label, *args, **kwargs):
  function hp_lognormal (line 112) | def hp_lognormal(label, *args, **kwargs):
  function hp_qlognormal (line 119) | def hp_qlognormal(label, *args, **kwargs):
  class Cond (line 130) | class Cond(object):
    method __init__ (line 132) | def __init__(self, name, val, op):
    method __str__ (line 137) | def __str__(self):
    method __eq__ (line 140) | def __eq__(self, other):
    method __hash__ (line 143) | def __hash__(self):
    method __repr__ (line 146) | def __repr__(self):
  function _expr_to_config (line 152) | def _expr_to_config(expr, conditions, hps):
  function expr_to_config (line 182) | def expr_to_config(expr, conditions, hps):
  function _remove_allpaths (line 207) | def _remove_allpaths(hps, conditions):

FILE: src/aup/Proposer/hyperopt/rand.py
  function suggest (line 15) | def suggest(new_ids, domain, trials, seed):
  function suggest_batch (line 34) | def suggest_batch(new_ids, domain, trials, seed):

FILE: src/aup/Proposer/hyperopt/rdists.py
  class loguniform_gen (line 15) | class loguniform_gen(rv_continuous):
    method __init__ (line 20) | def __init__(self, low=0, high=1):
    method _rvs (line 27) | def _rvs(self):
    method _pdf (line 34) | def _pdf(self, x):
    method _logpdf (line 37) | def _logpdf(self, x):
    method _cdf (line 40) | def _cdf(self, x):
  class lognorm_gen (line 46) | class lognorm_gen(scipy_lognorm_gen):
    method __init__ (line 47) | def __init__(self, mu, sigma):
    method _parse_args (line 58) | def _parse_args(self, *args, **kwds):
  function qtable_pmf (line 67) | def qtable_pmf(x, q, qlow, xs, ps):
  function qtable_logpmf (line 81) | def qtable_logpmf(x, q, qlow, xs, ps):
  class quniform_gen (line 93) | class quniform_gen(object):
    method __init__ (line 100) | def __init__(self, low, high, q):
    method pmf (line 127) | def pmf(self, x):
    method logpmf (line 130) | def logpmf(self, x):
    method rvs (line 133) | def rvs(self, size=()):
  class qloguniform_gen (line 139) | class qloguniform_gen(quniform_gen):
    method __init__ (line 146) | def __init__(self, low, high, q):
    method pmf (line 183) | def pmf(self, x):
    method logpmf (line 186) | def logpmf(self, x):
    method rvs (line 189) | def rvs(self, size=()):
  class qnormal_gen (line 195) | class qnormal_gen(object):
    method __init__ (line 199) | def __init__(self, mu, sigma, q):
    method in_domain (line 204) | def in_domain(self, x):
    method pmf (line 207) | def pmf(self, x):
    method logpmf (line 210) | def logpmf(self, x):
    method rvs (line 234) | def rvs(self, size=()):
  class qlognormal_gen (line 240) | class qlognormal_gen(object):
    method __init__ (line 244) | def __init__(self, mu, sigma, q):
    method in_domain (line 249) | def in_domain(self, x):
    method pmf (line 253) | def pmf(self, x):
    method logpmf (line 267) | def logpmf(self, x):
    method rvs (line 277) | def rvs(self, size=()):

FILE: src/aup/Proposer/hyperopt/tpe.py
  function adaptive_parzen_sampler (line 41) | def adaptive_parzen_sampler(name):
  function categorical_lpdf (line 57) | def categorical_lpdf(sample, p, upper):
  function GMM1 (line 70) | def GMM1(weights, mus, sigmas, low=None, high=None, q=None, rng=None,
  function normal_cdf (line 103) | def normal_cdf(x, mu, sigma):
  function GMM1_lpdf (line 111) | def GMM1_lpdf(samples, weights, mus, sigmas, low=None, high=None, q=None):
  function lognormal_cdf (line 178) | def lognormal_cdf(x, mu, sigma):
  function lognormal_lpdf (line 200) | def lognormal_lpdf(x, mu, sigma):
  function qlognormal_lpdf (line 212) | def qlognormal_lpdf(x, mu, sigma, q):
  function LGMM1 (line 224) | def LGMM1(weights, mus, sigmas, low=None, high=None, q=None,
  function logsum_rows (line 259) | def logsum_rows(x):
  function LGMM1_lpdf (line 266) | def LGMM1_lpdf(samples, weights, mus, sigmas, low=None, high=None, q=None):
  function adaptive_parzen_normal_orig (line 316) | def adaptive_parzen_normal_orig(mus, prior_weight, prior_mu, prior_sigma):
  function linear_forgetting_weights (line 386) | def linear_forgetting_weights(N, LF):
  function adaptive_parzen_normal (line 405) | def adaptive_parzen_normal(mus, prior_weight, prior_mu, prior_sigma,
  function ap_uniform_sampler (line 494) | def ap_uniform_sampler(obs, prior_weight, low, high, size=(), rng=None):
  function ap_quniform_sampler (line 504) | def ap_quniform_sampler(obs, prior_weight, low, high, q, size=(), rng=No...
  function ap_loguniform_sampler (line 514) | def ap_loguniform_sampler(obs, prior_weight, low, high,
  function ap_qloguniform_sampler (line 526) | def ap_qloguniform_sampler(obs, prior_weight, low, high, q,
  function ap_normal_sampler (line 549) | def ap_normal_sampler(obs, prior_weight, mu, sigma, size=(), rng=None):
  function ap_qnormal_sampler (line 556) | def ap_qnormal_sampler(obs, prior_weight, mu, sigma, q, size=(), rng=None):
  function ap_loglognormal_sampler (line 563) | def ap_loglognormal_sampler(obs, prior_weight, mu, sigma, size=(), rng=N...
  function ap_qlognormal_sampler (line 571) | def ap_qlognormal_sampler(obs, prior_weight, mu, sigma, q, size=(), rng=...
  function ap_categorical_sampler (line 582) | def ap_categorical_sampler(obs, prior_weight, upper,
  function tpe_cat_pseudocounts (line 599) | def tpe_cat_pseudocounts(counts, upper, prior_weight, p, size):
  function ap_categorical_sampler (line 612) | def ap_categorical_sampler(obs, prior_weight, p, upper=None,
  function ap_filter_trials (line 625) | def ap_filter_trials(o_idxs, o_vals, l_idxs, l_vals, gamma,
  function build_posterior (line 651) | def build_posterior(specs, prior_idxs, prior_vals, obs_idxs, obs_vals,
  function idxs_prod (line 743) | def idxs_prod(full_idxs, idxs_by_label, llik_by_label):
  function broadcast_best (line 770) | def broadcast_best(samples, below_llik, above_llik):
  function tpe_transform (line 794) | def tpe_transform(domain, prior_weight, gamma):
  function suggest (line 823) | def suggest(new_ids, domain, trials, seed,

FILE: src/aup/Proposer/hyperopt/utils.py
  function import_tokens (line 27) | def import_tokens(tokens):
  function load_tokens (line 45) | def load_tokens(tokens):
  function json_lookup (line 54) | def json_lookup(json):
  function json_call (line 59) | def json_call(json, args=(), kwargs=None):
  function get_obj (line 84) | def get_obj(f, argfile=None, argstr=None, args=(), kwargs=None):
  function pmin_sampled (line 101) | def pmin_sampled(mean, var, n_samples=1000, rng=None):
  function fast_isin (line 121) | def fast_isin(X, Y):
  function get_most_recent_inds (line 145) | def get_most_recent_inds(obj):
  function use_obj_for_literal_in_memo (line 156) | def use_obj_for_literal_in_memo(expr, obj, lit, memo):
  function coarse_utcnow (line 177) | def coarse_utcnow():
  function working_dir (line 190) | def working_dir(dir):
  function path_split_all (line 197) | def path_split_all(path):
  function get_closest_dir (line 208) | def get_closest_dir(workdir):
  function temp_dir (line 225) | def temp_dir(dir, erase_after=False, with_sentinel=True):

FILE: src/aup/Proposer/hyperopt/vectorize.py
  function ERR (line 21) | def ERR(msg):
  function vchoice_split (line 26) | def vchoice_split(idxs, choices, n_options):
  function vchoice_merge (line 37) | def vchoice_merge(idxs, choices, *vals):
  function idxs_map (line 47) | def idxs_map(idxs, cmd, *args, **kwargs):
  function idxs_take (line 110) | def idxs_take(idxs, vals, which):
  function uniq (line 122) | def uniq(lst):
  function vectorize_stochastic (line 132) | def vectorize_stochastic(orig):
  function replace_repeat_stochastic (line 172) | def replace_repeat_stochastic(expr, return_memo=False):
  class VectorizeHelper (line 220) | class VectorizeHelper(object):
    method __init__ (line 233) | def __init__(self, expr, expr_idxs, build=True):
    method assert_integrity_idxs_take (line 257) | def assert_integrity_idxs_take(self):
    method build_idxs_vals (line 271) | def build_idxs_vals(self, node, wanted_idxs):
    method idxs_by_label (line 440) | def idxs_by_label(self):
    method vals_by_label (line 444) | def vals_by_label(self):

FILE: src/aup/Proposer/spearmint/ExperimentGrid.py
  class ExperimentGrid (line 49) | class ExperimentGrid:
    method job_running (line 52) | def job_running(expt_dir, id):
    method job_complete (line 57) | def job_complete(expt_dir, id, value, duration):
    method job_broken (line 64) | def job_broken(expt_dir, id):
    method __init__ (line 68) | def __init__(self, expt_dir, variables=None, grid_size=None, grid_seed...
    method __del__ (line 92) | def __del__(self):
    method get_grid (line 99) | def get_grid(self):
    method get_candidates (line 102) | def get_candidates(self):
    method get_pending (line 105) | def get_pending(self):
    method get_complete (line 108) | def get_complete(self):
    method get_broken (line 111) | def get_broken(self):
    method get_params (line 114) | def get_params(self, index):
    method get_best (line 117) | def get_best(self):
    method get_proc_id (line 126) | def get_proc_id(self, id):
    method add_to_grid (line 129) | def add_to_grid(self, candidate):
    method set_candidate (line 147) | def set_candidate(self, id):
    method set_submitted (line 151) | def set_submitted(self, id, proc_id):
    method set_running (line 156) | def set_running(self, id):
    method set_complete (line 160) | def set_complete(self, id, value, duration):
    method set_broken (line 166) | def set_broken(self, id):
    method _load_jobs (line 170) | def _load_jobs(self):
    method _save_jobs (line 182) | def _save_jobs(self):
    method _hypercube_grid (line 198) | def _hypercube_grid(self, dims, size):
  class GridMap (line 204) | class GridMap:
    method __init__ (line 206) | def __init__(self, variables, grid_size):
    method get_params (line 237) | def get_params(self, u):
    method card (line 268) | def card(self):
    method _index_map (line 271) | def _index_map(self, u, items):

FILE: src/aup/Proposer/spearmint/Locker.py
  function safe_delete (line 26) | def safe_delete(filename):
  class Locker (line 32) | class Locker:
    method __init__ (line 34) | def __init__(self):
    method __del__ (line 37) | def __del__(self):
    method lock (line 43) | def lock(self, filename):
    method unlock (line 54) | def unlock(self, filename):
    method lock_wait (line 68) | def lock_wait(self, filename):

FILE: src/aup/Proposer/spearmint/chooser/CMAChooser.py
  function init (line 5) | def init(expt_dir, arg_string):
  class CMAChooser (line 12) | class CMAChooser:
    method __init__ (line 14) | def __init__(self, expt_dir):
    method _real_init (line 25) | def _real_init(self, dims, values):
    method __del__ (line 38) | def __del__(self):
    method next (line 66) | def next(self, grid, values, durations, candidates, pending, complete):

FILE: src/aup/Proposer/spearmint/chooser/GPConstrainedEIChooser.py
  function optimize_pt (line 46) | def optimize_pt(c, b, comp, pend, vals, labels, model):
  function init (line 52) | def init(expt_dir, arg_string):
  class GPConstrainedEIChooser (line 65) | class GPConstrainedEIChooser:
    method __init__ (line 67) | def __init__(self, expt_dir, covar="Matern52", mcmc_iters=20,
    method dump_hypers (line 114) | def dump_hypers(self):
    method _real_init (line 155) | def _real_init(self, dims, values, durations):
    method cov (line 206) | def cov(self, amp2, ls, x1, x2=None):
    method next (line 216) | def next(self, grid, values, durations,
    method pred_constraint_voilation (line 437) | def pred_constraint_voilation(self, cand, comp, vals):
    method ei_over_hypers (line 462) | def ei_over_hypers(self,comp,pend,cand,vals,labels):
    method grad_optimize_ei_over_hypers (line 483) | def grad_optimize_ei_over_hypers(self, cand, comp, pend, vals, labels,
    method check_grad_ei (line 515) | def check_grad_ei(self, cand, comp, pend, vals, labels):
    method grad_optimize_ei (line 533) | def grad_optimize_ei(self, cand, comp, pend, vals, labels, compute_gra...
    method grad_optimize_ei_pend (line 541) | def grad_optimize_ei_pend(self, cand, comp, pend, vals, labels, comput...
    method grad_optimize_ei_nopend (line 704) | def grad_optimize_ei_nopend(self, cand, comp, vals, labels, compute_gr...
    method compute_constrained_ei (line 818) | def compute_constrained_ei(self, comp, pend, cand, vals, labels):
    method compute_ei (line 954) | def compute_ei(self, comp, pend, cand, vals, labels):
    method sample_constraint_hypers (line 1026) | def sample_constraint_hypers(self, comp, labels):
    method sample_hypers (line 1044) | def sample_hypers(self, comp, vals):
    method _sample_ls (line 1054) | def _sample_ls(self, comp, vals):
    method _sample_constraint_ls (line 1070) | def _sample_constraint_ls(self, comp, vals):
    method _sample_noisy (line 1128) | def _sample_noisy(self, comp, vals):
    method _sample_constraint_noisy (line 1163) | def _sample_constraint_noisy(self, comp, vals):
    method _sample_noiseless (line 1215) | def _sample_noiseless(self, comp, vals):
    method elliptical_slice (line 1246) | def elliptical_slice(self, xx, chol_Sigma, log_like_fn, cur_log_like=N...

FILE: src/aup/Proposer/spearmint/chooser/GPEIChooser.py
  function init (line 41) | def init(expt_dir, arg_string):
  class GPEIChooser (line 51) | class GPEIChooser:
    method __init__ (line 53) | def __init__(self, expt_dir, covar="Matern52", mcmc_iters=10,
    method __del__ (line 74) | def __del__(self):
    method _real_init (line 93) | def _real_init(self, dims, values):
    method cov (line 124) | def cov(self, x1, x2=None):
    method next (line 131) | def next(self, grid, values, durations, candidates, pending, complete):
    method compute_ei (line 184) | def compute_ei(self, comp, pend, cand, vals):
    method sample_hypers (line 274) | def sample_hypers(self, comp, vals):
    method _sample_ls (line 282) | def _sample_ls(self, comp, vals):
    method _sample_noisy (line 295) | def _sample_noisy(self, comp, vals):
    method _sample_noiseless (line 328) | def _sample_noiseless(self, comp, vals):
    method optimize_hypers (line 354) | def optimize_hypers(self, comp, vals):

FILE: src/aup/Proposer/spearmint/chooser/GPEIOptChooser.py
  function optimize_pt (line 43) | def optimize_pt(c, b, comp, pend, vals, model):
  function init (line 49) | def init(expt_dir, arg_string):
  class GPEIOptChooser (line 59) | class GPEIOptChooser:
    method __init__ (line 61) | def __init__(self, expt_dir, covar="Matern52", mcmc_iters=10,
    method dump_hypers (line 92) | def dump_hypers(self):
    method generate_stats_html (line 133) | def generate_stats_html(self):
    method _read_only (line 159) | def _read_only(self):
    method _real_init (line 176) | def _real_init(self, dims, values):
    method cov (line 215) | def cov(self, x1, x2=None):
    method next (line 225) | def next(self, grid, values, durations,
    method ei_over_hypers (line 339) | def ei_over_hypers(self,comp,pend,cand,vals):
    method check_grad_ei (line 351) | def check_grad_ei(self, cand, comp, pend, vals):
    method grad_optimize_ei_over_hypers (line 368) | def grad_optimize_ei_over_hypers(self, cand, comp, pend, vals, compute...
    method grad_optimize_ei (line 399) | def grad_optimize_ei(self, cand, comp, pend, vals, compute_grad=True):
    method compute_ei (line 535) | def compute_ei(self, comp, pend, cand, vals):
    method sample_hypers (line 629) | def sample_hypers(self, comp, vals):
    method _sample_ls (line 638) | def _sample_ls(self, comp, vals):
    method _sample_noisy (line 653) | def _sample_noisy(self, comp, vals):
    method _sample_noiseless (line 686) | def _sample_noiseless(self, comp, vals):
    method optimize_hypers (line 716) | def optimize_hypers(self, comp, vals):

FILE: src/aup/Proposer/spearmint/chooser/GPEIperSecChooser.py
  function init (line 41) | def init(expt_dir, arg_string):
  class GPEIperSecChooser (line 53) | class GPEIperSecChooser:
    method __init__ (line 55) | def __init__(self, expt_dir, covar="Matern52", mcmc_iters=10,
    method dump_hypers (line 96) | def dump_hypers(self):
    method _real_init (line 119) | def _real_init(self, dims, values, durations):
    method cov (line 159) | def cov(self, amp2, ls, x1, x2=None):
    method next (line 169) | def next(self, grid, values, durations,
    method ei_over_hypers (line 298) | def ei_over_hypers(self,comp,pend,cand,vals,durs):
    method check_grad_ei_per (line 318) | def check_grad_ei_per(self, cand, comp, vals, durs):
    method grad_optimize_ei_over_hypers (line 335) | def grad_optimize_ei_over_hypers(self, cand, comp, vals, durs, compute...
    method grad_optimize_ei (line 365) | def grad_optimize_ei(self, cand, comp, vals, durs, compute_grad=True):
    method compute_ei_per_s (line 451) | def compute_ei_per_s(self, comp, pend, cand, vals, durs):
    method sample_hypers (line 564) | def sample_hypers(self, comp, vals, durs):
    method _sample_ls (line 579) | def _sample_ls(self, comp, vals):
    method _sample_time_ls (line 592) | def _sample_time_ls(self, comp, vals):
    method _sample_noisy (line 605) | def _sample_noisy(self, comp, vals):
    method _sample_time_noisy (line 637) | def _sample_time_noisy(self, comp, vals):
    method _sample_noiseless (line 669) | def _sample_noiseless(self, comp, vals):
    method optimize_hypers (line 697) | def optimize_hypers(self, comp, vals, durs):

FILE: src/aup/Proposer/spearmint/chooser/RandomChooser.py
  function init (line 25) | def init(expt_dir, arg_string):
  class RandomChooser (line 28) | class RandomChooser:
    method __init__ (line 30) | def __init__(self):
    method next (line 33) | def next(self, grid, values, durations,

FILE: src/aup/Proposer/spearmint/chooser/RandomForestEIChooser.py
  function init (line 13) | def init(expt_dir, arg_string):
  class RandomForestRegressorWithVariance (line 17) | class RandomForestRegressorWithVariance(sklearn.ensemble.RandomForestReg...
    method predict (line 19) | def predict(self,X):
  class RandomForestEIChooser (line 31) | class RandomForestEIChooser:
    method __init__ (line 33) | def __init__(self,n_trees=50,
    method next (line 53) | def next(self, grid, values, durations,

FILE: src/aup/Proposer/spearmint/chooser/SequentialChooser.py
  function init (line 24) | def init(expt_dir, arg_string):
  class SequentialChooser (line 27) | class SequentialChooser:
    method __init__ (line 29) | def __init__(self):
    method next (line 32) | def next(self, grid, values, durations,

FILE: src/aup/Proposer/spearmint/chooser/cma.py
  function show (line 174) | def show():
  function unitdoctest (line 243) | def unitdoctest():
  class BlancClass (line 330) | class BlancClass(object):
  class DerivedDictBase (line 336) | class DerivedDictBase(collections.MutableMapping):
    method __init__ (line 340) | def __init__(self, *args, **kwargs):
    method __len__ (line 345) | def __len__(self):
    method __contains__ (line 347) | def __contains__(self, value):
    method __iter__ (line 349) | def __iter__(self):
    method __setitem__ (line 351) | def __setitem__(self, key, value):
    method __getitem__ (line 354) | def __getitem__(self, key):
    method __delitem__ (line 357) | def __delitem__(self, key):
  class SolutionDict (line 360) | class SolutionDict(DerivedDictBase):
    method __init__ (line 377) | def __init__(self, *args, **kwargs):
    method key (line 380) | def key(self, x):
    method __setitem__ (line 385) | def __setitem__(self, key, value):
    method __getitem__ (line 393) | def __getitem__(self, key):
    method __delitem__ (line 396) | def __delitem__(self, key):
    method truncate (line 406) | def truncate(self, max_len, min_iter):
  class SolutionDictOld (line 412) | class SolutionDictOld(dict):
    method __init__ (line 430) | def __init__(self):
    method key (line 436) | def key(self, x):
    method insert (line 439) | def insert(self, x, datadict):
    method _get_derived (line 446) | def _get_derived(self, x, default=None):
    method _pop_derived (line 448) | def _pop_derived(self, x):
  class BestSolution (line 457) | class BestSolution(object):
    method __init__ (line 459) | def __init__(self, x=None, f=np.inf, evals=None):
    method update (line 472) | def update(self, arx, xarchive=None, arf=None, evals=None):
    method get (line 504) | def get(self):
  class BoundPenalty (line 511) | class BoundPenalty(object):
    method __init__ (line 527) | def __init__(self, bounds=None):
    method has_bounds (line 540) | def has_bounds(self):
    method repair (line 553) | def repair(self, x, bounds=None, copy=False, copy_always=False):
    method __call__ (line 596) | def __call__(self, x, archive, gp):
    method feasible_ratio (line 622) | def feasible_ratio(self, solutions):
    method update (line 637) | def update(self, function_values, es, bounds=None):
  class GenoPhenoBase (line 729) | class GenoPhenoBase(object):
    method pheno (line 756) | def pheno(self, x):
  class GenoPheno (line 763) | class GenoPheno(object):
    method __init__ (line 786) | def __init__(self, dim, scaling=None, typical_x=None, bounds=None, fix...
    method into_bounds (line 905) | def into_bounds(self, y, bounds=None, copy_never=False, copy_always=Fa...
    method pheno (line 936) | def pheno(self, x, bounds=None, copy=True, copy_always=False):
    method geno (line 974) | def geno(self, y, bounds=None, copy=True, copy_always=False, archive=N...
  class OOOptimizer (line 1032) | class OOOptimizer(object):
    method __init__ (line 1100) | def __init__(self, xstart, **more_args):
    method initialize (line 1105) | def initialize(self):
    method ask (line 1110) | def ask(self):
    method tell (line 1114) | def tell(self, solutions, function_values):
    method stop (line 1118) | def stop(self):
    method disp (line 1124) | def disp(self, modulo=None):
    method result (line 1127) | def result(self):
    method optimize (line 1131) | def optimize(self, objectivefct, logger=None, verb_disp=20, iterations...
  class CMAEvolutionStrategy (line 1192) | class CMAEvolutionStrategy(OOOptimizer):
    method popsize (line 1432) | def popsize(self):
    method stop (line 1446) | def stop(self, check=True):
    method __init__ (line 1460) | def __init__(self, x0, sigma0, inopts = {}):
    method ask (line 1607) | def ask(self, number=None, xmean=None, sigma_fac=1):
    method ask_geno (line 1663) | def ask_geno(self, number=None, xmean=None, sigma_fac=1):
    method get_mirror (line 1763) | def get_mirror(self, x):
    method mirror_penalized (line 1791) | def mirror_penalized(self, f_values, idx):
    method mirror_idx_cov (line 1810) | def mirror_idx_cov(self, f_values, idx1):  # will most likely be removed
    method ask_and_eval (line 1840) | def ask_and_eval(self, func, args=(), number=None, xmean=None, sigma_f...
    method tell (line 1966) | def tell(self, solutions, function_values, check_points=None, copy=Fal...
    method result (line 2329) | def result(self):
    method clip_or_fit_solutions (line 2335) | def clip_or_fit_solutions(self, pop, idx):
    method repair_genotype (line 2344) | def repair_genotype(self, x):
    method updateBD (line 2378) | def updateBD(self):
    method multiplyC (line 2467) | def multiplyC(self, alpha):
    method update_exponential (line 2473) | def update_exponential(self, Z, eta, BDpair=None):
    method _updateCholesky (line 2503) | def _updateCholesky(self, A, Ainv, p, alpha, beta):
    method feedForResume (line 2530) | def feedForResume(self, X, function_values):
    method readProperties (line 2598) | def readProperties(self):
    method mahalanobisNorm (line 2605) | def mahalanobisNorm(self, dx):
    method timesCroot (line 2632) | def timesCroot(self, mat):
    method divCroot (line 2643) | def divCroot(self, mat):
    method disp_annotation (line 2655) | def disp_annotation(self):
    method disp (line 2662) | def disp(self, modulo=None):  # TODO: rather assign opt['verb_disp'] a...
  class Options (line 2692) | class Options(dict):
    method defaults (line 2740) | def defaults():
    method versatileOptions (line 2746) | def versatileOptions():
    method __init__ (line 2755) | def __init__(self, s=None, unchecked=False):
    method init (line 2783) | def init(self, dict_or_str, val=None, warn=True):
    method set (line 2815) | def set(self, dic, val=None, warn=True):
    method complement (line 2843) | def complement(self):
    method settable (line 2851) | def settable(self):
    method __call__ (line 2862) | def __call__(self, key, default=None, loc=None):
    method eval (line 2897) | def eval(self, key, default=None, loc=None):
    method evalall (line 2913) | def evalall(self, loc=None):
    method match (line 2927) | def match(self, s=''):
    method pp (line 2942) | def pp(self):
    method printme (line 2945) | def printme(self, linebreak=80):
  class CMAParameters (line 2960) | class CMAParameters(object):
    method __init__ (line 3003) | def __init__(self, N, opts, ccovfac=1, verbose=True):
    method set (line 3013) | def set(self, opts, popsize=None, ccovfac=1, verbose=True):
    method disp (line 3151) | def disp(self):
  class CMAStopDict (line 3156) | class CMAStopDict(dict):
    method __init__ (line 3167) | def __init__(self, d={}):
    method __call__ (line 3176) | def __call__(self, es):
    method _addstop (line 3180) | def _addstop(self, key, cond, val=None):
    method _update (line 3187) | def _update(self, es):
  class BaseDataLogger2 (line 3287) | class BaseDataLogger2(DerivedDictBase):
    method add (line 3289) | def add(self, optim=None, more_data=[]):
    method register (line 3294) | def register(self, optim):
    method disp (line 3298) | def disp(self):
    method plot (line 3301) | def plot(self):
    method data (line 3304) | def data(self):
  class BaseDataLogger (line 3307) | class BaseDataLogger(object):
    method add (line 3309) | def add(self, optim=None, more_data=[]):
    method register (line 3314) | def register(self, optim):
    method disp (line 3318) | def disp(self):
    method plot (line 3321) | def plot(self):
    method data (line 3324) | def data(self):
  class CMADataLogger (line 3331) | class CMADataLogger(BaseDataLogger):  # might become a dict at some point
    method __init__ (line 3377) | def __init__(self, name_prefix=default_prefix, modulo=1, append=False):
    method register (line 3395) | def register(self, es, append=None, modulo=None):
    method initialize (line 3413) | def initialize(self, modulo=None):
    method load (line 3498) | def load(self, filenameprefix=None):
    method add (line 3521) | def add(self, es=None, more_data=[], modulo=None): # TODO: find a diff...
    method closefig (line 3647) | def closefig(self):
    method save (line 3650) | def save(self, nameprefix, switch=False):
    method plot (line 3671) | def plot(self, fig=None, iabscissa=1, iteridx=None, plot_mean=True,  #...
    method plotdivers (line 3891) | def plotdivers(dat, iabscissa, foffset):
    method downsampling (line 3969) | def downsampling(self, factor=10, first=3, switch=True):
    method disp (line 4013) | def disp(self, idx=100):  # r_[0:5,1e2:1e9:1e2,-10:0]):
    method disp_header (line 4085) | def disp_header(self):
  class DEAPCMADataLogger (line 4097) | class DEAPCMADataLogger(BaseDataLogger):  # might become a dict at some ...
    method __init__ (line 4143) | def __init__(self, name_prefix=default_prefix, modulo=1, append=False):
    method register (line 4159) | def register(self, es, append=None, modulo=None):
    method initialize (line 4175) | def initialize(self, modulo=None):
    method load (line 4263) | def load(self, filenameprefix=None):
    method add (line 4288) | def add(self, fitness_values, es=None, more_data=[], modulo=None): # T...
    method closefig (line 4394) | def closefig(self):
    method save (line 4397) | def save(self, nameprefix, switch=False):
    method plot (line 4418) | def plot(self, fig=None, iabscissa=1, iteridx=None, plot_mean=True,  #...
    method plotdivers (line 4635) | def plotdivers(dat, iabscissa, foffset):
    method downsampling (line 4713) | def downsampling(self, factor=10, first=3, switch=True):
    method disp_header (line 4757) | def disp_header(self):
    method disp (line 4761) | def disp(self, idx=100):  # r_[0:5,1e2:1e9:1e2,-10:0]):
  function irg (line 4835) | def irg(ar):
  class AII (line 4837) | class AII(object):
    method __init__ (line 4849) | def __init__(self, x0, sigma0, randn=np.random.randn):
    method initialize (line 4874) | def initialize(self):
    method ask (line 4884) | def ask(self, popsize):
    method tell (line 4895) | def tell(self, X, f):
  function fmin (line 4935) | def fmin(func, x0, sigma0=None, args=()
  function plot (line 5345) | def plot(name=None, fig=None, abscissa=1, iteridx=None, plot_mean=True, ...
  function disp (line 5392) | def disp(name=None, idx=None):
  function _fileToMatrix (line 5425) | def _fileToMatrix(file_name):
  class NoiseHandler (line 5450) | class NoiseHandler(object):
    method __init__ (line 5505) | def __init__(self, N, maxevals=10, aggregate=np.median, reevals=None, ...
    method __call__ (line 5557) | def __call__(self, X, fit, func, ask=None, args=()):
    method get_evaluations (line 5591) | def get_evaluations(self):
    method treat (line 5595) | def treat(self):
    method reeval (line 5607) | def reeval(self, X, fit, func, ask, args=()):
    method update_measure (line 5634) | def update_measure(self):
    method indices (line 5660) | def indices(self, fit):
  class Sections (line 5675) | class Sections(object):
    method __init__ (line 5712) | def __init__(self, func, x, args=(), basis=None, name=None,
    method do (line 5752) | def do(self, repetitions=1, locations=np.arange(-0.5, 0.6, 0.2), plot=...
    method plot (line 5791) | def plot(self, plot_cmd=None, tf=lambda y: y):
    method flattened (line 5818) | def flattened(self):
    method save (line 5835) | def save(self, name=None):
    method load (line 5845) | def load(self, name=None):
  class _Error (line 5854) | class _Error(Exception):
  class ElapsedTime (line 5861) | class ElapsedTime(object):
    method __init__ (line 5863) | def __init__(self):
    method __call__ (line 5871) | def __call__(self):
  class TimeIt (line 5891) | class TimeIt(object):
    method __init__ (line 5892) | def __init__(self, fct, args=(), seconds=1):
  class Misc (line 5895) | class Misc(object):
    class MathHelperFunctions (line 5899) | class MathHelperFunctions(object):
      method aclamp (line 5905) | def aclamp(x, upper):
      method expms (line 5908) | def expms(A, eig=np.linalg.eigh):
      method amax (line 5915) | def amax(vec, vec_or_scalar):
      method max (line 5918) | def max(vec, vec_or_scalar):
      method amin (line 5926) | def amin(vec_or_scalar, vec_or_scalar2):
      method min (line 5929) | def min(a, b):
      method norm (line 5941) | def norm(vec, expo=2):
      method apos (line 5944) | def apos(x, lower=0):
      method prctile (line 5951) | def prctile(data, p_vals=[0, 25, 50, 75, 100], sorted_=False):
      method sround (line 5976) | def sround(nb):  # TODO: to be vectorized
      method cauchy_with_variance_one (line 5981) | def cauchy_with_variance_one():
      method standard_finite_cauchy (line 5987) | def standard_finite_cauchy(size=1):
    method likelihood (line 6005) | def likelihood(x, m=None, Cinv=None, sigma=1, detC=None):
    method loglikelihood (line 6022) | def loglikelihood(self, x, previous=False):
    method eig (line 6068) | def eig(C):
  function pprint (line 6397) | def pprint(to_be_printed):
  class Rotation (line 6407) | class Rotation(object):
    method __init__ (line 6422) | def __init__(self):
    method __call__ (line 6424) | def __call__(self, x, inverse=False): # function when calling an object
  class FitnessFunctions (line 6446) | class FitnessFunctions(object):
    method __init__ (line 6449) | def __init__(self):
    method rot (line 6451) | def rot(self, x, fun, rot=1, args=()):
    method somenan (line 6463) | def somenan(self, x, fun, p=0.1):
    method rand (line 6469) | def rand(self, x):
    method linear (line 6472) | def linear(self, x):
    method lineard (line 6474) | def lineard(self, x):
    method sphere (line 6480) | def sphere(self, x):
    method spherewithoneconstraint (line 6484) | def spherewithoneconstraint(self, x):
    method elliwithoneconstraint (line 6486) | def elliwithoneconstraint(self, x, idx=[-1]):
    method spherewithnconstraints (line 6489) | def spherewithnconstraints(self, x):
    method noisysphere (line 6492) | def noisysphere(self, x, noise=4.0, cond=1.0):
    method spherew (line 6495) | def spherew(self, x):
    method partsphere (line 6502) | def partsphere(self, x):
    method sectorsphere (line 6513) | def sectorsphere(self, x):
    method cornersphere (line 6516) | def cornersphere(self, x):
    method cornerelli (line 6522) | def cornerelli(self, x):
    method cornerellirot (line 6527) | def cornerellirot(self, x):
    method normalSkew (line 6532) | def normalSkew(self, f):
    method noiseC (line 6537) | def noiseC(self, x, func=sphere, fac=10, expon=0.8):
    method noise (line 6541) | def noise(self, x, func=sphere, fac=10, expon=1):
    method cigar (line 6551) | def cigar(self, x, rot=0, cond=1e6):
    method tablet (line 6558) | def tablet(self, x, rot=0):
    method cigtab (line 6565) | def cigtab(self, y):
    method twoaxes (line 6570) | def twoaxes(self, y):
    method ellirot (line 6576) | def ellirot(self, x):
    method hyperelli (line 6578) | def hyperelli(self, x):
    method elli (line 6581) | def elli(self, x, rot=0, xoffset=0, cond=1e6, actuator_noise=0.0, both...
    method elliconstraint (line 6604) | def elliconstraint(self, x, cfac = 1e8, tough=True, cond=1e6):
    method rosen (line 6616) | def rosen(self, x, alpha=1e2):
    method diffpow (line 6621) | def diffpow(self, x, rot=0):
    method rosenelli (line 6627) | def rosenelli(self, x):
    method ridge (line 6630) | def ridge(self, x, expo=2):
    method ridgecircle (line 6634) | def ridgecircle(self, x, expo=0.5):
    method happycat (line 6639) | def happycat(self, x, alpha=1./8):
    method flat (line 6642) | def flat(self,x):
    method branin (line 6646) | def branin(self, x):
    method goldsteinprice (line 6651) | def goldsteinprice(self, x):
    method griewank (line 6656) | def griewank(self, x):
    method rastrigin (line 6660) | def rastrigin(self, x):
    method schaffer (line 6668) | def schaffer(self, x):
    method schwefelelli (line 6674) | def schwefelelli(self, x):
    method schwefelmult (line 6681) | def schwefelmult(self, x, pen_fac = 1e4):
    method optprob (line 6688) | def optprob(self, x):
    method lincon (line 6692) | def lincon(self, x, theta=0.01):
    method rosen_nesterov (line 6697) | def rosen_nesterov(self, x, rho=100):
  function felli (line 6710) | def felli(x): # unbound function, needed to test multiprocessor
  function _test (line 6716) | def _test(module=None):  # None is fine when called from inside the module
  function process_test (line 6719) | def process_test(stream=None):
  function main (line 6761) | def main(argv=None):

FILE: src/aup/Proposer/spearmint/gp.py
  function dist2 (line 33) | def dist2(ls, x1, x2=None):
  function grad_dist2 (line 55) | def grad_dist2(ls, x1, x2=None):
  function SE (line 86) | def SE(ls, x1, x2=None, grad=False):
  function ARDSE (line 94) | def ARDSE(ls, x1, x2=None, grad=False):
  function grad_ARDSE (line 101) | def grad_ARDSE(ls, x1, x2=None):
  function Matern32 (line 106) | def Matern32(ls, x1, x2=None, grad=False):
  function grad_Matern32 (line 114) | def grad_Matern32(ls, x1, x2=None):
  function Matern52 (line 119) | def Matern52(ls, x1, x2=None, grad=False):
  function grad_Matern52 (line 128) | def grad_Matern52(ls, x1, x2=None):
  class GP (line 133) | class GP:
    method __init__ (line 134) | def __init__(self, covar="Matern52", mcmc_iters=10, noiseless=False):
    method real_init (line 146) | def real_init(self, dims, values):
    method cov (line 162) | def cov(self, x1, x2=None):
    method logprob (line 169) | def logprob(self, comp, vals):
    method optimize_hypers (line 180) | def optimize_hypers(self, comp, vals):
  function main (line 293) | def main():

FILE: src/aup/Proposer/spearmint/helpers.py
  function log (line 10) | def log(*args):
  function sh (line 17) | def sh(cmd):
  function redirect_output (line 22) | def redirect_output(path):
  function check_dir (line 29) | def check_dir(path):
  function grid_for (line 35) | def grid_for(job):
  function file_write_safe (line 40) | def file_write_safe(path, data):
  function save_experiment (line 49) | def save_experiment(filename, expt):
  function load_experiment (line 53) | def load_experiment(filename):
  function job_output_file (line 61) | def job_output_file(job):
  function job_file_for (line 65) | def job_file_for(job):
  function save_job (line 70) | def save_job(job):
  function load_job (line 75) | def load_job(filename):

FILE: src/aup/Proposer/spearmint/runner.py
  function job_runner (line 21) | def job_runner(job):
  function run_matlab_job (line 90) | def run_matlab_job(job):
  function run_python_job (line 105) | def run_python_job(job):
  function run_torch_job (line 140) | def run_torch_job(job):
  function run_shell_job (line 175) | def run_shell_job(job):
  function run_mcr_job (line 189) | def run_mcr_job(job):

FILE: src/aup/Proposer/spearmint/sobol_lib.py
  function i4_bit_hi1 (line 4) | def i4_bit_hi1 ( n ):
  function i4_bit_lo0 (line 64) | def i4_bit_lo0 ( n ):
  function i4_sobol_generate (line 126) | def i4_sobol_generate ( m, n, skip ):
  function i4_sobol (line 159) | def i4_sobol ( dim_num, seed ):
  function i4_uniform (line 13790) | def i4_uniform ( a, b, seed ):
  function prime_ge (line 13883) | def prime_ge ( n ):
  function isprime (line 13931) | def isprime(n):

FILE: src/aup/Proposer/spearmint/spearmint_pb2.py
  class Job (line 348) | class Job(_message.Message):
  class Parameter (line 354) | class Parameter(_message.Message):
  class Experiment (line 360) | class Experiment(_message.Message):
    class ParameterSpec (line 363) | class ParameterSpec(_message.Message):

FILE: src/aup/Proposer/spearmint/util.py
  function unpack_args (line 30) | def unpack_args(str):
  function slice_sample (line 38) | def slice_sample(init_x, logprob, sigma=1.0, step_out=True, max_steps_ou...

FILE: src/aup/RestAPI/server.py
  function fix_none_res (line 57) | def fix_none_res(arg, value):
  function get_display_names (line 60) | def get_display_names(params, exp_config=None, eid=None, cur=None):
  function fix_compression_job_config (line 85) | def fix_compression_job_config(jobs, params, display_names):
  function is_compression_experiment (line 109) | def is_compression_experiment(exp_config=None, eid=None, cur=None):
  function get_params_for_experiment (line 119) | def get_params_for_experiment(cur, eid):
  function query_db (line 134) | def query_db(cur, query, args=(), one=False):
  function start_experiment_daemon (line 140) | def start_experiment_daemon(json_conf, eid, cwd, event):
  function get_valid_jobs_interval (line 184) | def get_valid_jobs_interval(cursor, eid):
  function home (line 216) | def home():
  function get_resource_types (line 225) | def get_resource_types():
  function get_experiment (line 234) | def get_experiment(eid):
  function get_experiments (line 334) | def get_experiments():
  function get_job_status (line 369) | def get_job_status():
  function get_hps_space (line 408) | def get_hps_space():
  function get_experiment_history (line 419) | def get_experiment_history():
  function get_experiment_history_best (line 429) | def get_experiment_history_best(eid, label):
  function get_experiments_history_best (line 489) | def get_experiments_history_best(label):
  function get_experiment_comparison_best (line 553) | def get_experiment_comparison_best():
  function get_metrics_vs_hparams (line 566) | def get_metrics_vs_hparams():
  function get_experiment_status (line 590) | def get_experiment_status():
  function get_job_stats (line 601) | def get_job_stats(eid):
  function get_current_db (line 613) | def get_current_db():
  function perform_setup (line 618) | def perform_setup():
  function create_experiment (line 672) | def create_experiment():
  function start_experiment (line 720) | def start_experiment():
  function stop_experiment (line 770) | def stop_experiment():
  function refresh_all (line 803) | def refresh_all():
  function get_interm_res (line 826) | def get_interm_res():
  function get_interm_res_by_eid (line 850) | def get_interm_res_by_eid(eid, label):
  function delete_experiment (line 911) | def delete_experiment(eid):
  function disable_http_logs (line 928) | def disable_http_logs(disable):
  function main (line 943) | def main(path, port):

FILE: src/aup/__main__.py
  function main (line 49) | def main(experiment_file, test, user, aup_folder, resume, log, sleep, la...

FILE: src/aup/aup.py
  function print_result (line 38) | def print_result(result):
  class BasicConfig (line 53) | class BasicConfig(dict):
    method load (line 64) | def load(self, filename):
    method save (line 81) | def save(self, filename):
    method _get_format (line 94) | def _get_format(filename):
    method _load_json (line 101) | def _load_json(filename):
    method _load_pkl (line 106) | def _load_pkl(filename):
    method _save_json (line 110) | def _save_json(self, filename):
    method _save_pkl (line 114) | def _save_pkl(self, filename):
    method save_flags (line 119) | def save_flags(filename):
    method to_flags (line 130) | def to_flags(self, FLAGS):
    method __setattr__ (line 143) | def __setattr__(self, key, value):
    method __getattr__ (line 146) | def __getattr__(self, key):
    method __delattr__ (line 149) | def __delattr__(self, key):
    method __hash__ (line 152) | def __hash__(self):
  function aup_args (line 156) | def aup_args(func):
  function aup_flags (line 231) | def aup_flags(flags):
  function aup_save_model (line 256) | def aup_save_model(callback_fn, *args, **kwargs):

FILE: src/aup/compression/Compressor.py
  function create_compressor (line 68) | def create_compressor(model, config, *args, **kwargs):
  class Compressor (line 113) | class Compressor:
    method __init__ (line 114) | def __init__(self, model, nni_compressor, c_framework, c_type, c_str):
    method compress (line 122) | def compress(self, *args, **kwargs):
    method update_epoch (line 125) | def update_epoch(self, epoch):
    method step (line 128) | def step(self):
    method get_prune_iterations (line 131) | def get_prune_iterations(self):
    method prune_iteration_start (line 134) | def prune_iteration_start(self):
    method apply_speedup (line 137) | def apply_speedup(self, dummy_input, mask_path=None, *args, **kwargs):
    method count_flops_params (line 162) | def count_flops_params(self, *args, **kwargs):
    method export_model (line 173) | def export_model(self, model_path, mask_path=None, folder_name=".", sp...

FILE: src/aup/compression/__main__.py
  function main (line 57) | def main(experiment_file, automatic, user, aup_folder, resume, log, slee...

FILE: src/aup/compression/tensorflow/compressor.py
  class Compressor (line 25) | class Compressor:
    method __init__ (line 49) | def __init__(self, model, config_list, LayerWrapperClass):
    method set_wrappers_attribute (line 64) | def set_wrappers_attribute(self, name, value):
    method validate_config (line 71) | def validate_config(self, model, config_list):
    method _instrument (line 78) | def _instrument(self, layer):
    method _instrument_sequential (line 97) | def _instrument_sequential(self, seq):
    method _instrument_model (line 107) | def _instrument_model(self, model):
    method _select_config (line 120) | def _select_config(self, layer):
  class Pruner (line 139) | class Pruner(Compressor):
    method __init__ (line 159) | def __init__(self, model, config_list):
    method compress (line 163) | def compress(self):
    method calc_masks (line 177) | def calc_masks(self, wrapper, **kwargs):
    method _update_mask (line 202) | def _update_mask(self):
  class PrunerLayerWrapper (line 209) | class PrunerLayerWrapper(tf.keras.Model):
    method __init__ (line 234) | def __init__(self, layer, config, pruner):
    method call (line 242) | def call(self, *inputs):

FILE: src/aup/compression/tensorflow/pruning/one_shot.py
  class OneshotPruner (line 16) | class OneshotPruner(Pruner):
    method __init__ (line 17) | def __init__(self, model, config_list, pruning_algorithm='level', **al...
    method validate_config (line 22) | def validate_config(self, model, config_list):
    method calc_masks (line 25) | def calc_masks(self, wrapper, wrapper_idx=None):
  class LevelPruner (line 35) | class LevelPruner(OneshotPruner):
    method __init__ (line 36) | def __init__(self, model, config_list):
  class WeightMasker (line 40) | class WeightMasker:
    method __init__ (line 41) | def __init__(self, model, pruner, **kwargs):
    method calc_masks (line 45) | def calc_masks(self, sparsity, wrapper, wrapper_idx=None):
  class LevelPrunerMasker (line 49) | class LevelPrunerMasker(WeightMasker):
    method calc_masks (line 50) | def calc_masks(self, sparsity, wrapper, wrapper_idx=None):

FILE: src/aup/compression/torch/_graph_utils.py
  function build_module_graph (line 23) | def build_module_graph(model, dummy_input):
  function build_graph (line 27) | def build_graph(model, dummy_input, verbose=False):
  function parse_traced_name (line 32) | def parse_traced_name(module_name):
  class TorchGraph (line 40) | class TorchGraph:
    method __init__ (line 45) | def __init__(self, model=None, dummy_input=None, traced_model=None):
    method _trace (line 71) | def _trace(self, model, dummy_input):
  class TorchProtoGraph (line 79) | class TorchProtoGraph(TorchGraph):
    method __init__ (line 88) | def __init__(self, model, dummy_input, verbose=False):
    method parse (line 104) | def parse(self, graph, trace, args=None, omit_useless_nodes=True):
  class NodePyGroup (line 180) | class NodePyGroup(NodePy):
    method __init__ (line 187) | def __init__(self, name, unique_name, node_type, op_type, node_cpps, i...
    method add_nodes (line 226) | def add_nodes(self, node_cpps):
    method sub_node_names (line 232) | def sub_node_names(self):
    method __repr__ (line 235) | def __repr__(self):
  class TorchModuleGraph (line 242) | class TorchModuleGraph(TorchGraph):
    method __init__ (line 247) | def __init__(self, model=None, dummy_input=None, traced_model=None):
    method _expand_key_func_node (line 253) | def _expand_key_func_node(self, node, nodes, input_to_node, output_to_...
    method _expand_module_node (line 319) | def _expand_module_node(self, node, node_name, unique_name, op_type, n...
    method _extract_cat_info (line 398) | def _extract_cat_info(self, node_group, cpp_node):
    method _extract_linear_shape_info (line 450) | def _extract_linear_shape_info(self, node_group):
    method _extract_shape_info (line 480) | def _extract_shape_info(self, node):
    method _extract_leaf_modules (line 505) | def _extract_leaf_modules(self):
    method _get_module_name (line 538) | def _get_module_name(self, scope_name):
    method _build_index (line 558) | def _build_index(self, nodes_op):
    method _is_key_func (line 572) | def _is_key_func(self, node_cpp):
    method unpack_manually (line 596) | def unpack_manually(self):
    method _build_graph (line 645) | def _build_graph(self):
    method _extract_auxiliary_info (line 754) | def _extract_auxiliary_info(self):
    method find_predecessors (line 776) | def find_predecessors(self, unique_name):
    method find_successors (line 799) | def find_successors(self, unique_name):

FILE: src/aup/compression/torch/compressor.py
  class LayerInfo (line 12) | class LayerInfo:
    method __init__ (line 13) | def __init__(self, name, module):
  function _setattr (line 18) | def _setattr(model, name, module):
  class Compressor (line 25) | class Compressor:
    method __init__ (line 30) | def __init__(self, model, config_list, optimizer=None):
    method validate_config (line 62) | def validate_config(self, model, config_list):
    method reset (line 68) | def reset(self, checkpoint=None):
    method _detect_modules_to_compress (line 85) | def _detect_modules_to_compress(self):
    method _wrap_model (line 101) | def _wrap_model(self):
    method _unwrap_model (line 110) | def _unwrap_model(self):
    method compress (line 119) | def compress(self):
    method set_wrappers_attribute (line 133) | def set_wrappers_attribute(self, name, value):
    method get_modules_to_compress (line 152) | def get_modules_to_compress(self):
    method get_modules_wrapper (line 164) | def get_modules_wrapper(self):
    method select_config (line 175) | def select_config(self, layer):
    method update_epoch (line 214) | def update_epoch(self, epoch):
    method _wrap_modules (line 226) | def _wrap_modules(self, layer, config):
    method add_activation_collector (line 240) | def add_activation_collector(self, collector):
    method remove_activation_collector (line 248) | def remove_activation_collector(self, fwd_hook_id):
    method patch_optimizer (line 255) | def patch_optimizer(self, *tasks):
  class PrunerModuleWrapper (line 268) | class PrunerModuleWrapper(torch.nn.Module):
    method __init__ (line 269) | def __init__(self, module, module_name, module_type, config, pruner):
    method forward (line 302) | def forward(self, *inputs):
  class Pruner (line 309) | class Pruner(Compressor):
    method __init__ (line 321) | def __init__(self, model, config_list, optimizer=None):
    method compress (line 326) | def compress(self):
    method update_mask (line 330) | def update_mask(self):
    method calc_mask (line 338) | def calc_mask(self, wrapper, **kwargs):
    method _wrap_modules (line 352) | def _wrap_modules(self, layer, config):
    method get_mask_dict (line 370) | def get_mask_dict(self):
    method export_model (line 395) | def export_model(self, model_path, mask_path=None, onnx_path=None, inp...
    method load_model_state_dict (line 434) | def load_model_state_dict(self, model_state):
  class QuantizerModuleWrapper (line 450) | class QuantizerModuleWrapper(torch.nn.Module):
    method __init__ (line 451) | def __init__(self, module, module_name, module_type, config, quantizer):
    method forward (line 489) | def forward(self, *inputs):
  class Quantizer (line 512) | class Quantizer(Compressor):
    method __init__ (line 517) | def __init__(self, model, config_list, optimizer=None):
    method quantize_weight (line 528) | def quantize_weight(self, weight, wrapper, **kwargs):
    method quantize_output (line 541) | def quantize_output(self, output, wrapper, **kwargs):
    method quantize_input (line 554) | def quantize_input(self, *inputs, wrapper, **kwargs):
    method _wrap_modules (line 568) | def _wrap_modules(self, layer, config):
    method step_with_optimizer (line 589) | def step_with_optimizer(self):
  class QuantType (line 592) | class QuantType:
  class QuantGrad (line 606) | class QuantGrad(torch.autograd.Function):
    method _quantize (line 611) | def _quantize(cls, x, scale, zero_point):
    method get_bits_length (line 629) | def get_bits_length(cls, config, quant_type):
    method quant_backward (line 649) | def quant_backward(tensor, grad_output, quant_type, scale, zero_point,...
    method forward (line 676) | def forward(ctx, tensor, quant_type, wrapper, **kwargs):
    method backward (line 698) | def backward(cls, ctx, grad_output):
  function _check_weight (line 703) | def _check_weight(module):

FILE: src/aup/compression/torch/parameter_expressions.py
  function choice (line 11) | def choice(options, random_state):
  function randint (line 19) | def randint(lower, upper, random_state):
  function uniform (line 29) | def uniform(low, high, random_state):
  function quniform (line 39) | def quniform(low, high, q, random_state):
  function loguniform (line 49) | def loguniform(low, high, random_state):
  function qloguniform (line 59) | def qloguniform(low, high, q, random_state):
  function normal (line 69) | def normal(mu, sigma, random_state):
  function qnormal (line 82) | def qnormal(mu, sigma, q, random_state):
  function lognormal (line 92) | def lognormal(mu, sigma, random_state):
  function qlognormal (line 101) | def qlognormal(mu, sigma, q, random_state):

FILE: src/aup/compression/torch/pruning/admm_pruner.py
  class ADMMPruner (line 20) | class ADMMPruner(OneshotPruner):
    method __init__ (line 65) | def __init__(self, model, config_list, trainer, num_iterations=30, tra...
    method validate_config (line 78) | def validate_config(self, model, config_list):
    method _projection (line 103) | def _projection(self, weight, sparsity, wrapper):
    method compress (line 125) | def compress(self):

FILE: src/aup/compression/torch/pruning/agp.py
  class AGPPruner (line 26) | class AGPPruner(Pruner):
    method __init__ (line 46) | def __init__(self, model, config_list, optimizer, pruning_algorithm='l...
    method validate_config (line 54) | def validate_config(self, model, config_list):
    method calc_mask (line 75) | def calc_mask(self, wrapper, wrapper_idx=None):
    method compute_target_sparsity (line 110) | def compute_target_sparsity(self, config):
    method update_epoch (line 142) | def update_epoch(self, epoch):

FILE: src/aup/compression/torch/pruning/amc/amc_pruner.py
  class AMCPruner (line 24) | class AMCPruner(Pruner):
    method __init__ (line 113) | def __init__(
    method compress (line 212) | def compress(self):
    method train (line 215) | def train(self, num_episode, agent, env, output_dir):

FILE: src/aup/compression/torch/pruning/amc/channel_pruning_env.py
  function acc_reward (line 22) | def acc_reward(net, acc, flops):
  function acc_flops_reward (line 26) | def acc_flops_reward(net, acc, flops):
  class ChannelPruningEnv (line 31) | class ChannelPruningEnv:
    method __init__ (line 110) | def __init__(self, pruner, evaluator, val_loader, checkpoint, args):
    method step (line 166) | def step(self, action):
    method reset (line 231) | def reset(self):
    method prune_kernel (line 252) | def prune_kernel(self, op_idx, preserve_ratio, preserve_idx=None):
    method _is_final_layer (line 280) | def _is_final_layer(self):
    method _action_wall (line 283) | def _action_wall(self, action):
    method _get_buffer_flops (line 325) | def _get_buffer_flops(self, idx):
    method _cur_flops (line 330) | def _cur_flops(self):
    method _cur_reduced (line 339) | def _cur_reduced(self):
    method _build_index (line 344) | def _build_index(self):
    method _extract_layer_information (line 420) | def _extract_layer_information(self):
    method _build_state_embedding (line 504) | def _build_state_embedding(self):

FILE: src/aup/compression/torch/pruning/amc/lib/agent.py
  class Actor (line 17) | class Actor(nn.Module):
    method __init__ (line 18) | def __init__(self, nb_states, nb_actions, hidden1=400, hidden2=300):
    method forward (line 26) | def forward(self, x):
  class Critic (line 36) | class Critic(nn.Module):
    method __init__ (line 37) | def __init__(self, nb_states, nb_actions, hidden1=400, hidden2=300):
    method forward (line 45) | def forward(self, xs):
  class DDPG (line 55) | class DDPG(object):
    method __init__ (line 56) | def __init__(self, nb_states, nb_actions, args):
    method update_policy (line 109) | def update_policy(self):
    method eval (line 159) | def eval(self):
    method cuda (line 165) | def cuda(self):
    method observe (line 171) | def observe(self, r_t, s_t, s_t1, a_t, done):
    method random_action (line 176) | def random_action(self):
    method select_action (line 181) | def select_action(self, s_t, episode):
    method reset (line 192) | def reset(self, obs):
    method load_weights (line 197) | def load_weights(self, output):
    method save_model (line 208) | def save_model(self, output):
    method soft_update (line 218) | def soft_update(self, target, source):
    method hard_update (line 224) | def hard_update(self, target, source):
    method sample_from_truncated_normal_distribution (line 228) | def sample_from_truncated_normal_distribution(self, lower, upper, mu, ...

FILE: src/aup/compression/torch/pruning/amc/lib/memory.py
  function sample_batch_indexes (line 18) | def sample_batch_indexes(low, high, size):
  class RingBuffer (line 38) | class RingBuffer(object):
    method __init__ (line 39) | def __init__(self, maxlen):
    method __len__ (line 45) | def __len__(self):
    method __getitem__ (line 48) | def __getitem__(self, idx):
    method append (line 53) | def append(self, v):
  function zeroed_observation (line 66) | def zeroed_observation(observation):
  class Memory (line 78) | class Memory(object):
    method __init__ (line 79) | def __init__(self, window_length, ignore_episode_boundaries=False):
    method sample (line 86) | def sample(self, batch_size, batch_idxs=None):
    method append (line 89) | def append(self, observation, action, reward, terminal, training=True):
    method get_recent_state (line 93) | def get_recent_state(self, current_observation):
    method get_config (line 111) | def get_config(self):
  class SequentialMemory (line 119) | class SequentialMemory(Memory):
    method __init__ (line 120) | def __init__(self, limit, **kwargs):
    method sample (line 132) | def sample(self, batch_size, batch_idxs=None):
    method sample_and_split (line 185) | def sample_and_split(self, batch_size, batch_idxs=None):
    method append (line 209) | def append(self, observation, action, reward, terminal, training=True):
    method nb_entries (line 221) | def nb_entries(self):
    method get_config (line 224) | def get_config(self):

FILE: src/aup/compression/torch/pruning/amc/lib/net_measure.py
  function get_num_gen (line 9) | def get_num_gen(gen):
  function is_leaf (line 13) | def is_leaf(model):
  function get_layer_info (line 17) | def get_layer_info(layer):
  function get_layer_param (line 23) | def get_layer_param(model):
  function measure_layer (line 32) | def measure_layer(layer, x):
  function measure_model (line 88) | def measure_model(model, H, W, device):

FILE: src/aup/compression/torch/pruning/amc/lib/utils.py
  class TextLogger (line 7) | class TextLogger(object):
    method __init__ (line 9) | def __init__(self, filepath):
    method close (line 14) | def close(self):
    method write (line 17) | def write(self, content):
    method write_buf (line 22) | def write_buf(self, content):
    method print_and_write (line 25) | def print_and_write(self, content):
  function to_numpy (line 29) | def to_numpy(var):
  function to_tensor (line 34) | def to_tensor(ndarray, requires_grad=False):  # return a float tensor by...
  function measure_layer_for_pruning (line 41) | def measure_layer_for_pruning(wrapper, x):
  function least_square_sklearn (line 74) | def least_square_sklearn(X, Y):
  function get_output_folder (line 81) | def get_output_folder(parent_dir, env_name):

FILE: src/aup/compression/torch/pruning/apply_compression.py
  function apply_compression_results (line 9) | def apply_compression_results(model, masks=None, masks_file=None, map_lo...

FILE: src/aup/compression/torch/pruning/auto_compress_pruner.py
  class AutoCompressPruner (line 25) | class AutoCompressPruner(Pruner):
    method __init__ (line 106) | def __init__(self, model, config_list, trainer, evaluator, dummy_input,
    method validate_config (line 141) | def validate_config(self, model, config_list):
    method calc_mask (line 166) | def calc_mask(self, wrapper, **kwargs):
    method compress (line 169) | def compress(self):
    method export_model (line 241) | def export_model(self, model_path, mask_path=None, onnx_path=None, inp...

FILE: src/aup/compression/torch/pruning/finegrained_pruning.py
  class LevelPrunerMasker (line 13) | class LevelPrunerMasker(WeightMasker):
    method calc_mask (line 18) | def calc_mask(self, sparsity, wrapper, wrapper_idx=None):

FILE: src/aup/compression/torch/pruning/lottery_ticket.py
  class LotteryTicketPruner (line 17) | class LotteryTicketPruner(Pruner):
    method __init__ (line 34) | def __init__(self, model, config_list, optimizer=None, lr_scheduler=No...
    method validate_config (line 51) | def validate_config(self, model, config_list):
    method _calc_sparsity (line 72) | def _calc_sparsity(self, sparsity):
    method _calc_mask (line 77) | def _calc_mask(self, wrapper, sparsity):
    method calc_mask (line 86) | def calc_mask(self, wrapper, **kwargs):
    method get_prune_iterations (line 104) | def get_prune_iterations(self):
    method prune_iteration_start (line 116) | def prune_iteration_start(self):

FILE: src/aup/compression/torch/pruning/net_adapt_pruner.py
  class NetAdaptPruner (line 25) | class NetAdaptPruner(Pruner):
    method __init__ (line 88) | def __init__(self, model, config_list, short_term_fine_tuner, evaluator,
    method validate_config (line 115) | def validate_config(self, model, config_list):
    method calc_mask (line 140) | def calc_mask(self, wrapper, **kwargs):
    method _update_config_list (line 143) | def _update_config_list(self, config_list, op_name, sparsity):
    method _get_op_num_weights_remained (line 164) | def _get_op_num_weights_remained(self, op_name, module):
    method _get_op_sparsity (line 182) | def _get_op_sparsity(self, op_name):
    method _calc_num_related_weights (line 188) | def _calc_num_related_weights(self, op_name):
    method compress (line 234) | def compress(self):

FILE: src/aup/compression/torch/pruning/one_shot.py
  class OneshotPruner (line 23) | class OneshotPruner(Pruner):
    method __init__ (line 28) | def __init__(self, model, config_list, pruning_algorithm='level', opti...
    method validate_config (line 49) | def validate_config(self, model, config_list):
    method calc_mask (line 66) | def calc_mask(self, wrapper, wrapper_idx=None):
  class LevelPruner (line 98) | class LevelPruner(OneshotPruner):
    method __init__ (line 112) | def __init__(self, model, config_list, optimizer=None):
  class SlimPruner (line 116) | class SlimPruner(OneshotPruner):
    method __init__ (line 130) | def __init__(self, model, config_list, optimizer=None):
    method validate_config (line 133) | def validate_config(self, model, config_list):
  class _StructuredFilterPruner (line 146) | class _StructuredFilterPruner(OneshotPruner):
    method __init__ (line 157) | def __init__(self, model, config_list, pruning_algorithm, optimizer=No...
    method update_mask (line 180) | def update_mask(self):
    method validate_config (line 190) | def validate_config(self, model, config_list):
    method _dependency_calc_mask (line 203) | def _dependency_calc_mask(self, wrappers, channel_dsets, wrappers_idx=...
    method _dependency_update_mask (line 238) | def _dependency_update_mask(self):
  class L1FilterPruner (line 268) | class L1FilterPruner(_StructuredFilterPruner):
    method __init__ (line 293) | def __init__(self, model, config_list, optimizer=None, dependency_awar...
  class L2FilterPruner (line 298) | class L2FilterPruner(_StructuredFilterPruner):
    method __init__ (line 323) | def __init__(self, model, config_list, optimizer=None, dependency_awar...
  class FPGMPruner (line 328) | class FPGMPruner(_StructuredFilterPruner):
    method __init__ (line 353) | def __init__(self, model, config_list, optimizer=None, dependency_awar...
  class TaylorFOWeightFilterPruner (line 358) | class TaylorFOWeightFilterPruner(_StructuredFilterPruner):
    method __init__ (line 386) | def __init__(self, model, config_list, optimizer=None, statistics_batc...
  class ActivationAPoZRankFilterPruner (line 393) | class ActivationAPoZRankFilterPruner(_StructuredFilterPruner):
    method __init__ (line 423) | def __init__(self, model, config_list, optimizer=None, activation='relu',
  class ActivationMeanRankFilterPruner (line 430) | class ActivationMeanRankFilterPruner(_StructuredFilterPruner):
    method __init__ (line 459) | def __init__(self, model, config_list, optimizer=None, activation='relu',

FILE: src/aup/compression/torch/pruning/sensitivity_pruner.py
  class SensitivityPruner (line 26) | class SensitivityPruner(Pruner):
    method __init__ (line 92) | def __init__(self, model, config_list, evaluator,
    method validate_config (line 141) | def validate_config(self, model, config_list):
    method load_sensitivity (line 166) | def load_sensitivity(self, filepath):
    method _max_prune_ratio (line 184) | def _max_prune_ratio(self, ori_acc, threshold, sensitivities):
    method normalize (line 216) | def normalize(self, ratios, target_pruned):
    method create_cfg (line 257) | def create_cfg(self, ratios):
    method current_sparsity (line 284) | def current_sparsity(self):
    method compress (line 295) | def compress(self, eval_args=None, eval_kwargs=None,
    method calc_mask (line 416) | def calc_mask(self, wrapper, **kwargs):

FILE: src/aup/compression/torch/pruning/simulated_annealing_pruner.py
  class SimulatedAnnealingPruner (line 26) | class SimulatedAnnealingPruner(Pruner):
    method __init__ (line 76) | def __init__(self, model, config_list, evaluator, optimize_mode='maxim...
    method validate_config (line 110) | def validate_config(self, model, config_list):
    method _sparsities_2_config_list (line 135) | def _sparsities_2_config_list(self, sparsities):
    method _rescale_sparsities (line 169) | def _rescale_sparsities(self, sparsities, target_sparsity):
    method _init_sparsities (line 208) | def _init_sparsities(self):
    method _generate_perturbations (line 226) | def _generate_perturbations(self):
    method calc_mask (line 254) | def calc_mask(self, wrapper, **kwargs):
    method compress (line 257) | def compress(self, return_config_list=False):

FILE: src/aup/compression/torch/pruning/structured_pruning.py
  class StructuredWeightMasker (line 17) | class StructuredWeightMasker(WeightMasker):
    method __init__ (line 36) | def __init__(self, model, pruner, preserve_round=1, dependency_aware=F...
    method calc_mask (line 42) | def calc_mask(self, sparsity, wrapper, wrapper_idx=None, **depen_kwargs):
    method _get_current_state (line 71) | def _get_current_state(self, sparsity, wrapper, wrapper_idx=None):
    method _normal_calc_mask (line 129) | def _normal_calc_mask(self, sparsity, wrapper, wrapper_idx=None):
    method _common_channel_to_prune (line 155) | def _common_channel_to_prune(self, sparsities, wrappers, wrappers_idx,...
    method _dependency_calc_mask (line 238) | def _dependency_calc_mask(self, sparsities, wrappers, wrappers_idx, ch...
    method get_mask (line 292) | def get_mask(self, base_mask, weight, num_prune, wrapper, wrapper_idx,...
    method get_channel_sum (line 320) | def get_channel_sum(self, wrapper, wrapper_idx):
  class L1FilterPrunerMasker (line 340) | class L1FilterPrunerMasker(StructuredWeightMasker):
    method get_mask (line 349) | def get_mask(self, base_mask, weight, num_prune, wrapper, wrapper_idx,...
    method get_channel_sum (line 364) | def get_channel_sum(self, wrapper, wrapper_idx):
  class L2FilterPrunerMasker (line 372) | class L2FilterPrunerMasker(StructuredWeightMasker):
    method get_mask (line 378) | def get_mask(self, base_mask, weight, num_prune, wrapper, wrapper_idx,...
    method get_channel_sum (line 393) | def get_channel_sum(self, wrapper, wrapper_idx):
  class FPGMPrunerMasker (line 401) | class FPGMPrunerMasker(StructuredWeightMasker):
    method get_mask (line 408) | def get_mask(self, base_mask, weight, num_prune, wrapper, wrapper_idx,...
    method _get_min_gm_kernel_idx (line 417) | def _get_min_gm_kernel_idx(self, num_prune, wrapper, wrapper_idx, chan...
    method _get_distance_sum (line 426) | def _get_distance_sum(self, weight, out_idx):
    method get_channel_sum (line 452) | def get_channel_sum(self, wrapper, wrapper_idx):
  class TaylorFOWeightFilterPrunerMasker (line 462) | class TaylorFOWeightFilterPrunerMasker(StructuredWeightMasker):
    method __init__ (line 471) | def __init__(self, model, pruner, statistics_batch_num=1):
    method get_mask (line 478) | def get_mask(self, base_mask, weight, num_prune, wrapper, wrapper_idx,...
    method calc_contributions (line 492) | def calc_contributions(self):
    method get_channel_sum (line 510) | def get_channel_sum(self, wrapper, wrapper_idx):
  class ActivationFilterPrunerMasker (line 518) | class ActivationFilterPrunerMasker(StructuredWeightMasker):
    method __init__ (line 519) | def __init__(self, model, pruner, statistics_batch_num=1, activation='...
    method _add_activation_collector (line 532) | def _add_activation_collector(self, pruner):
  class ActivationAPoZRankFilterPrunerMasker (line 551) | class ActivationAPoZRankFilterPrunerMasker(ActivationFilterPrunerMasker):
    method get_mask (line 560) | def get_mask(self, base_mask, weight, num_prune, wrapper, wrapper_idx,...
    method _calc_apoz (line 579) | def _calc_apoz(self, activations):
    method get_channel_sum (line 599) | def get_channel_sum(self, wrapper, wrapper_idx):
  class ActivationMeanRankFilterPrunerMasker (line 608) | class ActivationMeanRankFilterPrunerMasker(ActivationFilterPrunerMasker):
    method get_mask (line 617) | def get_mask(self, base_mask, weight, num_prune, wrapper, wrapper_idx,...
    method _cal_mean_activation (line 638) | def _cal_mean_activation(self, activations):
    method get_channel_sum (line 656) | def get_channel_sum(self, wrapper, wrapper_idx):
  class SlimPrunerMasker (line 667) | class SlimPrunerMasker(WeightMasker):
    method __init__ (line 675) | def __init__(self, model, pruner, **kwargs):
    method calc_mask (line 685) | def calc_mask(self, sparsity, wrapper, wrapper_idx=None):
  function least_square_sklearn (line 707) | def least_square_sklearn(X, Y):
  class AMCWeightMasker (line 714) | class AMCWeightMasker(WeightMasker):
    method __init__ (line 735) | def __init__(self, model, pruner, preserve_round=1):
    method calc_mask (line 740) | def calc_mask(self, sparsity, wrapper, wrapper_idx=None, preserve_idx=...
    method get_mask (line 793) | def get_mask(self, base_mask, weight, num_preserve, wrapper, wrapper_i...

FILE: src/aup/compression/torch/pruning/weight_masker.py
  class WeightMasker (line 4) | class WeightMasker(object):
    method __init__ (line 5) | def __init__(self, model, pruner, **kwargs):
    method calc_mask (line 9) | def calc_mask(self, sparsity, wrapper, wrapper_idx=None):

FILE: src/aup/compression/torch/quantization/quantizers.py
  class NaiveQuantizer (line 19) | class NaiveQuantizer(Quantizer):
    method __init__ (line 23) | def __init__(self, model, config_list, optimizer=None):
    method validate_config (line 27) | def validate_config(self, model, config_list):
    method quantize_weight (line 37) | def quantize_weight(self, wrapper, **kwargs):
  function update_ema (line 47) | def update_ema(biased_ema, value, decay):
  function update_quantization_param (line 68) | def update_quantization_param(bits, rmin, rmax):
  function get_bits_length (line 110) | def get_bits_length(config, quant_type):
  class QATGrad (line 117) | class QATGrad(QuantGrad):
    method quant_backward (line 119) | def quant_backward(tensor, grad_output, quant_type, scale, zero_point,...
  class QAT_Quantizer (line 126) | class QAT_Quantizer(Quantizer):
    method __init__ (line 132) | def __init__(self, model, config_list, optimizer=None):
    method validate_config (line 166) | def validate_config(self, model, config_list):
    method _quantize (line 188) | def _quantize(self, bits, op, real_val):
    method _dequantize (line 214) | def _dequantize(self, op, quantized_val):
    method quantize_weight (line 234) | def quantize_weight(self, wrapper, **kwargs):
    method quantize_output (line 265) | def quantize_output(self, output, wrapper, **kwargs):
    method fold_bn (line 288) | def fold_bn(self, config, **kwargs):
    method step_with_optimizer (line 292) | def step_with_optimizer(self):
  class DoReFaQuantizer (line 299) | class DoReFaQuantizer(Quantizer):
    method __init__ (line 305) | def __init__(self, model, config_list, optimizer=None):
    method validate_config (line 308) | def validate_config(self, model, config_list):
    method quantize_weight (line 328) | def quantize_weight(self, wrapper, **kwargs):
    method quantize (line 339) | def quantize(self, input_ri, q_bits):
  class ClipGrad (line 345) | class ClipGrad(QuantGrad):
    method quant_backward (line 347) | def quant_backward(tensor, grad_output, quant_type, scale, zero_point,...
  class BNNQuantizer (line 353) | class BNNQuantizer(Quantizer):
    method __init__ (line 359) | def __init__(self, model, config_list, optimizer=None):
    method validate_config (line 363) | def validate_config(self, model, config_list):
    method quantize_weight (line 384) | def quantize_weight(self, wrapper, **kwargs):
    method quantize_output (line 392) | def quantize_output(self, output, wrapper, **kwargs):

FILE: src/aup/compression/torch/speedup/compress_modules.py
  function no_replace (line 27) | def no_replace(module, mask):
  function replace_linear (line 35) | def replace_linear(linear, mask):
  function replace_batchnorm2d (line 67) | def replace_batchnorm2d(norm, mask):
  function replace_conv2d (line 102) | def replace_conv2d(conv, mask):
  function replace_convtranspose2d (line 195) | def replace_convtranspose2d(convtrans, mask):

FILE: src/aup/compression/torch/speedup/compressor.py
  class ModelSpeedup (line 17) | class ModelSpeedup:
    met
Copy disabled (too large) Download .json
Condensed preview — 892 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,200K chars).
[
  {
    "path": ".coveragerc",
    "chars": 708,
    "preview": "[run]\nomit =\n     ./src/aup/Proposer/spearmint/*\n     ./src/aup/Proposer/hyperopt/*\n     ./src/aup/Proposer/eas/*\n     ."
  },
  {
    "path": ".dockerignore",
    "chars": 224,
    "preview": "docs\nExamples/2d*\nExamples/dlconvert_examples/Convert*\nExamples/dlconvert_examples/Tested*\nExamples/demo\nExamples/cai_ea"
  },
  {
    "path": ".gitignore",
    "chars": 1458,
    "preview": "Examples/demo/auto.py\ntestenv/\n.aup/\n.idea/\n*~\n*.pkl\ntests/EE/jobs/\ntests/data/jobs/\ntests/EE/Resource/data\n.vscode/\nana"
  },
  {
    "path": ".travis.yml",
    "chars": 1288,
    "preview": "git:\n  depth: false\n  quiet: true\nbranches: \n  only:\n  - master\n  - release\nlanguage: python\npython:\n- '3.7'\nenv:\n  glob"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3350,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "Examples/.gitignore",
    "chars": 17,
    "preview": "jobs/\nspearmint/\n"
  },
  {
    "path": "Examples/2dfunc_diff_mult_res/README.md",
    "chars": 2028,
    "preview": "# Return multiple results\n\nThis feature allows the user to save and track multiple secondary results along with the prim"
  },
  {
    "path": "Examples/2dfunc_diff_mult_res/cpu.ini",
    "chars": 179,
    "preview": "[Auptimizer]\n# Auptimizer environment folder to be created, this file will be copied over\nAuptimizer_PATH=./.aup\n# Temp "
  },
  {
    "path": "Examples/2dfunc_diff_mult_res/exp_cpu.json",
    "chars": 499,
    "preview": "{\n  \"name\": \"./2dfunc_diff_mult_res/exp_cpu.json\",\n  \"proposer\": \"random\",\n  \"n_samples\": 10,\n  \"random_seed\": 1,\n  \"scr"
  },
  {
    "path": "Examples/2dfunc_diff_mult_res/rosenbrock_hpo.py",
    "chars": 883,
    "preview": "#!/usr/bin/env python\n\"\"\"\nModified Rosenbrock function for HPO and aup\n============================================\n\n..\n"
  },
  {
    "path": "Examples/2dfunc_diff_opt/.gitignore",
    "chars": 30,
    "preview": "spearmint/\nrosenbrock_auto.py\n"
  },
  {
    "path": "Examples/2dfunc_diff_opt/History.ipynb",
    "chars": 187213,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 1,\n   \"metadata\": {},\n   \"outputs\": [],\n   \"source\": [\n "
  },
  {
    "path": "Examples/2dfunc_diff_opt/README.md",
    "chars": 755,
    "preview": "# Rosenbrock demo\n\n## Setup\n\n    python -m aup.setup\n\nTo setup different resource configuration, see [resource example]("
  },
  {
    "path": "Examples/2dfunc_diff_opt/experiment_auto.json",
    "chars": 442,
    "preview": "{\n  \"name\": \"./2dfunc_diff_opt/experiment_auto.json\",\n  \"proposer\": \"random\",\n  \"n_samples\": 10,\n  \"random_seed\": 1,\n  \""
  },
  {
    "path": "Examples/2dfunc_diff_opt/experiment_bohb.json",
    "chars": 659,
    "preview": "{\n  \"name\": \"./2dfunc_diff_opt/experiment_bohb.json\",\n  \"script\": \"rosenbrock_hpo.py\",\n  \"resource\": \"cpu\",\n  \"n_paralle"
  },
  {
    "path": "Examples/2dfunc_diff_opt/experiment_hyperband.json",
    "chars": 400,
    "preview": "{\n  \"name\": \"./2dfunc_diff_opt/experiment_hyperband.json\",\n  \"proposer\": \"hyperband\",\n  \"script\": \"rosenbrock_hpo.py\",\n "
  },
  {
    "path": "Examples/2dfunc_diff_opt/experiment_hyperopt.json",
    "chars": 466,
    "preview": "{\n  \"name\": \"./2dfunc_diff_opt/experiment_hyperopt.json\",\n  \"proposer\": \"hyperopt\",\n  \"random_seed\": 1,\n  \"script\": \"ros"
  },
  {
    "path": "Examples/2dfunc_diff_opt/experiment_random.json",
    "chars": 443,
    "preview": "{\n  \"name\": \"./2dfunc_diff_opt/experiment_random.json\",\n  \"proposer\": \"random\",\n  \"n_samples\": 10,\n  \"random_seed\": 1,\n "
  },
  {
    "path": "Examples/2dfunc_diff_opt/experiment_sequence.json",
    "chars": 438,
    "preview": "{\n  \"name\": \"./2dfunc_diff_opt/experiment_sequence.json\",\n  \"proposer\": \"sequence\",\n  \"script\": \"rosenbrock_hpo.py\",\n  \""
  },
  {
    "path": "Examples/2dfunc_diff_opt/experiment_spearmint.json",
    "chars": 510,
    "preview": "{\n  \"name\": \"./2dfunc_diff_opt/experiment_spearmint.json\",\n  \"proposer\": \"spearmint\",\n  \"n_samples\": 100,\n  \"random_seed"
  },
  {
    "path": "Examples/2dfunc_diff_opt/rosenbrock_hpo.py",
    "chars": 875,
    "preview": "#!/usr/bin/env python\n\"\"\"\nModified Rosenbrock function for HPO and aup\n============================================\n\n..\n"
  },
  {
    "path": "Examples/2dfunc_diff_opt/rosenbrock_origin.py",
    "chars": 264,
    "preview": "\"\"\"\nDemonstration code for Rosenbrock function\n==========================================\n\n..\n  Copyright (c) 2018 LG El"
  },
  {
    "path": "Examples/2dfunc_diff_res/README.md",
    "chars": 1582,
    "preview": "# Rosenbrock demo for different resources\n\n## CPU\n\n    python -m aup.setup cpu.ini\n\tpython -m aup exp_cpu.json\n\n## GPU\n\n"
  },
  {
    "path": "Examples/2dfunc_diff_res/aws.txt",
    "chars": 37,
    "preview": "AWS_EC2_ID SSH_KEY\nAWS_EC2_ID SSH_KEY"
  },
  {
    "path": "Examples/2dfunc_diff_res/cpu.ini",
    "chars": 179,
    "preview": "[Auptimizer]\n# Auptimizer environment folder to be created, this file will be copied over\nAuptimizer_PATH=./.aup\n# Temp "
  },
  {
    "path": "Examples/2dfunc_diff_res/env_local_template.ini",
    "chars": 179,
    "preview": "[Auptimizer]\n# Auptimizer environment folder to be created, this file will be copied over\nAuptimizer_PATH=./.aup\n# Temp "
  },
  {
    "path": "Examples/2dfunc_diff_res/env_user_template.ini",
    "chars": 177,
    "preview": "[Auptimizer]\n# Auptimizer environment folder to be created, this file will be copied over\nAuptimizer_PATH=~/.aup\n# Temp "
  },
  {
    "path": "Examples/2dfunc_diff_res/exp_aws.json",
    "chars": 604,
    "preview": "{\n  \"name\": \"./2dfunc_diff_res/exp_aws.json\",\n    \"workingdir\": \"/home/ubuntu/\",\n    \"proposer\": \"random\",\n    \"n_sample"
  },
  {
    "path": "Examples/2dfunc_diff_res/exp_cpu.json",
    "chars": 435,
    "preview": "{\n  \"name\": \"./2dfunc_diff_res/exp_cpu.json\",\n  \"proposer\": \"sequence\",\n  \"n_samples\": 10,\n  \"random_seed\": 1,\n  \"script"
  },
  {
    "path": "Examples/2dfunc_diff_res/exp_gpu.json",
    "chars": 433,
    "preview": "{\n  \"name\": \"./2dfunc_diff_res/exp_gpu.json\",\n  \"proposer\": \"random\",\n  \"n_samples\": 10,\n  \"random_seed\": 1,\n  \"script\":"
  },
  {
    "path": "Examples/2dfunc_diff_res/exp_node.json",
    "chars": 696,
    "preview": "{\n  \"name\": \"./2dfunc_diff_res/exp_node.json\",\n  \"workingdir\": \"/home/ubuntu/aup_demo\",\n  \"proposer\": \"random\",\n  \"n_sam"
  },
  {
    "path": "Examples/2dfunc_diff_res/exp_node_async.json",
    "chars": 775,
    "preview": "{\n  \"name\": \"./2dfunc_diff_res/exp_node_async.json\",\n  \"workingdir\": \"/home/paul/aup_demo\",\n  \"proposer\": \"random\",\n  \"n"
  },
  {
    "path": "Examples/2dfunc_diff_res/exp_passive.json",
    "chars": 421,
    "preview": "{\n  \"name\": \"./2dfunc_diff_res/exp_passive.json\",\n  \"proposer\": \"random\",\n  \"n_samples\": 5,\n  \"random_seed\": 1,\n  \"scrip"
  },
  {
    "path": "Examples/2dfunc_diff_res/gpu.txt",
    "chars": 4,
    "preview": "0\n1\n"
  },
  {
    "path": "Examples/2dfunc_diff_res/node.txt",
    "chars": 34,
    "preview": "jasonliu@ubuntu1\njasonliu@ubuntu2\n"
  },
  {
    "path": "Examples/2dfunc_diff_res/plainGPU.txt",
    "chars": 1,
    "preview": "0"
  },
  {
    "path": "Examples/2dfunc_diff_res/rosenbrock_hpo.py",
    "chars": 875,
    "preview": "#!/usr/bin/env python\n\"\"\"\nModified Rosenbrock function for HPO and aup\n============================================\n\n..\n"
  },
  {
    "path": "Examples/2dfunc_diff_res/singleGPU.txt",
    "chars": 3,
    "preview": "0\n0"
  },
  {
    "path": "Examples/cai_eas/.gitignore",
    "chars": 1448,
    "preview": "net_pool\narch_search\n\n\n## Core latex/pdflatex auxiliary files:\n*.aux\n*.lof\n*.log\n*.lot\n*.fls\n*.out\n*.toc\n\n## Intermediat"
  },
  {
    "path": "Examples/cai_eas/README.md",
    "chars": 350,
    "preview": "# HPO for Deep Neural Networks\n\nDemonstration using https://github.com/han-cai/EAS\n\nThe HPO engine is integrated into th"
  },
  {
    "path": "Examples/cai_eas/eas/client.py",
    "chars": 835,
    "preview": "#!/usr/bin/env python\n\"\"\"\nModified from https://github.com/han-cai/EAS\n\nThe file to run in the client side\nTrain the net"
  },
  {
    "path": "Examples/cai_eas/eas/data_providers/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Examples/cai_eas/eas/data_providers/base_provider.py",
    "chars": 2496,
    "preview": "import numpy as np\n\n\nclass DataSet:\n\t\"\"\"Class to represent some dataset: train, validation, test\"\"\"\n\t\n\t@property\n\tdef nu"
  },
  {
    "path": "Examples/cai_eas/eas/data_providers/cifar.py",
    "chars": 8055,
    "preview": "import tempfile\nimport os\nimport pickle\nimport random\n\nimport numpy as np\n\nfrom data_providers.base_provider import Imag"
  },
  {
    "path": "Examples/cai_eas/eas/data_providers/downloader.py",
    "chars": 924,
    "preview": "import sys\nimport os\nimport urllib.request\nimport tarfile\nimport zipfile\n\n\ndef report_download_progress(count, block_siz"
  },
  {
    "path": "Examples/cai_eas/eas/data_providers/svhn.py",
    "chars": 4628,
    "preview": "import tempfile\nimport os\nimport scipy.io\n\nimport numpy as np\n\nfrom data_providers.base_provider import ImagesDataSet, D"
  },
  {
    "path": "Examples/cai_eas/eas/data_providers/utils.py",
    "chars": 730,
    "preview": "from data_providers.cifar import Cifar10DataProvider, Cifar100DataProvider, \\\n\tCifar10AugmentedDataProvider, Cifar100Aug"
  },
  {
    "path": "Examples/cai_eas/eas/expdir_monitor/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Examples/cai_eas/eas/expdir_monitor/expdir_monitor.py",
    "chars": 4383,
    "preview": "import json\nimport os\nimport subprocess\nfrom models.utils import RunConfig, get_model_config_by_name, get_model_by_name\n"
  },
  {
    "path": "Examples/cai_eas/eas/experiment.json",
    "chars": 179,
    "preview": "{\n  \"name\": \"./cai_eas/eas/experiment.json\",\n  \"proposer\": \"eas\",\n  \"script\": \"client.py\",\n  \"resource\": \"gpu\",\n  \"n_par"
  },
  {
    "path": "Examples/cai_eas/eas/models/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "Examples/cai_eas/eas/models/basic_model.py",
    "chars": 12413,
    "preview": "import os\nimport shutil\nimport tensorflow as tf\nimport numpy as np\nimport time\nfrom datetime import timedelta\nimport jso"
  },
  {
    "path": "Examples/cai_eas/eas/models/convnet.py",
    "chars": 6614,
    "preview": "from models.basic_model import BasicModel\nfrom data_providers.base_provider import DataProvider\nfrom models.layers impor"
  },
  {
    "path": "Examples/cai_eas/eas/models/dense_net.py",
    "chars": 18831,
    "preview": "import tensorflow as tf\nfrom models.basic_model import BasicModel\nfrom models.layers import ConvLayer, FCLayer, PoolLaye"
  },
  {
    "path": "Examples/cai_eas/eas/models/layer_cascade.py",
    "chars": 5893,
    "preview": "from models.layers import ConvLayer, FCLayer, PoolLayer, get_layer_by_name\nimport tensorflow as tf\n\n\nclass LayerCascade:"
  },
  {
    "path": "Examples/cai_eas/eas/models/layer_multi_branch.py",
    "chars": 8211,
    "preview": "import tensorflow as tf\nimport numpy as np\nfrom models.layer_cascade import LayerCascade\n\n\nclass LayerMultiBranch:\n\tdef "
  },
  {
    "path": "Examples/cai_eas/eas/models/layers.py",
    "chars": 15496,
    "preview": "from models.basic_model import BasicModel\nimport tensorflow as tf\nimport numpy as np\nimport copy\n\n\ndef apply_noise(weigh"
  },
  {
    "path": "Examples/cai_eas/eas/models/utils.py",
    "chars": 3791,
    "preview": "from models.dense_net import DenseNetConfig, DenseNet\nfrom models.convnet import SimpleConvnetConfig, SimpleConvnet\nimpo"
  },
  {
    "path": "Examples/cai_eas/start_nets/start_net_convnet_small_C10+/net.config",
    "chars": 3588,
    "preview": "{\n    \"name\": \"SimpleConvnet\",\n    \"weight_decay\": 0.0001,\n    \"bn_epsilon\": 1e-05,\n    \"bn_decay\": 0.9,\n    \"drop_schem"
  },
  {
    "path": "Examples/compression/mnist_pytorch/README.md",
    "chars": 1904,
    "preview": "# Compression examples (PyTorch)\n\n## Requirements\n\nThe base requirements for Auptimizer apply here.\n\nAdditionally, in or"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_activation_apoz_rank.json",
    "chars": 378,
    "preview": "{\n    \"name\": \"PyTorch MNIST Activation APoZ Rank Filter Pruner\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \""
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_activation_apoz_rank_dependency_aware.json",
    "chars": 414,
    "preview": "{\n    \"name\": \"PyTorch MNIST Activation APoZ Rank Filter Pruner (dependency aware)\",\n    \"script\": \"mnist_dependency_awa"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_activation_mean_rank.json",
    "chars": 378,
    "preview": "{\n    \"name\": \"PyTorch MNIST Activation Mean Rank Filter Pruner\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \""
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_activation_mean_rank_dependency_aware.json",
    "chars": 414,
    "preview": "{\n    \"name\": \"PyTorch MNIST Activation Mean Rank Filter Pruner (dependency aware)\",\n    \"script\": \"mnist_dependency_awa"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_admm.json",
    "chars": 504,
    "preview": "{\n    \"name\": \"PyTorch MNIST ADMM Pruner\",\n    \"script\": \"mnist_admm.py\",\n    \"resource\": \"cpu\",\n    \"compression\": {\n  "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_agp.json",
    "chars": 546,
    "preview": "{\n    \"name\": \"PyTorch MNIST AGP Pruner\",\n    \"script\": \"mnist_agp.py\",\n    \"resource\": \"cpu\",\n    \"compression\": {\n    "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_amc.json",
    "chars": 311,
    "preview": "{\n    \"name\": \"PyTorch MNIST AMC Pruner\",\n    \"script\": \"mnist_amc.py\",\n    \"resource\": \"cpu\",\n    \"compression\": {\n    "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_activation_apoz_rank.json",
    "chars": 636,
    "preview": "{\n    \"name\": \"PyTorch MNIST Activation APoZ Rank Filter Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_activation_mean_rank.json",
    "chars": 636,
    "preview": "{\n    \"name\": \"PyTorch MNIST Activation Mean Rank Filter Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_admm.json",
    "chars": 599,
    "preview": "{\n    \"name\": \"PyTorch MNIST ADMM Pruner (automatic)\",\n    \"script\": \"mnist_admm.py\",\n    \"resource\": \"cpu\",\n    \"resour"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_agp.json",
    "chars": 758,
    "preview": "{\n    \"name\": \"PyTorch MNIST AGP Pruner (automatic)\",\n    \"script\": \"mnist_no_speedup.py\",\n    \"resource\": \"cpu\",\n    \"r"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_aup_args.json",
    "chars": 611,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (@aup_args) (automatic)\",\n    \"script\": \"mnist_aup_args.py\",\n    \"resource\": \"c"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_bohb.json",
    "chars": 610,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_hyperband.json",
    "chars": 593,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_hyperopt.json",
    "chars": 592,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_no_expand.json",
    "chars": 762,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_random.json",
    "chars": 590,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_random_no_expand.json",
    "chars": 632,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_sequence.json",
    "chars": 629,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_fpgm_spearmint.json",
    "chars": 593,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resource_ar"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_l1filter.json",
    "chars": 601,
    "preview": "{\n    \"name\": \"PyTorch MNIST L1 Filter Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resour"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_l2filter.json",
    "chars": 600,
    "preview": "{\n    \"name\": \"PyTorch MNIST L2 Filter Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resour"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_level.json",
    "chars": 617,
    "preview": "{\n    \"name\": \"PyTorch MNIST Level Pruner (automatic)\",\n    \"script\": \"mnist_no_speedup.py\",\n    \"resource\": \"cpu\",\n    "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_lottery_ticket.json",
    "chars": 746,
    "preview": "{\n    \"name\": \"PyTorch MNIST Lottery Ticket Pruner (automatic)\",\n    \"script\": \"mnist_lottery_ticket.py\",\n    \"resource\""
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_auto_taylor_fo.json",
    "chars": 628,
    "preview": "{\n    \"name\": \"PyTorch MNIST Taylor FO Weight Filter Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_autocompress.json",
    "chars": 363,
    "preview": "{\n    \"name\": \"PyTorch MNIST Auto Compress Pruner\",\n    \"script\": \"mnist_autocompress.py\",\n    \"resource\": \"cpu\",\n    \"c"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_fpgm.json",
    "chars": 333,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"compression\": {\n       "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_fpgm_aup_args.json",
    "chars": 354,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (@aup_args)\",\n    \"script\": \"mnist_aup_args.py\",\n    \"resource\": \"cpu\",\n    \"co"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_fpgm_dependency_aware.json",
    "chars": 369,
    "preview": "{\n    \"name\": \"PyTorch MNIST FPGM Pruner (dependency aware)\",\n    \"script\": \"mnist_dependency_aware.py\",\n    \"resource\":"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_l1filter.json",
    "chars": 342,
    "preview": "{\n    \"name\": \"PyTorch MNIST L1 Filter Pruner\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"compression\": {\n  "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_l1filter_dependency_aware.json",
    "chars": 378,
    "preview": "{\n    \"name\": \"PyTorch MNIST L1 Filter Pruner (dependency aware)\",\n    \"script\": \"mnist_dependency_aware.py\",\n    \"resou"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_l2filter.json",
    "chars": 342,
    "preview": "{\n    \"name\": \"PyTorch MNIST L2 Filter Pruner\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"compression\": {\n  "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_l2filter_dependency_aware.json",
    "chars": 378,
    "preview": "{\n    \"name\": \"PyTorch MNIST L2 Filter Pruner (dependency aware)\",\n    \"script\": \"mnist_dependency_aware.py\",\n    \"resou"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_level.json",
    "chars": 346,
    "preview": "{\n    \"name\": \"PyTorch MNIST Level Pruner\",\n    \"script\": \"mnist_no_speedup.py\",\n    \"resource\": \"cpu\",\n    \"compression"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_lottery_ticket.json",
    "chars": 406,
    "preview": "{\n    \"name\": \"PyTorch MNIST Lottery Ticket Pruner\",\n    \"script\": \"mnist_lottery_ticket.py\",\n    \"resource\": \"cpu\",\n   "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_net_adapt.json",
    "chars": 351,
    "preview": "{\n    \"name\": \"PyTorch MNIST NetAdapt Pruner\",\n    \"script\": \"mnist_net_adapt.py\",\n    \"resource\": \"cpu\",\n    \"compressi"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_quantization_bnn.json",
    "chars": 455,
    "preview": "{\n    \"name\": \"PyTorch MNIST BNN Quantizer\",\n    \"script\": \"mnist_no_speedup.py\",\n    \"resource\": \"cpu\",\n    \"compressio"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_quantization_dorefa.json",
    "chars": 374,
    "preview": "{\n    \"name\": \"PyTorch MNIST DoReFa Quantizer\",\n    \"script\": \"mnist_no_speedup.py\",\n    \"resource\": \"cpu\",\n    \"compres"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_quantization_naive.json",
    "chars": 257,
    "preview": "{\n    \"name\": \"PyTorch MNIST Naive Quantizer\",\n    \"script\": \"mnist_no_speedup.py\",\n    \"resource\": \"cpu\",\n    \"compress"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_quantization_qat.json",
    "chars": 571,
    "preview": "{\n    \"name\": \"PyTorch MNIST QAT Quantizer\",\n    \"script\": \"mnist_no_speedup.py\",\n    \"resource\": \"cpu\",\n    \"compressio"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_sensitivity.json",
    "chars": 358,
    "preview": "{\n    \"name\": \"PyTorch MNIST Sensitivity Pruner\",\n    \"script\": \"mnist_sensitivity.py\",\n    \"resource\": \"cpu\",\n    \"comp"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_simulated_annealing.json",
    "chars": 382,
    "preview": "{\n    \"name\": \"PyTorch MNIST Simulated Annealing Pruner\",\n    \"script\": \"mnist_simulated_annealing.py\",\n    \"resource\": "
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_taylor_fo.json",
    "chars": 370,
    "preview": "{\n    \"name\": \"PyTorch MNIST Taylor FO Weight Filter Pruner\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"comp"
  },
  {
    "path": "Examples/compression/mnist_pytorch/exp_taylor_fo_dependency_aware.json",
    "chars": 406,
    "preview": "{\n    \"name\": \"PyTorch MNIST Taylor FO Weight Filter Pruner (dependency aware)\",\n    \"script\": \"mnist_dependency_aware.p"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist.py",
    "chars": 6175,
    "preview": "#!/usr/bin/env python3\n\n\"\"\"\nMNIST convolutional network using pytorch\n============================================\n\n..\n "
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_admm.py",
    "chars": 6695,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_agp.py",
    "chars": 5898,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_amc.py",
    "chars": 6040,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_aup_args.py",
    "chars": 6027,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_autocompress.py",
    "chars": 6830,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_dependency_aware.py",
    "chars": 6094,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_lottery_ticket.py",
    "chars": 5990,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_net_adapt.py",
    "chars": 6032,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_no_speedup.py",
    "chars": 5859,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_pretrained.py",
    "chars": 5324,
    "preview": "from __future__ import print_function\nimport argparse\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_sensitivity.py",
    "chars": 6034,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_pytorch/mnist_simulated_annealing.py",
    "chars": 5799,
    "preview": "#!/usr/bin/env python3\n\nfrom __future__ import print_function\nimport argparse\nimport sys\nimport time\n\nimport numpy as np"
  },
  {
    "path": "Examples/compression/mnist_tensorflow/README.md",
    "chars": 538,
    "preview": "# Compression examples (Tensorflow)\n\n## Requirements\n\nThe basic requirements for Auptimizer apply here.\n\nAdditionally, i"
  },
  {
    "path": "Examples/compression/mnist_tensorflow/exp_auto_level.json",
    "chars": 616,
    "preview": "{\n    \"name\": \"Tensorflow MNIST Level Pruner (automatic)\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"resourc"
  },
  {
    "path": "Examples/compression/mnist_tensorflow/exp_level.json",
    "chars": 343,
    "preview": "{\n    \"name\": \"Tensorflow MNIST Level Pruner\",\n    \"script\": \"mnist.py\",\n    \"resource\": \"cpu\",\n    \"compression\": {\n   "
  },
  {
    "path": "Examples/compression/mnist_tensorflow/mnist.py",
    "chars": 2862,
    "preview": "#!/usr/bin/env python3\n\n\"\"\"\nMNIST convolutional network using pytorch\n============================================\n\n..\n "
  },
  {
    "path": "Examples/compression/mnist_tensorflow/mnist_pretrained.py",
    "chars": 2467,
    "preview": "#!/usr/bin/env python3\n\nfrom aup import print_result, aup_args\n\nimport tensorflow as tf\nimport numpy as np\nfrom tensorfl"
  },
  {
    "path": "Examples/compression/utility_functions/README.md",
    "chars": 349,
    "preview": "# Compression utility functions\n\nThis example provides an example training script ``mnist.py``, where the compression ut"
  },
  {
    "path": "Examples/compression/utility_functions/mnist.py",
    "chars": 5822,
    "preview": "#!/usr/bin/env python3\n\n\"\"\"\nMNIST convolutional network using pytorch\n============================================\n\n..\n "
  },
  {
    "path": "Examples/converter_examples/Convert_Benchmark/.gitignore",
    "chars": 48,
    "preview": ".ipynb_checkpoints/\n*.tflite\n*.h5\n*.tgz\npytorch/"
  },
  {
    "path": "Examples/converter_examples/Convert_Benchmark/Benchmark.ipynb",
    "chars": 228547,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"code\",\n   \"execution_count\": 2,\n   \"metadata\": {},\n   \"outputs\": [\n    {\n     \"name\":"
  },
  {
    "path": "Examples/converter_examples/Convert_Benchmark/README.md",
    "chars": 2396,
    "preview": "# Quantization Benchmarking on Android Phone\n\nIn this example, we use Converter to quantize and convert models into Tens"
  },
  {
    "path": "Examples/converter_examples/Convert_Benchmark/repdata.py",
    "chars": 999,
    "preview": "\"\"\"\n..\n  Copyright (c) 2018 LG Electronics Inc.\n  SPDX-License-Identifier: GPL-3.0-or-later\n\nCreate a synthetic tf.datas"
  },
  {
    "path": "Examples/converter_examples/Convert_Benchmark/script_mobilenet.py",
    "chars": 5687,
    "preview": "\"\"\"\n  Copyright (c) 2018 LG Electronics Inc.\n  SPDX-License-Identifier: GPL-3.0-or-later\n\"\"\" \nimport keras\nimport subpro"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/.gitignore",
    "chars": 87,
    "preview": "mobilenet*\ninput_models\noutput_models\n*.tgz\nDockerfile_*\ndensenet*\nnasnet*\nsqueezenet*\n"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/README.md",
    "chars": 2313,
    "preview": "# Profiling TensorFlow Lite/ONNX model performance for CPU\nIn this example, we show how to use Converter to convert mode"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/convert_onnx.json",
    "chars": 661,
    "preview": "[\n    {\n        \"convert_from\":\"input_models/densenet/densenet.pb\",\n        \"convert_to\":\"output_models/densenet_convert"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/convert_tflite.json",
    "chars": 671,
    "preview": "[\n    {\n        \"convert_from\":\"input_models/squeezenet.pb\",\n        \"convert_to\":\"output_models/squeezenet_converted.tf"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/download_test_models.py",
    "chars": 1404,
    "preview": "#  Copyright (c) 2020 LG Electronics Inc.\n#  SPDX-License-Identifier: GPL-3.0-or-later\n\nimport os\nimport json\nimport arg"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/env_onnx.template",
    "chars": 670,
    "preview": "#  Copyright (c) 2020 LG Electronics Inc.\n#  SPDX-License-Identifier: GPL-3.0-or-later\n#User data Variables\nIMAGEREPO=te"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/env_tflite.template",
    "chars": 837,
    "preview": "#  Copyright (c) 2020 LG Electronics Inc.\n#  SPDX-License-Identifier: GPL-3.0-or-later\n#User data Variables\nIMAGEREPO=te"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/model_names_tflite.txt",
    "chars": 229,
    "preview": "input_models/densenet/densenet.tflite\noutput_models/densenet_converted.tflite\ninput_models/squeezenet.tflite\noutput_mode"
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/test_perf_onnx.py",
    "chars": 1311,
    "preview": "#  Copyright (c) 2020 LG Electronics Inc.\n#  SPDX-License-Identifier: GPL-3.0-or-later\n\n# Compute the overall inference "
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/test_perf_tflite.py",
    "chars": 1196,
    "preview": "#  Copyright (c) 2020 LG Electronics Inc.\n#  SPDX-License-Identifier: GPL-3.0-or-later\n\n# Compute the overall inference "
  },
  {
    "path": "Examples/converter_examples/Convert_Profiler/tflite_output.txt",
    "chars": 1168,
    "preview": "Usage stats for Experiment ran on : 2020-10-08 10:26:18.302189\nNAME                     AVG CPU %      PEAK CPU  AVG MEM"
  },
  {
    "path": "Examples/converter_examples/README.md",
    "chars": 1784,
    "preview": "# Model Conversion Examples\n\nThis folder contains examples that demonstrate Converter coverage and efficacy.\n\n### - Eval"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/.gitignore",
    "chars": 64,
    "preview": "test_models/\nconverted_models/\n*.tgz\n*.gz\n*.pb\n*.h5\n*_internal*\n"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/README.md",
    "chars": 7617,
    "preview": "# Model Coverage\nIn this example, we have evaluated the capabilities and limitations of Converter conversion functions b"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_checkpoint_to_onnx.json",
    "chars": 1318,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/mobilenet_v1_0.25_224/mobilenet_v1_0.25_224.ckpt.meta\",\n        \"convert_to\""
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_checkpoint_to_tflite.json",
    "chars": 1315,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/mobilenet_v1_0.25_224/mobilenet_v1_0.25_224.ckpt.meta\",\n        \"convert_to\""
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_keras_to_onnx.json",
    "chars": 1336,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/VGG16.h5\",\n        \"convert_to\":\"converted_models/VGG16_keras.onnx\",\n       "
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_keras_to_tflite.json",
    "chars": 1795,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/VGG16.h5\",\n        \"convert_to\":\"converted_models/VGG16_keras.tflite\",\n     "
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_protobuf_to_onnx.json",
    "chars": 2034,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/densenet/densenet.pb\",\n        \"convert_to\":\"converted_models/densenet_conve"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_protobuf_to_tflite.json",
    "chars": 2119,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/densenet/densenet.pb\",\n        \"convert_to\":\"converted_models/densenet_conve"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_pytorch_to_onnx.json",
    "chars": 4685,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/resnet18.pt\",\n        \"convert_to\":\"converted_models/resnet_torch.onnx\",\n   "
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_pytorch_to_tflite.json",
    "chars": 4712,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/resnet18.pt\",\n        \"convert_to\":\"converted_models/resnet_torch.tflite\",\n "
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_savedmodel_to_onnx.json",
    "chars": 1047,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/resnet_50_TF2\",\n        \"convert_to\":\"converted_models/resnet_50_TF2_convert"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/conversion_jsons/convert_savedmodel_to_tflite.json",
    "chars": 1058,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/resnet_50_TF2\",\n        \"convert_to\":\"converted_models/resnet_50_TF2_convert"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/convert_pb_to_tflite.json",
    "chars": 230,
    "preview": "[\n    {\n        \"convert_from\":\"test_models/densenet/densenet.pb\",\n        \"convert_to\":\"converted_models/densenet_conve"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/create_test_models.py",
    "chars": 4941,
    "preview": "#  Copyright (c) 2020 LG Electronics Inc.\n#  SPDX-License-Identifier: GPL-3.0-or-later\n\nimport torchvision.models as mod"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/download_models.py",
    "chars": 1739,
    "preview": "#  Copyright (c) 2020 LG Electronics Inc.\n#  SPDX-License-Identifier: GPL-3.0-or-later\n\nimport os\nimport json\nimport arg"
  },
  {
    "path": "Examples/converter_examples/Tested_Models/download_urls.json",
    "chars": 1287,
    "preview": "{   \n    \"protobuf_checkpoint\":{\n      \"densenet\": \"https://storage.googleapis.com/download.tensorflow.org/models/tflite"
  },
  {
    "path": "Examples/converter_examples/dlconvert_requirements.txt",
    "chars": 63,
    "preview": "keras2onnx==1.7.0\ntf2onnx\npytest\npytest-cov\ntorch\npytorch2keras"
  },
  {
    "path": "Examples/decorator_example/origin.py",
    "chars": 388,
    "preview": "#----------------------------------\ndef func(hyperparameter):\n    return 'training results'\n\n\n\n\n\n\n\n\n#-------------------"
  },
  {
    "path": "Examples/decorator_example/use_decorator.py",
    "chars": 527,
    "preview": "#----------------------------------\n#!/usr/bin/env python\nimport sys\nfrom aup import aup_args\n\n@aup_args\ndef func(hyperp"
  },
  {
    "path": "Examples/demo/.gitignore",
    "chars": 46,
    "preview": "env_template.ini\nhpo.py\n.aup/\nexperiment.json\n"
  },
  {
    "path": "Examples/demo/demo.yml",
    "chars": 19481,
    "preview": "# The configurations that used for the recording, feel free to edit them\nconfig:\n\n  # Specify a command to be executed\n "
  },
  {
    "path": "Examples/demo/experiment_wrapper.json",
    "chars": 350,
    "preview": "{\n  \"name\": \"./demo/experiment_wrapper.json\",\n  \"script\": \"hpo_wrapper.py\",\n  \"resource\": \"cpu\",\n  \"n_parallel\": 2,\n  \"t"
  },
  {
    "path": "Examples/demo/hpo_wrapper.py",
    "chars": 272,
    "preview": "#!/usr/bin/env python\n# Demonstration code for 1D function, centered around a=1\nfrom time import sleep\nfrom aup import a"
  },
  {
    "path": "Examples/demo/origin.py",
    "chars": 150,
    "preview": "# Demonstration code for 1D function, centered around a=1\nfrom time import sleep\n\n\ndef demo_func(x, a=1, b=0):\n    sleep"
  },
  {
    "path": "Examples/early_stopping/README.md",
    "chars": 1219,
    "preview": "# Early stopping of jobs\n\n## Usage\n\nIn order to use early stopping to accelerate the HPO experiment,\nwe need to add the "
  },
  {
    "path": "Examples/early_stopping/mnist_keras/cpu.ini",
    "chars": 179,
    "preview": "[Auptimizer]\n# Auptimizer environment folder to be created, this file will be copied over\nAuptimizer_PATH=./.aup\n# Temp "
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_BOHB_bandit.json",
    "chars": 972,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_BOHB_bandit.json\",\n  \"proposer\": \"bohb\",\n  \"script\": \"mnist.py\",\n  \"resour"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_BOHB_curve_fitting.json",
    "chars": 1078,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_BOHB_curve_fitting.json\",\n  \"proposer\": \"bohb\",\n  \"script\": \"mnist.py\",\n  "
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_BOHB_median.json",
    "chars": 940,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_BOHB_median.json\",\n  \"proposer\": \"bohb\",\n  \"script\": \"mnist.py\",\n  \"resour"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_BOHB_trunc.json",
    "chars": 983,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_BOHB_trunc.json\",\n  \"proposer\": \"bohb\",\n  \"script\": \"mnist.py\",\n  \"resourc"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_random_bandit.json",
    "chars": 810,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_random_bandit.json\",\n  \"proposer\": \"random\",\n  \"script\": \"mnist.py\",\n  \"re"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_random_curve_fitting.json",
    "chars": 916,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_random_curve_fitting.json\",\n  \"proposer\": \"random\",\n  \"script\": \"mnist.py\""
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_random_median.json",
    "chars": 778,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_random_median.json\",\n  \"proposer\": \"random\",\n  \"script\": \"mnist.py\",\n  \"re"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_random_trunc.json",
    "chars": 821,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_random_trunc.json\",\n  \"proposer\": \"random\",\n  \"script\": \"mnist.py\",\n  \"res"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_spearmint_bandit.json",
    "chars": 842,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_spearmint_bandit.json\",\n  \"proposer\": \"spearmint\",\n  \"script\": \"mnist.py\","
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_spearmint_curve_fitting.json",
    "chars": 948,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_spearmint_curve_fitting.json\",\n  \"proposer\": \"spearmint\",\n  \"script\": \"mni"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_spearmint_median.json",
    "chars": 810,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_spearmint_median.json\",\n  \"proposer\": \"spearmint\",\n  \"script\": \"mnist.py\","
  },
  {
    "path": "Examples/early_stopping/mnist_keras/exp_spearmint_trunc.json",
    "chars": 853,
    "preview": "{\n  \"name\": \"./early_stopping/mnist_keras/exp_spearmint_trunc.json\",\n  \"proposer\": \"spearmint\",\n  \"script\": \"mnist.py\",\n"
  },
  {
    "path": "Examples/early_stopping/mnist_keras/mnist.py",
    "chars": 3033,
    "preview": "#!/usr/bin/env python3\n\n\"\"\"\nMNIST convolutional network using Keras\n============================================\n\n..\n  C"
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/cpu.ini",
    "chars": 179,
    "preview": "[Auptimizer]\n# Auptimizer environment folder to be created, this file will be copied over\nAuptimizer_PATH=./.aup\n# Temp "
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min.py",
    "chars": 635,
    "preview": "#!/usr/bin/env python\n\"\"\"\nModified Rosenbrock function for HPO and aup\n============================================\n\n..\n"
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_BOHB_bandit.json",
    "chars": 653,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_BOHB_bandit.json\",\n  \"proposer\": \"bohb\",\n  \"script\": \"quad_min."
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_BOHB_median.json",
    "chars": 621,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_BOHB_median.json\",\n  \"proposer\": \"bohb\",\n  \"script\": \"quad_min."
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_BOHB_trunc.json",
    "chars": 664,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_BOHB_trunc.json\",\n  \"proposer\": \"bohb\",\n  \"script\": \"quad_min.p"
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_random_bandit.json",
    "chars": 491,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_random_bandit.json\",\n  \"proposer\": \"random\",\n  \"script\": \"quad_"
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_random_median.json",
    "chars": 459,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_random_median.json\",\n  \"proposer\": \"random\",\n  \"script\": \"quad_"
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_random_trunc.json",
    "chars": 502,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_random_trunc.json\",\n  \"proposer\": \"random\",\n  \"script\": \"quad_m"
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_spearmint_bandit.json",
    "chars": 522,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_spearmint_bandit.json\",\n  \"proposer\": \"spearmint\",\n  \"script\": "
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_spearmint_median.json",
    "chars": 490,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_spearmint_median.json\",\n  \"proposer\": \"spearmint\",\n  \"script\": "
  },
  {
    "path": "Examples/early_stopping/quad_equation_min/quad_min_spearmint_trunc.json",
    "chars": 533,
    "preview": "{\n  \"name\": \"./early_stopping/quad_equation_min/quad_min_spearmint_trunc.json\",\n  \"proposer\": \"spearmint\",\n  \"script\": \""
  },
  {
    "path": "Examples/hpo_mnist/.gitignore",
    "chars": 37,
    "preview": "input_data/\n.aup/\n__pycache__/\nlogs/\n"
  },
  {
    "path": "Examples/hpo_mnist/MNIST Hyperparameter Optimization Demo.ipynb",
    "chars": 827137,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# MNIST Hyperparameter Optimization"
  },
  {
    "path": "Examples/hpo_mnist/README.md",
    "chars": 2948,
    "preview": "# HPO on MNIST data using Auptimizer\n\nThis folder contains demonstrating how to use Auptimizer for Hyperparameter Optimi"
  },
  {
    "path": "Examples/hpo_mnist/demo.json",
    "chars": 79,
    "preview": "{\n  \"name\": \"./hpo_mnist/demo.json\",\n  \"drop_out\":0.9,\n  \"learning_rate\":0.01\n}"
  },
  {
    "path": "Examples/hpo_mnist/exp_aws_async.json",
    "chars": 1124,
    "preview": "{\n  \"name\": \"./hpo_mnist/exp_hpo_demo.json\",\n  \"workingdir\": \"/home/ubuntu/aup/mnist_try/\",\n  \"proposer\": \"random\",\n  \"s"
  },
  {
    "path": "Examples/hpo_mnist/exp_aws_demo.json",
    "chars": 717,
    "preview": "{\n  \"name\": \"./hpo_mnist/exp_aws.json\",\n  \"workingdir\": \"/home/ubuntu/aup/mnist_try/\",\n  \"proposer\": \"random\",\n  \"script"
  },
  {
    "path": "Examples/hpo_mnist/exp_aws_retry_job.json",
    "chars": 1076,
    "preview": "{\n  \"proposer\": \"random\",\n  \"script\": \"mnist_hpo_fail.py\",\n  \"workingdir\": \"/home/ubuntu/aup/mnist_try/\",\n  \"resource\": "
  },
  {
    "path": "Examples/hpo_mnist/exp_bohb.json",
    "chars": 947,
    "preview": "{\n  \"name\": \"./hpo_mnist/exp_bohb.json\",\n  \"script\": \"mnist_hpo_demo.py\",\n  \"resource\": \"cpu\",\n  \"n_parallel\": 4,\n  \"tar"
  },
  {
    "path": "Examples/hpo_mnist/exp_hyperband.json",
    "chars": 757,
    "preview": "{\n  \"name\": \"./hpo_mnist/exp_hyperband.json\",\n  \"proposer\": \"hyperband\",\n  \"script\": \"mnist_hpo_demo.py\",\n  \"resource\": "
  }
]

// ... and 692 more files (download for full content)

About this extraction

This page contains the full source code of the LGE-ARC-AdvancedAI/auptimizer GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 892 files (14.8 MB), approximately 3.9M tokens, and a symbol index with 13556 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!