From 4860da8c7cfa78807e7dbf51b1f4ace600f90cec Mon Sep 17 00:00:00 2001 From: Travis CI Date: Fri, 23 Feb 2018 02:49:11 +0000 Subject: [PATCH] Deploy to GitHub Pages: 1ff47b284c565d030b198705d5f18b4bd4ce53e5 --- doc/_images/bi_lstm1.jpg | Bin 35593 -> 0 bytes doc/_images/cifar.png | Bin 466572 -> 0 bytes doc/_images/curve.jpg | Bin 53277 -> 0 bytes .../encoder-decoder-attention-model1.png | Bin 68089 -> 0 bytes doc/_images/feature.jpg | Bin 31204 -> 0 bytes .../graph_construction_example_all.png | Bin 0 -> 57513 bytes ..._construction_example_forward_backward.png | Bin 0 -> 50107 bytes ...raph_construction_example_forward_only.png | Bin 0 -> 30790 bytes doc/_images/image_classification.png | Bin 52635 -> 0 bytes doc/_images/lenet.png | Bin 49835 -> 0 bytes doc/_images/lstm.png | Bin 50694 -> 0 bytes doc/_images/network_arch.png | Bin 27822 -> 0 bytes doc/_images/paddleci.png | Bin 0 -> 40242 bytes doc/_images/parameters.png | Bin 44469 -> 0 bytes doc/_images/plot.png | Bin 31006 -> 0 bytes doc/_images/pprof_1.png | Bin 0 -> 352710 bytes doc/_images/pprof_2.png | Bin 0 -> 194000 bytes doc/_images/rec_regression_network.png | Bin 83127 -> 0 bytes doc/_images/stacked_lstm.jpg | Bin 31077 -> 0 bytes doc/_sources/about/index_en.rst.txt | 14 - doc/_sources/api/index_en.rst.txt | 1 + .../activations.rst.txt | 108 - .../v1/trainer_config_helpers/attrs.rst.txt | 5 - .../data_sources.rst.txt | 7 - .../trainer_config_helpers/evaluators.rst.txt | 108 - .../v1/trainer_config_helpers/layers.rst.txt | 508 -- .../trainer_config_helpers/networks.rst.txt | 123 - .../trainer_config_helpers/optimizers.rst.txt | 61 - .../trainer_config_helpers/poolings.rst.txt | 33 - doc/_sources/api/v2/config/activation.rst.txt | 7 + doc/_sources/api/v2/config/evaluators.rst.txt | 110 + doc/_sources/api/v2/config/layer.rst.txt | 159 +- doc/_sources/api/v2/config/networks.rst.txt | 27 +- doc/_sources/api/v2/data.rst.txt | 113 +- doc/_sources/api/v2/data/data_reader.rst.txt | 36 + doc/_sources/api/v2/data/dataset.rst.txt | 75 + doc/_sources/api/v2/data/image.rst.txt | 5 + doc/_sources/api/v2/fluid.rst.txt | 18 + doc/_sources/api/v2/fluid/data_feeder.rst.txt | 9 + doc/_sources/api/v2/fluid/evaluator.rst.txt | 9 + doc/_sources/api/v2/fluid/executor.rst.txt | 9 + doc/_sources/api/v2/fluid/initializer.rst.txt | 50 + doc/_sources/api/v2/fluid/layers.rst.txt | 302 + doc/_sources/api/v2/fluid/nets.rst.txt | 22 + doc/_sources/api/v2/fluid/optimizer.rst.txt | 54 + doc/_sources/api/v2/fluid/param_attr.rst.txt | 11 + doc/_sources/api/v2/fluid/profiler.rst.txt | 10 + doc/_sources/api/v2/fluid/regularizer.rst.txt | 25 + doc/_sources/api/v2/model_configs.rst.txt | 1 + doc/_sources/design/api.md.txt | 4 +- .../design/auto_gradient_check.md.txt | 146 + doc/_sources/design/block.md.txt | 336 ++ .../design/build_system/README.md.txt | 152 + .../design/cluster_train}/README.md.txt | 66 +- .../design/cluster_train/checkpointing.md.txt | 44 + .../design/cluster_train/data_dispatch.md.txt | 160 + .../large_model_dist_train.md.txt | 101 + .../design/cluster_train/master_server.md.txt | 91 + .../cluster_train/pserver_client.md.txt | 171 + .../remote_parameter_updater.md.txt | 21 + .../design/cluster_train/save_model.md.txt | 111 + .../design/cluster_train/submit-job.md.txt | 127 + doc/_sources/design/evaluator.md.txt | 58 + doc/_sources/design/executor.md.txt | 23 + .../design/file_manager/README.md.txt | 87 + .../design/file_manager/pfs/pfsclient.md.txt | 129 + doc/_sources/design/float16.md.txt | 105 + .../design/functions_operators_layers.md.txt | 100 + doc/_sources/design/gan_api.md.txt | 253 + doc/_sources/design/graph.md.txt | 70 + doc/_sources/design/graph_survey.md.txt | 232 + doc/_sources/design/if_else_op.md.txt | 51 + doc/_sources/design/infer_var_type.md.txt | 78 + doc/_sources/design/model_format.md.txt | 36 + .../00.why_plain_c.md.txt | 20 +- .../01.inference_implementation.md.txt | 131 + doc/_sources/design/ops/rnn.md.txt | 153 + .../design/ops/sequence_decoder.md.txt | 229 + doc/_sources/design/optimizer.md.txt | 91 + doc/_sources/design/parameter_average.md.txt | 72 + doc/_sources/design/parameters_in_cpp.md.txt | 41 + doc/_sources/design/program.md.txt | 139 + doc/_sources/design/prune.md.txt | 63 + doc/_sources/design/python_api.md.txt | 284 + doc/_sources/design/reader/README.md.txt | 72 +- .../refactor/distributed_architecture.md.txt | 144 + .../design/refactor/parameter_server.md.txt | 106 + doc/_sources/design/refactor/session.md.txt | 180 + doc/_sources/design/refactorization.md.txt | 249 + doc/_sources/design/register_grad_op.md.txt | 92 + doc/_sources/design/regularization.md.txt | 72 + doc/_sources/design/releasing_process.md.txt | 68 + doc/_sources/design/scope.md.txt | 124 + doc/_sources/design/selected_rows.md.txt | 74 + doc/_sources/design/simple_op_design.md.txt | 202 + doc/_sources/design/tensor_array.md.txt | 271 + doc/_sources/design/var_desc.md.txt | 69 + .../getstarted/basic_usage/index_en.rst.txt | 101 - .../build_from_source_en.md.txt | 222 - .../build_from_source_en.rst.txt | 159 + .../docker_install_en.rst.txt | 300 +- .../build_and_install/index_en.rst.txt | 25 +- .../build_and_install/pip_install_en.rst.txt | 104 + .../ubuntu_install_en.rst.txt | 25 - doc/_sources/getstarted/index_en.rst.txt | 54 +- .../howto/deep_model/rnn/index_en.rst.txt | 5 + .../deep_model/rnn/rnn_config_en.rst.txt | 192 +- doc/_sources/howto/dev/build_en.md.txt | 124 + .../howto/dev/contribute_to_paddle_en.md.txt | 229 +- doc/_sources/howto/dev/new_layer_en.rst.txt | 8 +- doc/_sources/howto/dev/new_op_en.md.txt | 342 ++ doc/_sources/howto/dev/use_eigen_en.md.txt | 146 + doc/_sources/howto/dev/write_docs_en.rst.txt | 80 + doc/_sources/howto/index_en.rst.txt | 1 + .../howto/optimization/cpu_profiling.md.txt | 197 + .../usage/cluster/cluster_train_en.md.txt | 335 +- doc/_sources/index_en.rst.txt | 2 +- .../cross_compiling_for_android_en.md.txt | 175 + .../cross_compiling_for_raspberry_en.md.txt | 62 + doc/_sources/mobile/index_en.rst.txt | 8 + .../survey/cluster_bootstrapping_tools.md.txt | 71 + .../image_classification/index_en.md.txt | 221 - doc/_sources/tutorials/index_en.md.txt | 14 - .../tutorials/rec/ml_dataset_en.md.txt | 111 - .../tutorials/rec/ml_regression_en.rst.txt | 348 -- .../semantic_role_labeling/index_en.md.txt | 204 - .../sentiment_analysis/index_en.md.txt | 328 - .../tutorials/text_generation/index_en.md.txt | 338 -- doc/_sources/v1_api_tutorials/README.md.txt | 5 + .../embedding_model/index_en.md.txt | 0 .../gan/index_en.md.txt | 0 .../imagenet_model/resnet_model_en.md.txt | 0 .../quick_start/index_en.md.txt | 0 doc/api/index_en.html | 47 +- doc/api/v1/data_provider/dataprovider_en.html | 46 +- .../v1/data_provider/pydataprovider2_en.html | 46 +- doc/api/v1/index_en.html | 56 +- doc/api/v1/predict/swig_py_paddle_en.html | 46 +- .../trainer_config_helpers/activations.html | 373 -- doc/api/v1/trainer_config_helpers/layers.html | 3515 ----------- .../v1/trainer_config_helpers/networks.html | 949 --- .../v1/trainer_config_helpers/optimizers.html | 474 -- doc/api/v2/config/activation.html | 57 +- doc/api/v2/config/attr.html | 66 +- .../config}/evaluators.html | 406 +- doc/api/v2/config/layer.html | 2709 ++++++--- doc/api/v2/config/networks.html | 687 ++- doc/api/v2/config/optimizer.html | 95 +- doc/api/v2/config/pooling.html | 46 +- doc/api/v2/data.html | 1124 +--- doc/api/v2/data/data_reader.html | 964 +++ doc/api/v2/data/dataset.html | 794 +++ doc/api/v2/data/image.html | 547 ++ .../v2/fluid.html} | 119 +- .../fluid/data_feeder.html} | 143 +- .../attrs.html => v2/fluid/evaluator.html} | 198 +- .../poolings.html => v2/fluid/executor.html} | 142 +- doc/api/v2/fluid/initializer.html | 369 ++ doc/api/v2/fluid/layers.html | 1138 ++++ doc/api/v2/fluid/nets.html | 307 + doc/api/v2/fluid/optimizer.html | 384 ++ doc/api/v2/fluid/param_attr.html | 285 + doc/api/v2/fluid/profiler.html | 314 + doc/api/v2/fluid/regularizer.html | 315 + doc/api/v2/model_configs.html | 47 +- doc/api/v2/run_logic.html | 220 +- doc/design/api.html | 50 +- doc/design/auto_gradient_check.html | 430 ++ doc/design/block.html | 570 ++ doc/design/build_system/README.html | 412 ++ .../{dist => cluster_train}/README.html | 104 +- doc/design/cluster_train/checkpointing.html | 316 + doc/design/cluster_train/data_dispatch.html | 417 ++ .../cluster_train/large_model_dist_train.html | 354 ++ doc/design/cluster_train/master_server.html | 352 ++ doc/design/cluster_train/pserver_client.html | 429 ++ .../remote_parameter_updater.html} | 168 +- doc/design/cluster_train/save_model.html | 371 ++ doc/design/cluster_train/submit-job.html | 400 ++ doc/design/evaluator.html | 323 + doc/design/executor.html | 287 + doc/design/file_manager/README.html | 376 ++ doc/design/file_manager/pfs/pfsclient.html | 402 ++ doc/design/float16.html | 381 ++ doc/design/functions_operators_layers.html | 342 ++ doc/design/gan_api.html | 529 ++ doc/design/graph.html | 323 + doc/design/graph_survey.html | 456 ++ doc/design/if_else_op.html | 312 + doc/design/infer_var_type.html | 329 ++ doc/design/model_format.html | 296 + .../{why_plain_c.html => 00.why_plain_c.html} | 66 +- .../01.inference_implementation.html | 401 ++ doc/design/ops/rnn.html | 397 ++ doc/design/ops/sequence_decoder.html | 472 ++ doc/design/optimizer.html | 352 ++ doc/design/parameter_average.html | 342 ++ doc/design/parameters_in_cpp.html | 301 + doc/design/program.html | 389 ++ doc/design/prune.html | 323 + doc/design/python_api.html | 520 ++ doc/design/reader/README.html | 123 +- .../refactor/distributed_architecture.html | 379 ++ doc/design/refactor/parameter_server.html | 369 ++ doc/design/refactor/session.html | 427 ++ doc/design/refactorization.html | 594 ++ doc/design/register_grad_op.html | 339 ++ doc/design/regularization.html | 331 ++ doc/design/releasing_process.html | 355 ++ doc/design/scope.html | 384 ++ doc/design/selected_rows.html | 330 ++ doc/design/simple_op_design.html | 452 ++ doc/design/tensor_array.html | 514 ++ doc/design/var_desc.html | 328 + doc/genindex.html | 120 +- doc/getstarted/basic_usage/index_en.html | 331 -- .../build_from_source_en.html | 428 +- .../build_and_install/docker_install_en.html | 340 +- .../build_and_install/index_en.html | 72 +- .../build_and_install/pip_install_en.html | 428 ++ doc/getstarted/index_en.html | 95 +- doc/howto/deep_model/rnn/index_en.html | 59 +- doc/howto/deep_model/rnn/rnn_config_en.html | 256 +- doc/howto/dev/build_en.html | 385 ++ doc/howto/dev/contribute_to_paddle_en.html | 264 +- doc/howto/dev/new_layer_en.html | 48 +- doc/howto/dev/new_op_en.html | 580 ++ doc/howto/dev/use_eigen_en.html | 391 ++ doc/howto/dev/write_docs_en.html | 340 ++ doc/howto/index_en.html | 53 +- doc/howto/optimization/cpu_profiling.html | 432 ++ doc/howto/optimization/gpu_profiling_en.html | 50 +- doc/howto/usage/cluster/cluster_train_en.html | 408 +- .../usage/cmd_parameter/arguments_en.html | 46 +- .../cmd_parameter/detail_introduction_en.html | 50 +- doc/howto/usage/cmd_parameter/index_en.html | 46 +- .../usage/cmd_parameter/use_case_en.html | 46 +- doc/howto/usage/k8s/k8s_aws_en.html | 46 +- doc/howto/usage/k8s/k8s_en.html | 50 +- doc/howto/usage/k8s/src/k8s_data/README.html | 46 +- doc/howto/usage/k8s/src/k8s_train/README.html | 46 +- doc/index_en.html | 48 +- .../cross_compiling_for_android_en.html | 441 ++ .../cross_compiling_for_raspberry_en.html | 325 + doc/{about => mobile}/index_en.html | 73 +- doc/objects.inv | Bin 2303 -> 3579 bytes doc/operators.json | 5254 +++++++++++++++++ doc/py-modindex.html | 50 +- doc/search.html | 46 +- doc/searchindex.js | 2 +- doc/survey/cluster_bootstrapping_tools.html | 368 ++ .../image_classification/index_en.html | 432 -- doc/tutorials/rec/ml_regression_en.html | 845 --- .../semantic_role_labeling/index_en.html | 432 -- .../sentiment_analysis/index_en.html | 544 -- doc/tutorials/text_generation/index_en.html | 592 -- .../README.html} | 78 +- .../embedding_model/index_en.html | 48 +- .../gan/index_en.html | 46 +- .../imagenet_model/resnet_model_en.html | 46 +- .../quick_start/index_en.html | 46 +- doc_cn/_images/bi_lstm1.jpg | Bin 35593 -> 0 bytes doc_cn/_images/cifar.png | Bin 466572 -> 0 bytes doc_cn/_images/curve.jpg | Bin 53277 -> 0 bytes .../encoder-decoder-attention-model1.png | Bin 68089 -> 0 bytes doc_cn/_images/feature.jpg | Bin 31204 -> 0 bytes .../graph_construction_example_all.png | Bin 0 -> 57513 bytes ..._construction_example_forward_backward.png | Bin 0 -> 50107 bytes ...raph_construction_example_forward_only.png | Bin 0 -> 30790 bytes doc_cn/_images/image_classification.png | Bin 52635 -> 0 bytes doc_cn/_images/lenet.png | Bin 49835 -> 0 bytes doc_cn/_images/lstm.png | Bin 50694 -> 0 bytes doc_cn/_images/network_arch.png | Bin 27822 -> 0 bytes doc_cn/_images/paddleci.png | Bin 0 -> 40242 bytes doc_cn/_images/parameters.png | Bin 44469 -> 0 bytes doc_cn/_images/plot.png | Bin 31006 -> 0 bytes doc_cn/_images/pprof_1.png | Bin 0 -> 352710 bytes doc_cn/_images/pprof_2.png | Bin 0 -> 194000 bytes doc_cn/_images/rec_regression_network.png | Bin 83127 -> 0 bytes doc_cn/_images/stacked_lstm.jpg | Bin 31077 -> 0 bytes doc_cn/_sources/about/index_cn.md.txt | 11 - doc_cn/_sources/api/v1/index_cn.rst.txt | 2 +- .../activations.rst.txt | 108 - .../v1/trainer_config_helpers/attrs.rst.txt | 5 - .../data_sources.rst.txt | 7 - .../trainer_config_helpers/evaluators.rst.txt | 108 - .../v1/trainer_config_helpers/layers.rst.txt | 508 -- .../trainer_config_helpers/networks.rst.txt | 123 - .../trainer_config_helpers/optimizers.rst.txt | 61 - .../trainer_config_helpers/poolings.rst.txt | 33 - .../_sources/api/v2/config/activation.rst.txt | 7 + .../_sources/api/v2/config/evaluators.rst.txt | 110 + doc_cn/_sources/api/v2/config/layer.rst.txt | 159 +- .../_sources/api/v2/config/networks.rst.txt | 27 +- doc_cn/_sources/api/v2/data.rst.txt | 113 +- .../_sources/api/v2/data/data_reader.rst.txt | 36 + doc_cn/_sources/api/v2/data/dataset.rst.txt | 75 + doc_cn/_sources/api/v2/data/image.rst.txt | 5 + doc_cn/_sources/api/v2/fluid.rst.txt | 18 + .../_sources/api/v2/fluid/data_feeder.rst.txt | 9 + .../_sources/api/v2/fluid/evaluator.rst.txt | 9 + doc_cn/_sources/api/v2/fluid/executor.rst.txt | 9 + .../_sources/api/v2/fluid/initializer.rst.txt | 50 + doc_cn/_sources/api/v2/fluid/layers.rst.txt | 302 + doc_cn/_sources/api/v2/fluid/nets.rst.txt | 22 + .../_sources/api/v2/fluid/optimizer.rst.txt | 54 + .../_sources/api/v2/fluid/param_attr.rst.txt | 11 + doc_cn/_sources/api/v2/fluid/profiler.rst.txt | 10 + .../_sources/api/v2/fluid/regularizer.rst.txt | 25 + doc_cn/_sources/api/v2/model_configs.rst.txt | 1 + doc_cn/_sources/design/api.md.txt | 4 +- .../design/auto_gradient_check.md.txt | 146 + doc_cn/_sources/design/block.md.txt | 336 ++ .../design/build_system/README.md.txt | 152 + .../design/cluster_train}/README.md.txt | 66 +- .../design/cluster_train/checkpointing.md.txt | 44 + .../design/cluster_train/data_dispatch.md.txt | 160 + .../large_model_dist_train.md.txt | 101 + .../design/cluster_train/master_server.md.txt | 91 + .../cluster_train/pserver_client.md.txt | 171 + .../remote_parameter_updater.md.txt | 21 + .../design/cluster_train/save_model.md.txt | 111 + .../design/cluster_train/submit-job.md.txt | 127 + doc_cn/_sources/design/evaluator.md.txt | 58 + doc_cn/_sources/design/executor.md.txt | 23 + .../design/file_manager/README.md.txt | 87 + .../design/file_manager/pfs/pfsclient.md.txt | 129 + doc_cn/_sources/design/float16.md.txt | 105 + .../design/functions_operators_layers.md.txt | 100 + doc_cn/_sources/design/gan_api.md.txt | 253 + doc_cn/_sources/design/graph.md.txt | 70 + doc_cn/_sources/design/graph_survey.md.txt | 232 + doc_cn/_sources/design/if_else_op.md.txt | 51 + doc_cn/_sources/design/infer_var_type.md.txt | 78 + doc_cn/_sources/design/model_format.md.txt | 36 + .../00.why_plain_c.md.txt | 20 +- .../01.inference_implementation.md.txt | 131 + doc_cn/_sources/design/ops/rnn.md.txt | 153 + .../design/ops/sequence_decoder.md.txt | 229 + doc_cn/_sources/design/optimizer.md.txt | 91 + .../_sources/design/parameter_average.md.txt | 72 + .../_sources/design/parameters_in_cpp.md.txt | 41 + doc_cn/_sources/design/program.md.txt | 139 + doc_cn/_sources/design/prune.md.txt | 63 + doc_cn/_sources/design/python_api.md.txt | 284 + doc_cn/_sources/design/reader/README.md.txt | 72 +- .../refactor/distributed_architecture.md.txt | 144 + .../design/refactor/parameter_server.md.txt | 106 + .../_sources/design/refactor/session.md.txt | 180 + doc_cn/_sources/design/refactorization.md.txt | 249 + .../_sources/design/register_grad_op.md.txt | 92 + doc_cn/_sources/design/regularization.md.txt | 72 + .../_sources/design/releasing_process.md.txt | 68 + doc_cn/_sources/design/scope.md.txt | 124 + doc_cn/_sources/design/selected_rows.md.txt | 74 + .../_sources/design/simple_op_design.md.txt | 202 + doc_cn/_sources/design/tensor_array.md.txt | 271 + doc_cn/_sources/design/var_desc.md.txt | 69 + .../faq/build_and_install/index_cn.rst.txt | 111 + doc_cn/_sources/faq/cluster/index_cn.rst.txt | 17 + doc_cn/_sources/faq/index_cn.rst.txt | 306 +- doc_cn/_sources/faq/local/index_cn.rst.txt | 213 + doc_cn/_sources/faq/model/index_cn.rst.txt | 69 + .../_sources/faq/parameter/index_cn.rst.txt | 201 + .../getstarted/basic_usage/index_cn.rst.txt | 108 - .../build_from_source_cn.rst.txt | 141 + .../cmake/build_from_source_cn.rst.txt | 43 - .../docker_install_cn.rst.txt | 206 +- .../build_and_install/index_cn.rst.txt | 18 +- .../build_and_install/pip_install_cn.rst.txt | 86 + .../ubuntu_install_cn.rst.txt | 71 - .../concepts/use_concepts_cn.rst.txt | 8 +- doc_cn/_sources/getstarted/index_cn.rst.txt | 55 +- .../rnn/hierarchical_layer_cn.rst.txt | 16 +- .../rnn/hrnn_rnn_api_compare_cn.rst.txt | 2 +- .../howto/deep_model/rnn/index_cn.rst.txt | 1 + .../deep_model/rnn/rnn_config_cn.rst.txt | 199 +- doc_cn/_sources/howto/dev/build_cn.md.txt | 124 + .../howto/dev/contribute_to_paddle_cn.md.txt | 22 +- .../_sources/howto/dev/new_layer_cn.rst.txt | 2 +- doc_cn/_sources/howto/dev/new_op_cn.md.txt | 332 ++ doc_cn/_sources/howto/dev/use_eigen_cn.md.txt | 146 + .../_sources/howto/dev/write_docs_cn.rst.txt | 109 +- doc_cn/_sources/howto/index_cn.rst.txt | 2 +- .../howto/optimization/cpu_profiling.md.txt | 197 + .../optimization/cpu_profiling_cn.md.txt | 155 + .../usage/cluster/cluster_train_cn.md.txt | 322 +- .../usage/cmd_parameter/arguments_cn.md.txt | 2 +- .../howto/usage/k8s/k8s_distributed_cn.md.txt | 2 +- doc_cn/_sources/index_cn.rst.txt | 1 + .../cross_compiling_for_android_cn.md.txt | 168 + .../mobile/cross_compiling_for_ios_cn.md.txt | 117 + .../cross_compiling_for_raspberry_cn.md.txt | 62 + doc_cn/_sources/mobile/index_cn.rst.txt | 9 + .../survey/cluster_bootstrapping_tools.md.txt | 71 + .../image_classification/index_cn.md.txt | 205 - doc_cn/_sources/tutorials/index_cn.md.txt | 13 - .../tutorials/rec/ml_dataset_cn.md.txt | 105 - .../tutorials/rec/ml_regression_cn.rst.txt | 349 -- .../semantic_role_labeling/index_cn.md.txt | 201 - .../sentiment_analysis/index_cn.md.txt | 325 - .../tutorials/text_generation/index_cn.md.txt | 339 -- .../_sources/v1_api_tutorials/README.md.txt | 5 + .../embedding_model/index_cn.md.txt | 0 .../imagenet_model/resnet_model_cn.md.txt | 0 .../quick_start/index_cn.rst.txt | 0 doc_cn/api/index_cn.html | 38 +- .../api/v1/data_provider/dataprovider_cn.html | 38 +- .../v1/data_provider/pydataprovider2_cn.html | 38 +- doc_cn/api/v1/index_cn.html | 48 +- doc_cn/api/v1/predict/swig_py_paddle_cn.html | 38 +- .../api/v1/trainer_config_helpers/layers.html | 3523 ----------- .../v1/trainer_config_helpers/networks.html | 957 --- .../v1/trainer_config_helpers/optimizers.html | 482 -- doc_cn/api/v2/config/activation.html | 49 +- doc_cn/api/v2/config/attr.html | 58 +- .../config}/evaluators.html | 398 +- doc_cn/api/v2/config/layer.html | 2699 ++++++--- doc_cn/api/v2/config/networks.html | 679 ++- doc_cn/api/v2/config/optimizer.html | 87 +- doc_cn/api/v2/config/pooling.html | 38 +- doc_cn/api/v2/data.html | 1116 +--- doc_cn/api/v2/data/data_reader.html | 966 +++ doc_cn/api/v2/data/dataset.html | 796 +++ doc_cn/api/v2/data/image.html | 549 ++ doc_cn/api/v2/fluid.html | 282 + doc_cn/api/v2/fluid/data_feeder.html | 271 + .../attrs.html => v2/fluid/evaluator.html} | 164 +- .../poolings.html => v2/fluid/executor.html} | 108 +- .../fluid/initializer.html} | 236 +- doc_cn/api/v2/fluid/layers.html | 1124 ++++ doc_cn/api/v2/fluid/nets.html | 293 + doc_cn/api/v2/fluid/optimizer.html | 370 ++ doc_cn/api/v2/fluid/param_attr.html | 271 + .../fluid/profiler.html} | 116 +- doc_cn/api/v2/fluid/regularizer.html | 301 + doc_cn/api/v2/model_configs.html | 39 +- doc_cn/api/v2/run_logic.html | 208 +- doc_cn/design/api.html | 42 +- doc_cn/design/auto_gradient_check.html | 432 ++ doc_cn/design/block.html | 572 ++ doc_cn/design/build_system/README.html | 414 ++ .../{dist => cluster_train}/README.html | 96 +- .../design/cluster_train/checkpointing.html | 318 + .../design/cluster_train/data_dispatch.html | 419 ++ .../cluster_train/large_model_dist_train.html | 356 ++ .../design/cluster_train/master_server.html | 354 ++ .../design/cluster_train/pserver_client.html | 431 ++ .../remote_parameter_updater.html} | 153 +- doc_cn/design/cluster_train/save_model.html | 373 ++ doc_cn/design/cluster_train/submit-job.html | 402 ++ doc_cn/design/evaluator.html | 325 + doc_cn/design/executor.html | 289 + doc_cn/design/file_manager/README.html | 378 ++ doc_cn/design/file_manager/pfs/pfsclient.html | 404 ++ doc_cn/design/float16.html | 383 ++ doc_cn/design/functions_operators_layers.html | 344 ++ doc_cn/design/gan_api.html | 531 ++ doc_cn/design/graph.html | 325 + doc_cn/design/graph_survey.html | 458 ++ doc_cn/design/if_else_op.html | 314 + doc_cn/design/infer_var_type.html | 331 ++ doc_cn/design/model_format.html | 298 + .../{why_plain_c.html => 00.why_plain_c.html} | 58 +- .../01.inference_implementation.html | 403 ++ doc_cn/design/ops/rnn.html | 399 ++ doc_cn/design/ops/sequence_decoder.html | 474 ++ doc_cn/design/optimizer.html | 354 ++ doc_cn/design/parameter_average.html | 344 ++ doc_cn/design/parameters_in_cpp.html | 303 + doc_cn/design/program.html | 391 ++ doc_cn/design/prune.html | 325 + doc_cn/design/python_api.html | 522 ++ doc_cn/design/reader/README.html | 115 +- .../refactor/distributed_architecture.html | 381 ++ doc_cn/design/refactor/parameter_server.html | 371 ++ doc_cn/design/refactor/session.html | 429 ++ doc_cn/design/refactorization.html | 596 ++ doc_cn/design/register_grad_op.html | 341 ++ doc_cn/design/regularization.html | 333 ++ doc_cn/design/releasing_process.html | 357 ++ doc_cn/design/scope.html | 386 ++ doc_cn/design/selected_rows.html | 332 ++ doc_cn/design/simple_op_design.html | 454 ++ doc_cn/design/tensor_array.html | 516 ++ doc_cn/design/var_desc.html | 330 ++ doc_cn/faq/build_and_install/index_cn.html | 382 ++ .../cluster/index_cn.html} | 129 +- doc_cn/faq/index_cn.html | 387 +- doc_cn/faq/local/index_cn.html | 531 ++ doc_cn/faq/model/index_cn.html | 368 ++ doc_cn/faq/parameter/index_cn.html | 452 ++ doc_cn/genindex.html | 108 +- doc_cn/getstarted/basic_usage/index_cn.html | 336 -- .../build_from_source_cn.html | 470 ++ .../cmake/build_from_source_cn.html | 377 -- .../build_and_install/docker_install_cn.html | 250 +- .../build_and_install/index_cn.html | 57 +- .../build_and_install/pip_install_cn.html | 411 ++ .../getstarted/concepts/use_concepts_cn.html | 52 +- doc_cn/getstarted/index_cn.html | 88 +- .../deep_model/rnn/hierarchical_layer_cn.html | 56 +- .../rnn/hrnn_rnn_api_compare_cn.html | 42 +- doc_cn/howto/deep_model/rnn/index_cn.html | 47 +- .../deep_model/rnn/recurrent_group_cn.html | 42 +- .../howto/deep_model/rnn/rnn_config_cn.html | 260 +- doc_cn/howto/dev/build_cn.html | 387 ++ doc_cn/howto/dev/contribute_to_paddle_cn.html | 79 +- doc_cn/howto/dev/new_layer_cn.html | 40 +- doc_cn/howto/dev/new_op_cn.html | 574 ++ doc_cn/howto/dev/use_eigen_cn.html | 393 ++ doc_cn/howto/dev/write_docs_cn.html | 142 +- doc_cn/howto/index_cn.html | 42 +- doc_cn/howto/optimization/cpu_profiling.html | 434 ++ .../howto/optimization/cpu_profiling_cn.html | 387 ++ .../howto/optimization/gpu_profiling_cn.html | 38 +- .../howto/usage/cluster/cluster_train_cn.html | 385 +- .../usage/cmd_parameter/arguments_cn.html | 40 +- .../cmd_parameter/detail_introduction_cn.html | 42 +- .../howto/usage/cmd_parameter/index_cn.html | 38 +- .../usage/cmd_parameter/use_case_cn.html | 38 +- doc_cn/howto/usage/k8s/k8s_basis_cn.html | 42 +- doc_cn/howto/usage/k8s/k8s_cn.html | 38 +- .../howto/usage/k8s/k8s_distributed_cn.html | 44 +- .../howto/usage/k8s/src/k8s_data/README.html | 38 +- .../howto/usage/k8s/src/k8s_train/README.html | 38 +- doc_cn/index_cn.html | 39 +- .../cross_compiling_for_android_cn.html | 449 ++ doc_cn/mobile/cross_compiling_for_ios_cn.html | 396 ++ .../cross_compiling_for_raspberry_cn.html | 327 + doc_cn/{about => mobile}/index_cn.html | 75 +- doc_cn/objects.inv | Bin 2782 -> 4122 bytes doc_cn/py-modindex.html | 42 +- doc_cn/search.html | 38 +- doc_cn/searchindex.js | 2 +- .../survey/cluster_bootstrapping_tools.html | 370 ++ .../image_classification/index_cn.html | 432 -- doc_cn/tutorials/rec/ml_regression_cn.html | 854 --- .../semantic_role_labeling/index_cn.html | 440 -- .../sentiment_analysis/index_cn.html | 549 -- .../tutorials/text_generation/index_cn.html | 602 -- .../README.html} | 68 +- .../embedding_model/index_cn.html | 40 +- .../imagenet_model/resnet_model_cn.html | 38 +- .../quick_start/index_cn.html | 178 +- 545 files changed, 88882 insertions(+), 32440 deletions(-) delete mode 100644 doc/_images/bi_lstm1.jpg delete mode 100644 doc/_images/cifar.png delete mode 100644 doc/_images/curve.jpg delete mode 100644 doc/_images/encoder-decoder-attention-model1.png delete mode 100644 doc/_images/feature.jpg create mode 100644 doc/_images/graph_construction_example_all.png create mode 100644 doc/_images/graph_construction_example_forward_backward.png create mode 100644 doc/_images/graph_construction_example_forward_only.png delete mode 100644 doc/_images/image_classification.png delete mode 100644 doc/_images/lenet.png delete mode 100644 doc/_images/lstm.png delete mode 100644 doc/_images/network_arch.png create mode 100644 doc/_images/paddleci.png delete mode 100644 doc/_images/parameters.png delete mode 100644 doc/_images/plot.png create mode 100644 doc/_images/pprof_1.png create mode 100644 doc/_images/pprof_2.png delete mode 100644 doc/_images/rec_regression_network.png delete mode 100644 doc/_images/stacked_lstm.jpg delete mode 100644 doc/_sources/about/index_en.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/activations.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/attrs.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/data_sources.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/evaluators.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/layers.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/networks.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/optimizers.rst.txt delete mode 100644 doc/_sources/api/v1/trainer_config_helpers/poolings.rst.txt create mode 100644 doc/_sources/api/v2/config/evaluators.rst.txt create mode 100644 doc/_sources/api/v2/data/data_reader.rst.txt create mode 100644 doc/_sources/api/v2/data/dataset.rst.txt create mode 100644 doc/_sources/api/v2/data/image.rst.txt create mode 100644 doc/_sources/api/v2/fluid.rst.txt create mode 100644 doc/_sources/api/v2/fluid/data_feeder.rst.txt create mode 100644 doc/_sources/api/v2/fluid/evaluator.rst.txt create mode 100644 doc/_sources/api/v2/fluid/executor.rst.txt create mode 100644 doc/_sources/api/v2/fluid/initializer.rst.txt create mode 100644 doc/_sources/api/v2/fluid/layers.rst.txt create mode 100644 doc/_sources/api/v2/fluid/nets.rst.txt create mode 100644 doc/_sources/api/v2/fluid/optimizer.rst.txt create mode 100644 doc/_sources/api/v2/fluid/param_attr.rst.txt create mode 100644 doc/_sources/api/v2/fluid/profiler.rst.txt create mode 100644 doc/_sources/api/v2/fluid/regularizer.rst.txt create mode 100644 doc/_sources/design/auto_gradient_check.md.txt create mode 100644 doc/_sources/design/block.md.txt create mode 100644 doc/_sources/design/build_system/README.md.txt rename {doc_cn/_sources/design/dist => doc/_sources/design/cluster_train}/README.md.txt (62%) create mode 100644 doc/_sources/design/cluster_train/checkpointing.md.txt create mode 100644 doc/_sources/design/cluster_train/data_dispatch.md.txt create mode 100644 doc/_sources/design/cluster_train/large_model_dist_train.md.txt create mode 100644 doc/_sources/design/cluster_train/master_server.md.txt create mode 100644 doc/_sources/design/cluster_train/pserver_client.md.txt create mode 100644 doc/_sources/design/cluster_train/remote_parameter_updater.md.txt create mode 100644 doc/_sources/design/cluster_train/save_model.md.txt create mode 100644 doc/_sources/design/cluster_train/submit-job.md.txt create mode 100644 doc/_sources/design/evaluator.md.txt create mode 100644 doc/_sources/design/executor.md.txt create mode 100644 doc/_sources/design/file_manager/README.md.txt create mode 100644 doc/_sources/design/file_manager/pfs/pfsclient.md.txt create mode 100644 doc/_sources/design/float16.md.txt create mode 100644 doc/_sources/design/functions_operators_layers.md.txt create mode 100644 doc/_sources/design/gan_api.md.txt create mode 100644 doc/_sources/design/graph.md.txt create mode 100644 doc/_sources/design/graph_survey.md.txt create mode 100644 doc/_sources/design/if_else_op.md.txt create mode 100644 doc/_sources/design/infer_var_type.md.txt create mode 100644 doc/_sources/design/model_format.md.txt rename doc_cn/_sources/design/multi_language_interface/why_plain_c.md.txt => doc/_sources/design/multi_language_interface/00.why_plain_c.md.txt (94%) create mode 100644 doc/_sources/design/multi_language_interface/01.inference_implementation.md.txt create mode 100644 doc/_sources/design/ops/rnn.md.txt create mode 100644 doc/_sources/design/ops/sequence_decoder.md.txt create mode 100644 doc/_sources/design/optimizer.md.txt create mode 100644 doc/_sources/design/parameter_average.md.txt create mode 100644 doc/_sources/design/parameters_in_cpp.md.txt create mode 100644 doc/_sources/design/program.md.txt create mode 100644 doc/_sources/design/prune.md.txt create mode 100644 doc/_sources/design/python_api.md.txt create mode 100644 doc/_sources/design/refactor/distributed_architecture.md.txt create mode 100644 doc/_sources/design/refactor/parameter_server.md.txt create mode 100644 doc/_sources/design/refactor/session.md.txt create mode 100644 doc/_sources/design/refactorization.md.txt create mode 100644 doc/_sources/design/register_grad_op.md.txt create mode 100644 doc/_sources/design/regularization.md.txt create mode 100644 doc/_sources/design/releasing_process.md.txt create mode 100644 doc/_sources/design/scope.md.txt create mode 100644 doc/_sources/design/selected_rows.md.txt create mode 100644 doc/_sources/design/simple_op_design.md.txt create mode 100644 doc/_sources/design/tensor_array.md.txt create mode 100644 doc/_sources/design/var_desc.md.txt delete mode 100644 doc/_sources/getstarted/basic_usage/index_en.rst.txt delete mode 100644 doc/_sources/getstarted/build_and_install/build_from_source_en.md.txt create mode 100644 doc/_sources/getstarted/build_and_install/build_from_source_en.rst.txt create mode 100644 doc/_sources/getstarted/build_and_install/pip_install_en.rst.txt delete mode 100644 doc/_sources/getstarted/build_and_install/ubuntu_install_en.rst.txt create mode 100644 doc/_sources/howto/dev/build_en.md.txt create mode 100644 doc/_sources/howto/dev/new_op_en.md.txt create mode 100644 doc/_sources/howto/dev/use_eigen_en.md.txt create mode 100644 doc/_sources/howto/dev/write_docs_en.rst.txt create mode 100644 doc/_sources/howto/optimization/cpu_profiling.md.txt create mode 100644 doc/_sources/mobile/cross_compiling_for_android_en.md.txt create mode 100644 doc/_sources/mobile/cross_compiling_for_raspberry_en.md.txt create mode 100644 doc/_sources/mobile/index_en.rst.txt create mode 100644 doc/_sources/survey/cluster_bootstrapping_tools.md.txt delete mode 100644 doc/_sources/tutorials/image_classification/index_en.md.txt delete mode 100644 doc/_sources/tutorials/index_en.md.txt delete mode 100644 doc/_sources/tutorials/rec/ml_dataset_en.md.txt delete mode 100644 doc/_sources/tutorials/rec/ml_regression_en.rst.txt delete mode 100644 doc/_sources/tutorials/semantic_role_labeling/index_en.md.txt delete mode 100644 doc/_sources/tutorials/sentiment_analysis/index_en.md.txt delete mode 100644 doc/_sources/tutorials/text_generation/index_en.md.txt create mode 100644 doc/_sources/v1_api_tutorials/README.md.txt rename doc/_sources/{tutorials => v1_api_tutorials}/embedding_model/index_en.md.txt (100%) rename doc/_sources/{tutorials => v1_api_tutorials}/gan/index_en.md.txt (100%) rename doc/_sources/{tutorials => v1_api_tutorials}/imagenet_model/resnet_model_en.md.txt (100%) rename doc/_sources/{tutorials => v1_api_tutorials}/quick_start/index_en.md.txt (100%) delete mode 100644 doc/api/v1/trainer_config_helpers/activations.html delete mode 100644 doc/api/v1/trainer_config_helpers/layers.html delete mode 100644 doc/api/v1/trainer_config_helpers/networks.html delete mode 100644 doc/api/v1/trainer_config_helpers/optimizers.html rename doc/api/{v1/trainer_config_helpers => v2/config}/evaluators.html (53%) create mode 100644 doc/api/v2/data/data_reader.html create mode 100644 doc/api/v2/data/dataset.html create mode 100644 doc/api/v2/data/image.html rename doc/{getstarted/build_and_install/ubuntu_install_en.html => api/v2/fluid.html} (57%) rename doc/api/{v1/trainer_config_helpers/data_sources.html => v2/fluid/data_feeder.html} (56%) rename doc/api/{v1/trainer_config_helpers/attrs.html => v2/fluid/evaluator.html} (50%) rename doc/api/{v1/trainer_config_helpers/poolings.html => v2/fluid/executor.html} (60%) create mode 100644 doc/api/v2/fluid/initializer.html create mode 100644 doc/api/v2/fluid/layers.html create mode 100644 doc/api/v2/fluid/nets.html create mode 100644 doc/api/v2/fluid/optimizer.html create mode 100644 doc/api/v2/fluid/param_attr.html create mode 100644 doc/api/v2/fluid/profiler.html create mode 100644 doc/api/v2/fluid/regularizer.html create mode 100644 doc/design/auto_gradient_check.html create mode 100644 doc/design/block.html create mode 100644 doc/design/build_system/README.html rename doc/design/{dist => cluster_train}/README.html (70%) create mode 100644 doc/design/cluster_train/checkpointing.html create mode 100644 doc/design/cluster_train/data_dispatch.html create mode 100644 doc/design/cluster_train/large_model_dist_train.html create mode 100644 doc/design/cluster_train/master_server.html create mode 100644 doc/design/cluster_train/pserver_client.html rename doc/{tutorials/rec/ml_dataset_en.html => design/cluster_train/remote_parameter_updater.html} (58%) create mode 100644 doc/design/cluster_train/save_model.html create mode 100644 doc/design/cluster_train/submit-job.html create mode 100644 doc/design/evaluator.html create mode 100644 doc/design/executor.html create mode 100644 doc/design/file_manager/README.html create mode 100644 doc/design/file_manager/pfs/pfsclient.html create mode 100644 doc/design/float16.html create mode 100644 doc/design/functions_operators_layers.html create mode 100644 doc/design/gan_api.html create mode 100644 doc/design/graph.html create mode 100644 doc/design/graph_survey.html create mode 100644 doc/design/if_else_op.html create mode 100644 doc/design/infer_var_type.html create mode 100644 doc/design/model_format.html rename doc/design/multi_language_interface/{why_plain_c.html => 00.why_plain_c.html} (82%) create mode 100644 doc/design/multi_language_interface/01.inference_implementation.html create mode 100644 doc/design/ops/rnn.html create mode 100644 doc/design/ops/sequence_decoder.html create mode 100644 doc/design/optimizer.html create mode 100644 doc/design/parameter_average.html create mode 100644 doc/design/parameters_in_cpp.html create mode 100644 doc/design/program.html create mode 100644 doc/design/prune.html create mode 100644 doc/design/python_api.html create mode 100644 doc/design/refactor/distributed_architecture.html create mode 100644 doc/design/refactor/parameter_server.html create mode 100644 doc/design/refactor/session.html create mode 100644 doc/design/refactorization.html create mode 100644 doc/design/register_grad_op.html create mode 100644 doc/design/regularization.html create mode 100644 doc/design/releasing_process.html create mode 100644 doc/design/scope.html create mode 100644 doc/design/selected_rows.html create mode 100644 doc/design/simple_op_design.html create mode 100644 doc/design/tensor_array.html create mode 100644 doc/design/var_desc.html delete mode 100644 doc/getstarted/basic_usage/index_en.html create mode 100644 doc/getstarted/build_and_install/pip_install_en.html create mode 100644 doc/howto/dev/build_en.html create mode 100644 doc/howto/dev/new_op_en.html create mode 100644 doc/howto/dev/use_eigen_en.html create mode 100644 doc/howto/dev/write_docs_en.html create mode 100644 doc/howto/optimization/cpu_profiling.html create mode 100644 doc/mobile/cross_compiling_for_android_en.html create mode 100644 doc/mobile/cross_compiling_for_raspberry_en.html rename doc/{about => mobile}/index_en.html (67%) create mode 100644 doc/operators.json create mode 100644 doc/survey/cluster_bootstrapping_tools.html delete mode 100644 doc/tutorials/image_classification/index_en.html delete mode 100644 doc/tutorials/rec/ml_regression_en.html delete mode 100644 doc/tutorials/semantic_role_labeling/index_en.html delete mode 100644 doc/tutorials/sentiment_analysis/index_en.html delete mode 100644 doc/tutorials/text_generation/index_en.html rename doc/{tutorials/index_en.html => v1_api_tutorials/README.html} (68%) rename doc/{tutorials => v1_api_tutorials}/embedding_model/index_en.html (88%) rename doc/{tutorials => v1_api_tutorials}/gan/index_en.html (89%) rename doc/{tutorials => v1_api_tutorials}/imagenet_model/resnet_model_en.html (91%) rename doc/{tutorials => v1_api_tutorials}/quick_start/index_en.html (94%) delete mode 100644 doc_cn/_images/bi_lstm1.jpg delete mode 100644 doc_cn/_images/cifar.png delete mode 100644 doc_cn/_images/curve.jpg delete mode 100644 doc_cn/_images/encoder-decoder-attention-model1.png delete mode 100644 doc_cn/_images/feature.jpg create mode 100644 doc_cn/_images/graph_construction_example_all.png create mode 100644 doc_cn/_images/graph_construction_example_forward_backward.png create mode 100644 doc_cn/_images/graph_construction_example_forward_only.png delete mode 100644 doc_cn/_images/image_classification.png delete mode 100644 doc_cn/_images/lenet.png delete mode 100644 doc_cn/_images/lstm.png delete mode 100644 doc_cn/_images/network_arch.png create mode 100644 doc_cn/_images/paddleci.png delete mode 100644 doc_cn/_images/parameters.png delete mode 100644 doc_cn/_images/plot.png create mode 100644 doc_cn/_images/pprof_1.png create mode 100644 doc_cn/_images/pprof_2.png delete mode 100644 doc_cn/_images/rec_regression_network.png delete mode 100644 doc_cn/_images/stacked_lstm.jpg delete mode 100644 doc_cn/_sources/about/index_cn.md.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/activations.rst.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/attrs.rst.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/data_sources.rst.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/evaluators.rst.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/layers.rst.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/networks.rst.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/optimizers.rst.txt delete mode 100644 doc_cn/_sources/api/v1/trainer_config_helpers/poolings.rst.txt create mode 100644 doc_cn/_sources/api/v2/config/evaluators.rst.txt create mode 100644 doc_cn/_sources/api/v2/data/data_reader.rst.txt create mode 100644 doc_cn/_sources/api/v2/data/dataset.rst.txt create mode 100644 doc_cn/_sources/api/v2/data/image.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/data_feeder.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/evaluator.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/executor.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/initializer.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/layers.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/nets.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/optimizer.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/param_attr.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/profiler.rst.txt create mode 100644 doc_cn/_sources/api/v2/fluid/regularizer.rst.txt create mode 100644 doc_cn/_sources/design/auto_gradient_check.md.txt create mode 100644 doc_cn/_sources/design/block.md.txt create mode 100644 doc_cn/_sources/design/build_system/README.md.txt rename {doc/_sources/design/dist => doc_cn/_sources/design/cluster_train}/README.md.txt (62%) create mode 100644 doc_cn/_sources/design/cluster_train/checkpointing.md.txt create mode 100644 doc_cn/_sources/design/cluster_train/data_dispatch.md.txt create mode 100644 doc_cn/_sources/design/cluster_train/large_model_dist_train.md.txt create mode 100644 doc_cn/_sources/design/cluster_train/master_server.md.txt create mode 100644 doc_cn/_sources/design/cluster_train/pserver_client.md.txt create mode 100644 doc_cn/_sources/design/cluster_train/remote_parameter_updater.md.txt create mode 100644 doc_cn/_sources/design/cluster_train/save_model.md.txt create mode 100644 doc_cn/_sources/design/cluster_train/submit-job.md.txt create mode 100644 doc_cn/_sources/design/evaluator.md.txt create mode 100644 doc_cn/_sources/design/executor.md.txt create mode 100644 doc_cn/_sources/design/file_manager/README.md.txt create mode 100644 doc_cn/_sources/design/file_manager/pfs/pfsclient.md.txt create mode 100644 doc_cn/_sources/design/float16.md.txt create mode 100644 doc_cn/_sources/design/functions_operators_layers.md.txt create mode 100644 doc_cn/_sources/design/gan_api.md.txt create mode 100644 doc_cn/_sources/design/graph.md.txt create mode 100644 doc_cn/_sources/design/graph_survey.md.txt create mode 100644 doc_cn/_sources/design/if_else_op.md.txt create mode 100644 doc_cn/_sources/design/infer_var_type.md.txt create mode 100644 doc_cn/_sources/design/model_format.md.txt rename doc/_sources/design/multi_language_interface/why_plain_c.md.txt => doc_cn/_sources/design/multi_language_interface/00.why_plain_c.md.txt (94%) create mode 100644 doc_cn/_sources/design/multi_language_interface/01.inference_implementation.md.txt create mode 100644 doc_cn/_sources/design/ops/rnn.md.txt create mode 100644 doc_cn/_sources/design/ops/sequence_decoder.md.txt create mode 100644 doc_cn/_sources/design/optimizer.md.txt create mode 100644 doc_cn/_sources/design/parameter_average.md.txt create mode 100644 doc_cn/_sources/design/parameters_in_cpp.md.txt create mode 100644 doc_cn/_sources/design/program.md.txt create mode 100644 doc_cn/_sources/design/prune.md.txt create mode 100644 doc_cn/_sources/design/python_api.md.txt create mode 100644 doc_cn/_sources/design/refactor/distributed_architecture.md.txt create mode 100644 doc_cn/_sources/design/refactor/parameter_server.md.txt create mode 100644 doc_cn/_sources/design/refactor/session.md.txt create mode 100644 doc_cn/_sources/design/refactorization.md.txt create mode 100644 doc_cn/_sources/design/register_grad_op.md.txt create mode 100644 doc_cn/_sources/design/regularization.md.txt create mode 100644 doc_cn/_sources/design/releasing_process.md.txt create mode 100644 doc_cn/_sources/design/scope.md.txt create mode 100644 doc_cn/_sources/design/selected_rows.md.txt create mode 100644 doc_cn/_sources/design/simple_op_design.md.txt create mode 100644 doc_cn/_sources/design/tensor_array.md.txt create mode 100644 doc_cn/_sources/design/var_desc.md.txt create mode 100644 doc_cn/_sources/faq/build_and_install/index_cn.rst.txt create mode 100644 doc_cn/_sources/faq/cluster/index_cn.rst.txt create mode 100644 doc_cn/_sources/faq/local/index_cn.rst.txt create mode 100644 doc_cn/_sources/faq/model/index_cn.rst.txt create mode 100644 doc_cn/_sources/faq/parameter/index_cn.rst.txt delete mode 100644 doc_cn/_sources/getstarted/basic_usage/index_cn.rst.txt create mode 100644 doc_cn/_sources/getstarted/build_and_install/build_from_source_cn.rst.txt delete mode 100644 doc_cn/_sources/getstarted/build_and_install/cmake/build_from_source_cn.rst.txt create mode 100644 doc_cn/_sources/getstarted/build_and_install/pip_install_cn.rst.txt delete mode 100644 doc_cn/_sources/getstarted/build_and_install/ubuntu_install_cn.rst.txt create mode 100644 doc_cn/_sources/howto/dev/build_cn.md.txt create mode 100644 doc_cn/_sources/howto/dev/new_op_cn.md.txt create mode 100644 doc_cn/_sources/howto/dev/use_eigen_cn.md.txt create mode 100644 doc_cn/_sources/howto/optimization/cpu_profiling.md.txt create mode 100644 doc_cn/_sources/howto/optimization/cpu_profiling_cn.md.txt create mode 100644 doc_cn/_sources/mobile/cross_compiling_for_android_cn.md.txt create mode 100644 doc_cn/_sources/mobile/cross_compiling_for_ios_cn.md.txt create mode 100644 doc_cn/_sources/mobile/cross_compiling_for_raspberry_cn.md.txt create mode 100644 doc_cn/_sources/mobile/index_cn.rst.txt create mode 100644 doc_cn/_sources/survey/cluster_bootstrapping_tools.md.txt delete mode 100644 doc_cn/_sources/tutorials/image_classification/index_cn.md.txt delete mode 100644 doc_cn/_sources/tutorials/index_cn.md.txt delete mode 100644 doc_cn/_sources/tutorials/rec/ml_dataset_cn.md.txt delete mode 100644 doc_cn/_sources/tutorials/rec/ml_regression_cn.rst.txt delete mode 100644 doc_cn/_sources/tutorials/semantic_role_labeling/index_cn.md.txt delete mode 100644 doc_cn/_sources/tutorials/sentiment_analysis/index_cn.md.txt delete mode 100644 doc_cn/_sources/tutorials/text_generation/index_cn.md.txt create mode 100644 doc_cn/_sources/v1_api_tutorials/README.md.txt rename doc_cn/_sources/{tutorials => v1_api_tutorials}/embedding_model/index_cn.md.txt (100%) rename doc_cn/_sources/{tutorials => v1_api_tutorials}/imagenet_model/resnet_model_cn.md.txt (100%) rename doc_cn/_sources/{tutorials => v1_api_tutorials}/quick_start/index_cn.rst.txt (100%) delete mode 100644 doc_cn/api/v1/trainer_config_helpers/layers.html delete mode 100644 doc_cn/api/v1/trainer_config_helpers/networks.html delete mode 100644 doc_cn/api/v1/trainer_config_helpers/optimizers.html rename doc_cn/api/{v1/trainer_config_helpers => v2/config}/evaluators.html (55%) create mode 100644 doc_cn/api/v2/data/data_reader.html create mode 100644 doc_cn/api/v2/data/dataset.html create mode 100644 doc_cn/api/v2/data/image.html create mode 100644 doc_cn/api/v2/fluid.html create mode 100644 doc_cn/api/v2/fluid/data_feeder.html rename doc_cn/api/{v1/trainer_config_helpers/attrs.html => v2/fluid/evaluator.html} (55%) rename doc_cn/api/{v1/trainer_config_helpers/poolings.html => v2/fluid/executor.html} (71%) rename doc_cn/api/{v1/trainer_config_helpers/activations.html => v2/fluid/initializer.html} (52%) create mode 100644 doc_cn/api/v2/fluid/layers.html create mode 100644 doc_cn/api/v2/fluid/nets.html create mode 100644 doc_cn/api/v2/fluid/optimizer.html create mode 100644 doc_cn/api/v2/fluid/param_attr.html rename doc_cn/api/{v1/trainer_config_helpers/data_sources.html => v2/fluid/profiler.html} (64%) create mode 100644 doc_cn/api/v2/fluid/regularizer.html create mode 100644 doc_cn/design/auto_gradient_check.html create mode 100644 doc_cn/design/block.html create mode 100644 doc_cn/design/build_system/README.html rename doc_cn/design/{dist => cluster_train}/README.html (72%) create mode 100644 doc_cn/design/cluster_train/checkpointing.html create mode 100644 doc_cn/design/cluster_train/data_dispatch.html create mode 100644 doc_cn/design/cluster_train/large_model_dist_train.html create mode 100644 doc_cn/design/cluster_train/master_server.html create mode 100644 doc_cn/design/cluster_train/pserver_client.html rename doc_cn/{tutorials/rec/ml_dataset_cn.html => design/cluster_train/remote_parameter_updater.html} (62%) create mode 100644 doc_cn/design/cluster_train/save_model.html create mode 100644 doc_cn/design/cluster_train/submit-job.html create mode 100644 doc_cn/design/evaluator.html create mode 100644 doc_cn/design/executor.html create mode 100644 doc_cn/design/file_manager/README.html create mode 100644 doc_cn/design/file_manager/pfs/pfsclient.html create mode 100644 doc_cn/design/float16.html create mode 100644 doc_cn/design/functions_operators_layers.html create mode 100644 doc_cn/design/gan_api.html create mode 100644 doc_cn/design/graph.html create mode 100644 doc_cn/design/graph_survey.html create mode 100644 doc_cn/design/if_else_op.html create mode 100644 doc_cn/design/infer_var_type.html create mode 100644 doc_cn/design/model_format.html rename doc_cn/design/multi_language_interface/{why_plain_c.html => 00.why_plain_c.html} (84%) create mode 100644 doc_cn/design/multi_language_interface/01.inference_implementation.html create mode 100644 doc_cn/design/ops/rnn.html create mode 100644 doc_cn/design/ops/sequence_decoder.html create mode 100644 doc_cn/design/optimizer.html create mode 100644 doc_cn/design/parameter_average.html create mode 100644 doc_cn/design/parameters_in_cpp.html create mode 100644 doc_cn/design/program.html create mode 100644 doc_cn/design/prune.html create mode 100644 doc_cn/design/python_api.html create mode 100644 doc_cn/design/refactor/distributed_architecture.html create mode 100644 doc_cn/design/refactor/parameter_server.html create mode 100644 doc_cn/design/refactor/session.html create mode 100644 doc_cn/design/refactorization.html create mode 100644 doc_cn/design/register_grad_op.html create mode 100644 doc_cn/design/regularization.html create mode 100644 doc_cn/design/releasing_process.html create mode 100644 doc_cn/design/scope.html create mode 100644 doc_cn/design/selected_rows.html create mode 100644 doc_cn/design/simple_op_design.html create mode 100644 doc_cn/design/tensor_array.html create mode 100644 doc_cn/design/var_desc.html create mode 100644 doc_cn/faq/build_and_install/index_cn.html rename doc_cn/{getstarted/build_and_install/ubuntu_install_cn.html => faq/cluster/index_cn.html} (60%) create mode 100644 doc_cn/faq/local/index_cn.html create mode 100644 doc_cn/faq/model/index_cn.html create mode 100644 doc_cn/faq/parameter/index_cn.html delete mode 100644 doc_cn/getstarted/basic_usage/index_cn.html create mode 100644 doc_cn/getstarted/build_and_install/build_from_source_cn.html delete mode 100644 doc_cn/getstarted/build_and_install/cmake/build_from_source_cn.html create mode 100644 doc_cn/getstarted/build_and_install/pip_install_cn.html create mode 100644 doc_cn/howto/dev/build_cn.html create mode 100644 doc_cn/howto/dev/new_op_cn.html create mode 100644 doc_cn/howto/dev/use_eigen_cn.html create mode 100644 doc_cn/howto/optimization/cpu_profiling.html create mode 100644 doc_cn/howto/optimization/cpu_profiling_cn.html create mode 100644 doc_cn/mobile/cross_compiling_for_android_cn.html create mode 100644 doc_cn/mobile/cross_compiling_for_ios_cn.html create mode 100644 doc_cn/mobile/cross_compiling_for_raspberry_cn.html rename doc_cn/{about => mobile}/index_cn.html (70%) create mode 100644 doc_cn/survey/cluster_bootstrapping_tools.html delete mode 100644 doc_cn/tutorials/image_classification/index_cn.html delete mode 100644 doc_cn/tutorials/rec/ml_regression_cn.html delete mode 100644 doc_cn/tutorials/semantic_role_labeling/index_cn.html delete mode 100644 doc_cn/tutorials/sentiment_analysis/index_cn.html delete mode 100644 doc_cn/tutorials/text_generation/index_cn.html rename doc_cn/{tutorials/index_cn.html => v1_api_tutorials/README.html} (75%) rename doc_cn/{tutorials => v1_api_tutorials}/embedding_model/index_cn.html (89%) rename doc_cn/{tutorials => v1_api_tutorials}/imagenet_model/resnet_model_cn.html (93%) rename doc_cn/{tutorials => v1_api_tutorials}/quick_start/index_cn.html (78%) diff --git a/doc/_images/bi_lstm1.jpg b/doc/_images/bi_lstm1.jpg deleted file mode 100644 index adec1606d64d6e35ffe7e62abfa9a09309b05c84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35593 zcmb@s1zc2LyDz?nF6pkJJCv3hLP|sgr3F-SKtPdZV5Fr51Ox<>ZlooLPU(^^gOnL0 zMq=ha{@!zb?|bgK_nvdl=f7ZWzO23W+Ur@*v)5A#`vtoWP~XXIar34Em#%~FQwJ|E@q3T$TpxSdb7^|GJ$vl#4*>t5 z`Oi}T?Vq*f!Y#7gjhk|E;!+a0<^Q|;De^@b(`)ei{A6GZ5qFf42Se*?+cq zKlls~(2)c94|8yLK!5Y?4yh^d=gTt#|M-X8<1p_2U)TR|!Ar#b zi}wQR#Pz3H)A#|GowujYAB_7Z{#*zFGJp!82Uq}3fEN$~!~rQl9#8_*04?A)US%4maoIvg%Zx9R=28snGgEB!M zK&7A>P&23tGz6LiEr2#aJD?-bIUYV91s**f2c7_)B%T7EI-Wk>13YUyC%or)0eInf z33zYu^6)C~8u7aDM(}3w*75f6PVfPIa(qU7ZhUck1$<3>LwrkoM|@BGVEh>TH2ggL zD*P7w0sLwFb^Lw&-vmSibOc-k;si@81c~H{bcrm8T!;dR;)t?| zs);&@CW*F)PKb$#S%^i6Rfr9V9}{~KM-pccR}dqJr-;81qe;j~z$8*6+9Z}F?j)fk zX(VMN9VAmEKS(Y}sY&@s6-fn&F=7m}NuTbJ9L`vdnF_XUq2j|opG zPc_d9FBz`_uOsgp-fmtbADGX855`x{x5!V*ufXrjpUywPerby2Twl6Dd*k+v&>Jl` zj-*7S?4+`!W~8r4YfHnWKS`rxL}eUga%8^9(#aagM#*-|UdhSJdCFDE?a1@VKazhZ zKd(Tqa8DslVels5O^uuIn{79LE6OQ)Db^|;Dv2w(DwQd1D+?++C>JPisqm;gR{5Z^ zuF9qQNcFwyI)oeY7?KCsRO3~%S1VHcp)RcMqF$l?Q{%dZr$&RunWmyveU=k+-B?DR_YkhkS;2i@+~r_jHz zpQ*ojN92y@ofZQ;gWCov2FrK(@4DY@G6W3u3{wnO?g`#|ey`Pt$mpI?meF_P8^$o> zf%|m#ZSR-eKYgI_Ao0PHiI9o6Nw+DL=|j^}(=)SMX31vj=91_g)W94?mB|XQIy{pRGSve4hFo>8bBo^aAw4`o$+N zdYm!!*;~jv!h6F<)hEjb?Q7~==SSn`?)TYW#6Q~qM}T%fVIV=EU0^qi8x{iF2vQIF z5DW@_65I{vg@?nxz0`SG5<(W@8ZsJsJv2G=ILs`pC7dJtW%yQvPDFVmWu#~1e3VjD z?kj><&{t#8($N{wm>Bz*;n?f3X|b1ac5%b;H{##MV-p+`#uDWcb6yj@c7HvW1W77M zrb!M+-byh@X?(-=Cg#m?s%`2}noL@5I$64R`uf{DZ$D-5WxUR~%yiD2&CZ)$odHN-T68vPrQP0mg0pDaF2Hs5aUZc%D!Xq9L!ZsTstYG-Iq>>%q1@4zAg z5GS3_I`_Mry0*G)yO(;*duDo#ddK?o`v&{9`+Ek|2M~iQgKa~KL(Rhq!%ZV{BaNSB zKR1lZjy8H#0JOcXo2lWbVuS!};|u_FuLa zo-UvkeHJg4UM>?Z$E;AVq^+{A=B){@RjF z_5=K*bX#h>ZAW`&V%KW-+upOii~Yz0nuB*gg?`o_svUktnj^oVJW<%AxL+*4ijQTE zyHD<&te(1^UYy0CSH-EMwiUSZpUiLjrOG#o~i_ z06ZEHJ`D)l3xIK!1R+joffvPy=`%e0)3td_uxM4h$#= zcOM|2A*AKLp-x0+^q83EIlWX!(gzY=jhZe7<4Gi+^b^leQZhy+W)@a{0YM>Q5gA!I zd4-#bnzyvHb#(P^-+y3YYKAj!?Cc#Jot&XAFTA{ceEs|b!onjWqh3YFB&WPdO-p~9 zk(rlYP*_x4Qd(A9SKrXs^r^X}yQjCWe_(KEcxrlPc5eR5!s5o}*4J;}e{ApUqKR^r5DUlvmmq$?(K;l8lj0W`iH~hqS*a`|lAJ`ah!VZ^Hgb*Ak!!;Qdwb@$m2o z@$vBqi3o9phy-Ve5D}4(k^EK2{;g2_RVe=ys=o^sHwXwf1_1#9G47X|oRpmU|G8jS za26#Cb`hY!$GO@x_%r|nxVp@X5d!{OHR-KLnhG!q%UFj{V)Y@5b#S6Q!s`u$ zWe=&LX=zQW%!rO`@#7%NLxbqTPX;~<_WrbAlo%oaF*Rm-&`BY~IvAM{JhOIu?~(-z zguCZsfl>bdO%o7!#qbOK%Kqwo8~>x0;+PIGKVqFaf4dOJHe}&Ro1=x*)8~;Xy=COB z&&uDWbXMwHgHPXe#E#dZQ`WOyH7R-|cAbY+ZGXwH(upP+{wSjJghV+8IOmB$QlWJq zE*|GX!4z1aTiyr@d{0jN&rL5?F#j)Ik8(q7RAz#OVGKxcZ~PO5$1^a)575liWuM^@ zyoc6{12W~btx5!xy+V#ph@|wsw_Cm>6UzH9D+D|7-)0XUTQ2%E{i+{h@+)ya3k&cC z!!KAb-LOEZYO$@(GTwx4e(C+o@}mpGIfN@DT*{?`3>}08NKRHmuBt0sOvm9LYz;m0 z&1T$XiFMLAOzDFXpAA>=J}hBj83lsV_l`!0B1#Pj4qf?trlm&N1vYiRaC6Tw5DX6c zlYqqh24sH=Z&1Z39z;b}U#fN}x6Rc5j*7IOztk`EOWS%_*En6}Vac{MdX^Mh$++vl zWk_@=vMN5+Z|9s5RfOZj_Ej_D$9%Uf`tGjnWlND{zwJ`IbnSSz=%=q+J(;hERK_pw zmf%I#d_=9qDf1UYZN%o3wbtXQHXoR_5S3)kejSxD_Vd~NzRTaC*R;yVq&t|RG&s^? zE}u%-kd5@{VYI9&-WZPv(22iPcP);sj-lOSoU^>zT;V^6Yi?6>F3DKh$o;(p&h9obE08WmXkHi?t@=r^1IGpJ|sD-dkma*FJvStj_*a_seQRury}5fZ9!&M;#{s zzQ$PK+bqwe!&NiW&qcpm&xkqMXId!3Fq#iQXYyStwzuYk>CjfD$kRIiO*W-i=ES82 zM#qj!qodF6VV)_`nqoCb-e-0ojh8Cg2r0ydSMc)Mue}Y)OF?f*jP?EeKkL+5#^ymP z^n?h$!7=j*3k=T!LDCn@SYW8+k{=7y*lJ^eDWUS6GF0xukFInGWe2IBXs7%OwhWk3 z!2)zt*idNLjZ3#_f5dI2Ny(SpYiQ4ARE?0{=)bIB?Bsv@8v#lT+9*6HOCjp_%@WbY zr{QSAbvK_M-K(?3l2?-+WMBL&ss^!gN~`zzPzFmYQwK}2<{PA24${c z`~|O$gf3(emq&&dU(LecJ?5AZ$gzboZa0gd%*Fx(+gKp7<|+-oUF#=}1;{v*ut4Gj zaog3uJu7RQuO0uAk(Vs=MH%~HdA zdFs=)Up9gqjb=jBz+V4uilQWT~#_9yr&n@WzBd!0kg0NHneco4Rse&Hrd2e|n)ZO-6LuPd&LeZ|8 zM(1SbcM+;E{tFG5BpQqo++vJCNd%c0w9F}+G3GlynrLuEJJl;Prnr6QJ2g$Y^<0Mb z1KSy1G1v3gR1+?uU#ZaUhYPuwFw1!iZ3j2*L-PhBSJvtvS40ifm;5kI+_$g`oICZm zM0`(KKL|9L{(4kZQ6W(jjbwY8)cd)Zf<%Ffom!_7#*a+dg2&Y3#Ang4HB^E&yO@3BZj<~tuEn0UKS$0f6SLk8MHl>|n2zo#Ne$TdXd>>J@J%7%z z+FZrQ8sFAq_*q?AoH)sT@2k4MKhbVL&Gg+(NDty%TQ$ zqqR@IR2{J0x?$kz|3fbQo7l%TQej6!u~enkA4Ju_&tNJj!T2_HrxL9#EI=+9(O|8( zH@HB!J|p%s|3*QqO2a@ZehcgyvmV9MsyMmS#nElq-<8Pe)AOqsFJXz}B}i-wBF=j> zVDCWsp^bB9MbmxVj|I1rG@(VB^v+4W*OPALD`nU2e-0|gu(h5#VS)E^4LJLt`W5`Q zwHnxV(v}O};~V@L3mmh~A&{vkDl8ycs&lY#AyY%vGFPv+O&sxWOTCK)?6RUI;0};* z1MVS1GUr#S(RL)@!XQCgdCVXq)1uiv0@-wD=HP2xTOD#Wg#vje^5&B?CEe7?$(JI- zouMRy%B<%a|D|sJqrV~8>Hi1$<3UMwLGb;m?+00#HvE#{+jX6HeouvmW4JpSN3km8 z$FF=0OY27NB^nFljg@ zwI-5|CdvI-6jRp^@4~7G6l)hG6fUnm(~Sk@Z!!7QA)3-%I<`tLaC5l4T0#nHT+R2{ zlDpbc+S?-J>Kv`^+8TQ+2{wOJU-nPQx695apmIl^;l>CSntnguCMsK1Q#|@h>xGlz zLpAizTJ6upNZI2;znu09rAzRoxG)8O`~i?|!q#=tB18i>^Gu&Cm)(8-JrcL6wj*N3C>@m3KoZ{po;}s znL=dC-K;O=g9Nf+ANAQIg||*fMvodP=al6r6fd;Bcbbk}ed;=v?Y!hbHoa07hNHlSvt9xpV~tP@tA%!6_DynUb7!w2 zeEg-92kk^mdTWXWh1=}sduoEmb6Gu@wq6`|jU-p4!!pH?VH`Kvk&{^9|G6Po%GBTCmdP&Aiz`H~T&i?T0DmaajR8n+It zE-QX+9eQt7K6PG|M>@S~%ip+y8_ry!zhy#dSG45N?;Z54eQpfrE0)uArvd9pwxnqI z`dP0brC*pny3~7P6yC?P*86L>DL}j0djnNw@O^vhZlX~Fhl<$o;E(wJ(MTVkSSb%$ zu#hJfAe1o#ZwHJHB)~+GN3OAE?I=v5M7o3TW16X-)eR*QmA&6BHedC;vbV5Y9yWUU zC82;7xFSs1wC#E8acm%9%K#M)+H_6}5+Uk%sb6wyOO(HiX+`S#&1=k$bZ%QqZW{Jf zdh{CmX=H5p?*45jN8T(Q8y$UwR+ z<)!3%XUm6*oE@2G2|wKrlXVHwKJJ}nel<;(rcF~WA65lv27D1654F@Q4xe9r6O;+e^stm^R5R15PlFpOSgq zyjOYls>w=3udnHmn}U)C2lgED|zl z9f(A|nGbEBYU;UvR$#_zy1ViHKG^61$^40*$J>I(a_~`9;asT5rcJH6%@&k)S$c%` zPJLus%1C|a@)&YE4Y|-g{_S9~QdBCh^`oQEd$8{0e>4<8*qQ(Sru={Kd-30(d|zJD zpzsYa1E{sAV=O>peguoxo)azUQt2M90G+YVr@(uZcUq{%k*$3g9;CFSC}H9685tC2 zux6I=h$Ln9k$K_=;>>f}7~uEe=vC1rKc*2(3A8hdAXL5anG~(i^(U+Cp?j!fz0;L0_oH^ z&$Ki>o_qLvaLg8zE7J*iB{54$eH;|gA)uLv$^1_m8G@bt4~)j|LpWmrmOWcaEP&Ie zuP_S8(eW=0*;G9(4d3D}XblB^lIz)r8YGMIx+SSE4nNo;ph>cTAd4_OSYXlzm5TwP z&9J~5+2{)=IL>de{NuM+;QSV0*PSxpx6<7SzS)zj``wv_2TIkedjUM@h?wC6>);+Oi%8FSi}H9Amr&RMtG>I zZ{2WFv(K^>?S5{c`1?^*w=r{Z;*3D#n&_hgyPii|A1V*H&}SQG2cQiI{+=z3Y&FaF zsu1$xp9k^AvTJC6ci^zn-75EhtSy~ARiefPmSP3FETsh_JYvN0b;G;K9u zKb1GrruCxCVmZChuj=5ChQ)`(!Ji=yr}j$Tz5C$(z4?#>=iko5g#O4$KjhqM;~Y45 zi4l5FW|_M7MNF`*ANEE(u@DxB)aeE@cJRZPkW{^HzFUd0k7n9THm*cXS`roqddTq% zgP`n3Vzs;_PEbt{`pWy7)*V-w@O0p3_on#O@|3T2juJ@L|(u}0IX#Arbqb>aL~ zdZ7~eLPU$LzllJ1m#j`Q8Rm^Nz?83F9DuuUs_G<`)C*2BE*Uw9! zjf-l9O9m0NLeE}XZFdfxI_~WugXMOxmFYCJ}EH*v* z_1V@=4X;A^yI2UQT{TaAk%>_-Nfhyx_-gt_w3lc+yjO1Vjjv>pp?!LzyrM(C_KC~rC;;c*omyihO;FIs!NI2WzU zou$_BX&PRipZmZ-_Q}k53-{#SQJw{Tiae#z5%$s%I$8g-C@kP;%f5i78(`IL+Gy3! z)_j0|qO4MMi@zzAt1aiyqFK@Y?tZIXlYW+N*y|dO7?Y1t&cvyYMrd6LlXaed%abF&Nuv6MP;UbswW>6stXbilIp0%)6Q#P%Kq~6K zO}5r7O;-<&hW4`RjElp@*z)`MT4V*{ENpC_7p-+doe}uK3NGhQ&x30=$d`!Q&`z6h z^7gjz4^}&-0Ui0L!jB@m*+?nY?4;C%^r~zuY9DlbuA`><*akrgZV<=R>r2w0U-Wi} z&(x1<^JlJpUmL&(rU~0Ue?7cYmdd;B(zO4Zevv6Y_=X>)xc>baF9anzb4nCcw(Hwc zkJNnr9x5+MySz54{7reM;I*(P=*3H7hC@{{*G6PQ;^~!$8|7Ea-dgiznQP*$WiO55 z>r*szdC`224{cbGwitb#fwc=(nZqk>FUx=IiBwsTr>@cB2nR@PB}*5a%+)zK(e65= z5Gud_;X<@5%_A&_0`SyBo@T#<9QN4-FRUH8Ko}AGW^?f47|V0~-b^tYKICcX#!jI# z@2t2}1C;JCZ!Cgb^3#|W0D}}k;mEtzHY27pmCD5HZx3Vw)l2kc2O_u{V*;hQqTR(- zUHPmAEw#<(^zB6IYRi&8zaR4gqXjdajnJVUkr>)g7Fq6ma{o5gB-^TjxdX4X%15W7 zK6QFzO!2H-_QT;6*6K@H>*E9B@Qv?L>!ZFHnru}Me5>uK+ksGb3Er7%FQp5mFRNeM z>kXYeglb7927aVUc`SeDyH@Fh)Y(*RM?nnG&6}tKXw%515{Gt>;@EEBr@ZOo12*I7 z&4uUu^+c}eID;zCQE1lg-iNm(%b-4+?KR}x3#w~SRnhc~@oAf zW$kY~*R&i@Uk`a!Mbf94K=Fm|`AYbBd4%RN1#_b3er*zmrfbYeHVC&FP^7g)d>gGW zvT|junW+@id(!Z(uAkImWMhrPjoFiH z5{n96a?@WwHL%K7)-9x`Sy^N%McbHaB^jA$NK8;Bt{?UoewoL4V&!|P>}cMNEZyTE z(+mA14;a6j^XIwyZAvo_E&6qzWyQq35wzRr!ke)r$1uZ$uF6$8s(Yx2omXjC$0L+2 z({mSCy&Iwy3FH?^6GtzUp@_$hORWmaU-}IKi*YJ~$S=1uEk|fd_M|S*>X3SmwIO`2 zZip}0YPTtQ^&m$+@&Bc>F+xZF9A1ou=hRv7gsqNaTYS+$QGWOO@eylbJWnG8bo8JgKHc z!%u&s2Kt2CY|C8Cu0!WqE>Gu4@il#v@2l29Ro-nmvaZtC8^q8DJP)xgV4V-~D#rq~ zHc&8%Z&v0@uc@z3Ov#hz0F6Pwf@_ON;CEov9OxzSkMT=hc$452g8|MtCCuT(87d|L zzFmfqxomvs^5RPk^vLF@PVYRcKyFa+m&)0WEI0ZaE>epl&(uEFH99)F>b{it3=jkM zndjp@HexN!GknPEn8*55)K&xE-85japVS9(pNy-OJ9*aM(1K3#fS8L}Sym1~E-y-ny-6)Qdfbshm`WYJ3O}Pm+Pe^_~vij2fTKnkD zoQZy_nt55syLC`sa59cPAY5|F`obTlo-=R(NenJwIZ_7Mkhp5Y0=su`_ux2r`8FH$ z+vrYho0J$O@0(JxUU#xD>q$xPI2TynQw_!|oeo@;$i}X*?_~0ihfDrc<#f5Rli8K1 zHY2xmXMO#(Y!N?sdEcjl-lR|c*A0u%;4Q<0aumK^kWU|iqjs+eke)-XBOBgHqc>E&Oea$!KM&YrB?S8f>ny515bAlPFL~fmjujW)^-HtMBirlHvb} zJ|*1=hzt1D8nrT23GCq~7()tl@`~3QwUyx8iO3a(&s0M3-+Y2Mf+#KCfQ!OYh|rpP@7AXm8aw&;AxOwc3X_;6&Ia zQhu%C5r|W7h%d!vWFwIt+95K%c-pHh)%l$*3z}|!I$gaQ^I*S6MO~yb(s)>1g#(~B z(gI!tOClRnwrsDtsM60rO4z$Q%ay#k$zo)mU|wikl@Lc(TboS66{;YM!X-|+6yZ+V zPu7spJNSYMtlmvnfUUY?`#sf5T-;$93)B@~k!9*&$SV=(6-QSH(hwK^it1TZIYm_Z zz0j_oJ|5(6Y0flI{la&zyYQ=zsx9aNt?RLBGlIoWvu728%&A$2GcINw(Am~!_Ma~6 z@u_+@bTfZ7KuPJgzDY`bq+_QB9z%4FN3BsIoU0=P)_SW!mnxI2d+KuzAKRzIk6WQt z-1Tn`Ynn-D7Q$cM)=T^iWvhJ|MS9M$4*6nr8ZcLpKY6LMp&~He$CyOaUYDZZ7#$+W zw#mj~AFE7Cohn#0H=OwJDyjpxO?BpF=SD7_^2V-M_lbNHv--&sE#(p%+YQvk}r%E#6btP|<#@GZssN@d4PbXE! z?Kf!!buczl;KTo7R^{h`^XMBZU~F4{a~vj~Pk&AjHqC5k5f;SR|Mo0;&d2xF&eMTX zCvO6zMSt(#D=~KdKWNE+KU#v{seBU)2pXWMFumhA$989+*Zc5fos%7>bc@h9)BTB4 z82or^Q}OH^_}*r;5euP*?zzguyL!80ybG7j=`6?IMsVZG<$d zE~Vc2t|}@asYU`_|e11Bq^eQ}Io`93paoDCFY43J`rikC=Z6W5an=v8W}?fD+_N%Zv374KSmPKnT5s4t=d` z;X%ItoNv-216KuRT5d>+@Na89QvzC%^l)Vz-?GZN*y>x2Etq5@NuE2u-NCBXy*I!1 z2@zC#bHBbEcCD*cM16~&%Mrf}%XZS}!&nZNR>W-o*1AV;nc7Rde`93!%dtKrqa zRRtUuT#$l)$=C#6$s4NS_D~!@iF44^>NDb!Dg79_S8_GZArj&tWG(S!N005MM{Vv% z1n)WMksMgNM^!>GJX7Mb?IMP9b4NFLXs`FEn7lcvDCT~1M8b6>YTDMnq7$a<`SkVE z$u{$GF-g@kpFwXa30r1X)#}JqM00dg1#55?>29~RJK2Owv*B%*jO!xx|DLRbVAW~k!Go_ zoc5{zGAJ5Ktd}4bd(xRf{P2U(Sv(M6KtEWR;5_AQuBeMIivL>uD|OH{)xX8!e{)oa z6tJHlkX}}IC0|}1tkGf?8~Z9!!l5Tv=m&qLs^~l?)zBE`ycj0Q=?a!mzIbMV;I?r? z*$&j9!|tctn*J(UWKnZJ4AY{uJ1~Ra2~I3h4nQz(B4}K?D?Xx$?dv^P4~NgK#!D}3 zN&TK{d)Y;QrgOI}IdJ&l=J9R1bUPE?Ypv0^7`3m-Bo8_XXjk_(s^fz>=lJyvYy_sh2jfe7gy;HpilXBJ=LcuZhSuBEKW~p` zn%qoxOy6+~@=@yfTvg9*XPA0sfN9d%KCf+w(qJ*Sry1l)>v)7#+FCgHnUBmV7Y_9I zYj9M~r}S~UC~o?&g#a7QAKoPL*T3E)rX{W@yKstW0l!31YMDv&wy9VL6tDPVT5_Hv zw>bnj%(^6}dz!RG;ejljnO~@!XXAJ=&GY&5*}9Or4$;n`?!6Y}4_ER#>7;ciQ9oSv z^TI4|zTPiHi$Ul9jGI@y>XvbP&}%DhAJtB{V#bixO}*`yaQ4hNlO?V>?@`g7Q-cy$ zCQ&y$RNAg#UdWJYcbljg`Zt;G;su-7*|6#>_sYSPQw z$hBB=D=S?$4_#b2X9GqWo_68=3nnqXayNYXt%v8Ljg#XCn zOgz~S`h93qZQK5>IYP{uWK*cM-*$c-4*Bly{gB^(V^8$9*!g_mK6;fLib%qaRp{;D8p#m>B`=f#lAjxsnIXC>#(wKKLR z;M71DN)F+=5l_2k+4?(;@VA+Q#E%H06G*z{aJ%#U@G^r1exJ*vN;0}~h3TTIrCOV( z)teqn&Nj65OqRVDEWf_>B4m9Rs<9o+m z;DtvZxjMJTCz1>H^~*1+4L{DmHodLTU_h`*e*2 zriDC7VYMj1Rbr zN^XJVpwO&uU8X-+SQ_~_-VLc(M8|4OH(an^#B75RUN6h-@@=S zQuSwisqG@yaroUS4Fr-on|Q+}*4l~LNb4~=(YgV-8tYxLa+J37x_u#$EPvOpVs|!< z=ZCy~gX5dh+XXXRRjaYH85mJiQPlc{k!rcH)KIPj{db*#_xmbigs@-bmtH8@nK+p& zzo(B6lD-e2QzCFjrCf(j+FkFVh>BG!OLgsY>~bAAQgt3FnHs=VQN*vzKWpi*i#2mk zEg|G^8VQ{{ajCK~M|I6WpMgO!+oSeK{{$YghCBPD+P;2aAtvKonLOp%I`SjDFTyom zv_L|h_SqP$w)`kp6HV*-l}vPe z_|xHy9)sH^>|3+?wgX-P7S$k!PnqsFiatmrCb6jvr*0cgcepN=pEC)6-r2g2?44S)jq*N%WJ|-U zs>o@SW!<*Wr*IknwI2E8d5vad{ZAW13hR-g&;hYWabjtGb!+=aS}Dt4=kv_6cX;=0 z=`J-L+jL5x=iWb69L+w3;;dsBA1|`{R`so48n~1L9R5wX3kUN>Xq9^=gY%@7zjIjWy?v*|vi884N^Lj`{)QT-4)}oM zLU|NZycrddd$r<@%Y6!$CB9NszU2EfDY1cEOQ;vuG0LX!K`!q4)ZIQpkkQa;e17qT z?4(p#eq#YK5A~_W9FxG`R!gBjtglh%Y>-K`P*D}AN=4B{mS}n;HC)O zv(>THMnxnUWxMSCjTS`Vi7L$;%k%j-1RK9xn@QDITe@bzmw@W>}ide-n_C$Gb5 ztB!PQ@mayu3oP(pb8r6cvxvE}MX%aDr@1ROYus5;y32d$^t{mx#~P${nEK{OY@m`C zVospGwW&FCO21hDZQjRES~R~U!V7Bc*S838>BI=t>knPlXkqHe@!rK-iYhq0l2OP-z>xYpCFm;qw zzal(}b`zwisoYvsc=x-g^O>O}WLdj93>S!0JnS;H{8l&=HG-Hu^f;Kq^C@ia31g); zc{WT$!h&BTdkA5GKT2E}IE|mIJgI)g2@aH`e`ux2wr6QyH1|8)x#mMkRHSi9%*zqB z*Jbq7M54#z*Z9G%F%L{iSLH4ZKP%sjYfqzFQkto+MuXL$7%3#~Z0OHm=1WavYL7LP zlQ(kHRWDO6I%jeB^H@QCgoEJ7!%z_O_x9Qjo(Z@;)xuV1wqV^F>8-n2j)3<8D7q=1S5MI@n)z{EF z<$A6g7j6;)155mDSCcm}eq|8kFu0D&BOJpBHeme>KM*;}eT5)WWw?~dnSOxwT|W@) zF`>Y__q5#p)7VPB|ZeoCT1E%Fpr;$G{A+JKVQ`#OuLWz(1Cf{)gM`4lufU1Mwc5CPMB`9Q-4G7Ha*HO#x$F-^@M4!q8%w_` zd1qO_io9033Otg^2OiXkb-Blh;`2Wo_)@EXlrcY*JyfzNIayeE0rj3QJY0}Im*^0r zbJaMzYb|dEYgwplSzK9EGJtG?`>b+brNAI9$b?vOON+%_>1Bb|7hH_#_eTMtD1Gax z>eoLWJKR5tzf8U>>Hp z*ptNA@S`PK-#Bb@taz&_nfGyEp7~D6%cge%jm<3?U*cPR7_!y4qX%ySk8&4iYe{lg(-F#qN7DU+rL#M zX1Jd%jcBs#5A>kjT7QY>7nN%5H?DoY__bafQ;=eY#I%*3dd;p!=cp_-R(2DUzoS@B z8Y8}aM#YYq#f4wSd#agtY^jtDw*nbZs&zp`SwvYbqyAn^@={{Xbvo{~%tYo6g3ap{EepZ?psXxW?8zP47OP%i#alNKgy&o51h)Tbt-8$7r>BPz8vO!r1I+$Cg zs~@%HOdBRy-EB87Fm)EJZ`RABQLO5&A?YVw|7BZ=wqKiZk*qB`*s%|WY=+v}6k(=A z5tR$4iSY>UO)&mS^{TavZeojm@k%JDSQ=n4>w_HfHTdXjs8+O3*DLAx=JO9t!<0#)vb}l3RkW+PqHB6GAqYl-gN; zZU$OU>}DNS6vTcualNpu3&E>cY%OzFzF7+$!v0RJxI-tB}*V9z0G9DwA zoi}r$?>GCVkH5{QhR1(BL@Fak_G?~_9ERMGD)QmwTtjNZl1`9B%jNu0Lm*u3LGPxm zp!lJ0ko>Hbm1?fwiV_D$RG(q=lxv5;l&m3%^C`;jHgj=D8i&uOqkSfEHi6Kh{o^qv z;uiv>>zQ3M5NNrpWJrK-KLPSWzr=-(&0{~YfzUoj;PtX_?(j{T9*PvABaAmbKtvFr zbIHXzaC+8jeSa)$80B49!5H@9r*`PVhMnZdOY-ZyPsRuN58LSmTcu z6pMIWZul}E?B@CFn`%CN5*$&88f;`EVT;ul7Lrbxj7+e-De0W7pL!_nb(VHm{@eU} z@5uFV+d8+V&y5M07u61vZgc0kg}KDuUyg0*b(`*s$)!_6GRL}%U^R#rbe&|NugB#~ zwoQrq^||yiw&9j$@dw_Oz82Z>eL>`1liL9~ ziO=T6q4r%~BeizU-3AU^$<(o}&&*9B8QPvwRQsH)IG@;2!mT;G9kTH=Sbozp>NNk` zTB_|lhIOCY%}h+z1Mh8bLTYh75{Ixp5U8R9kvMwf=4(T z5Jlcog9X~lEvbHpd#)0oA0uZ^Y?)Vz!|OxX_V{`5y4T1)E-ZFyT)w-uJ%HaVyL-cr zs&fKfiu{=kzG!@%__g8e$B$xi$pf|v6?IH2&V0nBWdf~gz+)~)9?@V{Rpv|ehA=g> z@0K{YcdC0e=yQNgzDL01``-@+KPsgXg6Mvm>*?)mkte_)2>8@^(|i7BIEXQM568?+X5;qD>OETzRlVl zRrPIJRqid*lO)LT{#Kfke9ay|d-+>)H+t3B)J26eVfaeyWPkomy6tu*7O--ejBWAU zZ7}n>Fk5N~ejdb9v-)Hat`+WOkAAScR;Uu|#Yu3z~HFI6p$RKO{ zd}mKh_XUqs27d1!o$k#@HYh5#qj#Xw@iUXEa=gn7zPmCvJi}wn-m*0W8+ElZb_I@w zN3%AK**{$DKZ?t1=v@BlPLMKluPdz6ITEz1@ekHi_#`d`ZFjY@-9N~OrIvjgojQVa zV#StA40k%)_{aI;e_5M#iS?4&-WP~ec1JC#ZKSlbWga_0UoA`r!=tk~v9e15uuyGT zg2p#`@8xF}vyUxL3zMD}Wq9T^bxQ4`UhOi)wNq-P1xljFZ+YbUK3p>--1N1nd#@d8 zTh+tR{X63IOuKs#?4H-R+MyfXO?42s&=cF%sLaRs%sxL}V*sM? zK<0iiO5xC$w@Finne=3VeC*=g!t{psaW#}3ql!R$531CFo7ZgiC!{ZT#V?#Yt8)1GrSs0+)mRgxRr*{9bF?rPq#bs%}Iwrczmz6E6vmmE3` zj-m`|oAwZZLTfTd$Aj4eA(Ik?6S8n}C!eX5MBD5DA^y}KOjolKQ`(7Btn)ZOF&8bL zb=Y0b%Z`vv8P@*+t-Sw=v&8DV$#@U@PTfm(ddkDIZQPadVG%@FF2>7dZ>$ z&QJJ~@OsxnI; z$?aO1iudUm(enin63fG{_bjT2MNvZRy&w;BBlJ`(P!=&+Cfy?{=<ci^@ccQQl=$~_-WJd!ISd(UGEL-$`Cm;>Fi>H>{59d z+Nld>GrM8qTH}2Ch_3%T>B8(x+np&D=@kjGpTjT~i*(77<$&jn)Z0&z654YLgBiPm zIi|v#Oxk-g!RBI9MP4&AIjyhLBR}|!#E}O!+1IWIK&^(p9Sa$l@|xWB7OUuop4|iI ztR+mgNKj&VyW1qPUQ~SzQkqB@P+4>(#;2|Z^W_u4> z0@=vY08m_<(PP?*mSC-?N53HXiuRn3>Lc~5=r`*&pp^Qj?^%XoJ|-cyX?1V>0Tr1) z6MM#sPuFf8A)Kr3jFfGHv&oL&(ZOsG9&}-c`dih80~^6FCfPw{qasVLF>-MFV4gs` zvDRxVdk~?`{w(D4TJ#%w7)eq!m+OzVP{>s?} z0hDj>u$|H$!^gT{@Ye8FrYFE127#`LSRp@G2bN~v1e42(r7vF~GjJQ9)+gM67LD_P z#CK0?-a&w~^&!w;#D($wsOM~dlWIXzve0vAbomKjA_(~(P!uAv)o2;mAfe(lg0KldPX;CW(|P8g9%@vEmHlJPw6gvU~aqqoYSnl2HjhpE~V zU-tO+b23%hCbwCCFf3o|YgoU&eSKHU%~)i-O(2kVN+#J+*CC{Cw_U?( z0Es>OTvx#I2jKeR`Tp60gT)%=$9w?(Hff#58XM7v7tZ{~Y)RV-n+zt&m1&}8*;y^smQpHXTvo^cW#2?VG41ZuU@h*%c<&E;BcS@nDV?EW@ zBz5Fc7(kaTdyh>I@Nik&nH5w0>2uLGAU7UgCcAUps0Z&sZVP#IJ#~KPCJ}yNeuZW#N!xQs667LBJZu?ad6!}&y*B+G0t-M1 zuAZ}U603-)oYD9KRLLY8yT<1sTHYH|=O*K_W`m>i9W%-99$Tr^g3v9IZQinCP0y=Ba5d_ya0D z{Iwbgz{F|6wAfCo?YIDj9O{$!Zu+@%eZGDy(6i!Pq+mI?iw^&2Qv#BhV_806-{1c< z1a!)gl@q^A+&cb(CjP$Q|3Nh*&cwhYp-W8Ywe{+xpuA<-r+Z6-fc|1jMl&&k+d?o+m9#XHIGWPd>33h#vz z+R26iSl5P%`7#L_8R6k zA4h|P3%kNne|7!5A#vG9VV?I!YH36!k~L7yjr)X5^5nk7#+w&VnsC=05{oR zn$*YYdq?xuMFQY3^O6r5ByhB%sR^bsuXPjv9Ca9Bu1r0!&UuK=W%S{k3pgLHXmyzC zi^?=+k3r38fV`~ehHcP2;m3PKeA28!MjVePP5pbh&wTh3nkvJig^1HJ>5-hBR-BFF zE-x762My;3uefbkKI~9C7!xAUOFS$!g2%qbtyk>eM4YD^v>|sjLAdvwC7{_N#y}N6& zUV|R>u7#7*v7vdt0A>CZHQF|k=8_*~F!uqS>#hSb zW_)vOz9*vv98bAz2&73rZ%iP@a-(tB} z9oZNcj6;m@TAyY`8lCaf1XAZ(VBvS7DfH4T4Kefk1f$I}kE~IkxDVy==PBNM+9m)T zhi7pzU^4s;jBST8wCa$FKTrO0j8^!v^Y1Q~O?~?O4b;qwj)x5B&9%$(Sl?s9z=4G+{g&b`;Ew zVF{vIq=yb+5JGb!!CIyICA`c0*5NtihI_!XtYG(U1`G>#o z5VPQ>wE4+7(kgTb90^=|-uJTHpYjI90k{#7gwq>q;IV{9u-<+Zqjz8OV+#9no*cNQ z<2aLc?6YYHZ@YIGt;6z-kwX_J5Co2X;-si#; z{5w^QSupdkSfIpbGe__E(TeJD;mx24-uX0$(Ov`c$7Z}cKauqhbl zb>)m&Fj@avWRy;2`T+wQee5Z5i`S6;HGew8?x{ZZ`=(Vsee*{j)g=LuBU6kQ5~ z;f~I%in-%+9~^kR(Wg`CSEh5DaA4GK1!AaSaDS)tEZzuZ4C z=Ny-yFN@CV{+LEtF|#F(1kyC=T_`;^ob%?UiBc!(m7QMI_bY6wU8r&zCKG%KTNp=1 z?;=aZ;t*JGX@EiuvBt=fI`(bic>6Yg^QZl!a6d9|--A-Wb+NlUi;`j8R{uB$WmXME}|0FDcz zg$uj|@_z<9t z6H&am#6389m$t2;l%1#8WxWy_<(jzdH&Urc;L)Ag0= z4@)vv=2B^DaZLeMvSP%>EyJ(pYZUc~yPPK0A0@w_h`-(=5<0~Wi@1f+dzcq4m6fvH z><=W$yhu6p=Z=rrfSEQgF8-QnEAA1nz&0xiDk?dUl%xUBix)ckg)hc*xOTgG&;5lu;z5F7`F zV-wPcWVMAi6!c6hSjdFR@#Y3G+M@_rSp19XaGeGGukkAURnrU9Sg=}c)B47)o37$Xw%rjwG&Z)o#SFl+7-A^H z@;^B@zhj6S7flwfy11n%yU0lc5t|G8;zHVy;%9)mujh&M`|#RW`WN_sQva1AR0Tk* zYLEWxnj19zu$ml@3_GIa!U(6a_5TL5!M@ff zhMDnFselOrk&CzlEm`#EZpx=h4X^^B%6%R{6lg8+LZmmQ1Qw)F(ZS!Tx6xU0o7KK2sC?Jig=FKvMOW?Q8Xn8%h-5Le+ao3 z;W#)E2GX#|4y)Fs2`I(8r#>AN{x7H49!*vJZ+qm`O8;AX>i;lkTOV7FLLHmDVtQL; zmxsvAo%DHG9mR2~L8>S>I9acZf2;Pcay1GtlBcoBsrBANbpf#(9PTq$zc*dQ`lId^~@ERoS8EnVfqpAoO4lB_51zJDXBF?OZxs&B$OyLf0E z07%94-2A9YTGE5IG#LWA6vumJOV*F9OhseC+Y8=iFLJ7O7dB3 zQsU#WDtEPK$=Gg-;U?6DH*$E>wd=m@>nJ;q?kreE9M1(#CFdw5me3K%D#-Fsw`jJRpybep!`a7UP&{7$H7Vs?@`FX%xB~{UV zFz1NhVZyB6uEqNV>Hs10P1BP`iG9BR2edhps6d+67s^H8q6+dwRO}pvF6vD-*r98d z_NKx|Z+K}RTk_3{^|!v3$+3?VN*b|D)pw`+CHtsuFT9+y)f z4(kWtWiy|Eq&p#$mM~w(0Q`5QN=47*@}V#K!AWVDGO7I81waMe^_#ON=MHZsMIs ziX)v$po{q|l`ZJ>NBA7OgrKg}<7By5Q%?+S#b@9JUC*~tN!wK)D^#Zzx5S(Mr${N3O$(uA6CTx*lcaz%mRv$J?fhZ zCO62={n+wpwHQi=r#7)Rnw=z?@=0}KCzmZ-yhsiN ziWb5!q2FQ{KFN;07KKbP&eX)N^v)p_HkbxQI%TY*pkNhxOvS(HD${JwodLGTA22d zv^~4Q%laWxd(~Qm)E}Y0VW!BNQi~{!F?03IKHb`|o6Em|w0Y+tSS=L+XuFGx=gDEq zZjOG*Ua%aFsSO!(zZ!G;)-Aw|r<09(yFNjrZ?Deak@nN7S0G|OjHLxc8XeRV!G{5~ z(VmNklKmJe78}_p?f zVPWv)IOz@o%{R15+?T>~Em+Yx!`YPk)7iGwJG1*d4b7e%$(r1OpD2lbTweE0IsL-L zi8aY4-yjr;0d(7pK745B%X@2YQWcepbqcrgansnTs1Lqcx8tR)lde1+~A?`X(t?P9TI*9;iC+h!8Z7dDwdHtMogHr(npcxGuYl%(;ma)S) zO|CCps^4|F|1!$JW!2QZ3i6h$L1g$xt4H?4#f|gnlPtf4t{m!Kprdi)XMIKWI==NC zZ)rG56DOKVGl16mBfJjUg}@2{_W_6qmh>T3aWO_h_;hBg@}*}+;nZ<|aENNpm&`CPFc5}&vz^Kk1N@4zhGfqqI^!f$7S8EZzxK_Mf%*yIg`1Z858JZ$C%d;rqH53Y z$=_lvtEG8wdRLo>pDDj=?3B%v!Bdw4c_*W zcp+|$)Zuxx#y#12JC!EVBSq~ncjlJ#%w}XU*HSz@f(KMEDm437rVIR{GUcvup2I?J z5c~?0Ou>|00(Opq^^3+Y;N1(MN_EF9R;ep{ zR}K%iCKaAV7}X}5@_B?k(MYV3Q~_Pn17yQK`rgLc5NHh$TR?X#K8*7Uq=-zu>4pApXu}6a1S%)jy!m+o|Xfbx){+B-*tfzPpZg#C&-jh^&I! z_=T&^$^QYpB$89wQ&paN$jX;*W*p=EJAHbK-^YcaOxH)T%5=?HvNhRfACyl2Tpy{p-7Fvf2&NU8tH#5jt# zVO+v)Y;W51_H0r3%-;Ch;p^s*IoQ?$RvQ2Ux?Tuo1I6f$et;#n{t9W0o~2dFa20L) znQ4^?9mjc~ev95(w-~-O(7V`1sxRye1&bV9_US^#i_J$k5ziNDqIE)OlB0}6UASL*;#}`Zyy{? z&2wWX5WY7%$8i4W(~PAAdTH%3(=C%YziV?P;V(3KgSx)Q*=F1UoflLYofAa52E#3_ zDpW^t$9Vm`B^5rA^(VKUO!xow0oEY>hb=A5Uu&DAVILVZ8l%|Fw9PaqLo`T*O|_q0 zXC~#1-WW>2k*R2^a0O}iP70G7iF2O6 z2zsQF&fu;l@!^Vg_qsr`B4gk8`LeO|`FQQs-Gl!T_~rh89{As)IlCM)^BpmRHBYyb zqH^t?{jeYpH&oyrYutHjZECWv)$tY~9}y^!&Da+4V8W_ezgpZ=BJj1Y=eIQW-7lXuAS zlyA@r?v&!exk3n_FT6yACHw*HKt#y6EH_l0IO-X60+Qv(5LK&{K z^u<5T&lU`^1G7aNy+7uPrM^QwJ*OVzbak(3j=n=QGRUY~4HxGN?%hhA$d4i&Kz zayWhb9r{MGa(3zED467zlRUZEin`R6d&*hNQ)TmT=s~GS!lU-H$_BGhm%4A_E4nR@ zMh3$k2JL)g4h!>_&Q~qSgiDuQjmhSy6&afslRborwQ8WtmV9EpIQMcGe4(0C64UgM zv7n+^i=PI;+vmyoa@TyB+skMJWw1UT%lsIxo^Y97uUeswlL~Iw8w@&boqn$APDi~v zDd?>wBDywCeQB^tAgPj$JlwH*K9sB^KzP8h(;mz9Vogq_o~4gI$$o%737`wE|2mX=#MtOgCnLgDGIXr zrpDn;)*$cGIAx(z`eT0hgV$d)4{>acz4Q8}{>Z~$gy+k@PwbhdjiYOgla8%7%E&Yy zwU?2He!rF$eWAXtuZ%V9h7xTxKmOF4cRpjjQR#VZH6^&sOX43w@j8do^PKf=?ZmL1 z=qi4rTAqZ!JmAB@2K_a!j1i2;S&K0|^onuSpBHLqH2MSbS~hX@gH=t*#8~>=ZyY_K zlkq5doa4XNy~G`vuS74G?1URErVk=*-8*(lsk#&sNmF~eQ5j- zNcgg)h<<6|8iYfCNl)y=#b#qd0zJwWH1Z34hxE#~ZsZrNHLqzfr9!~GIno4gz6uw| z82cZwy{x)nrYxaB2*7oGRWZt!h-{TC+oTvXtjV4Qf{W(ki%C5FvEbmRp^%d_3}fiA zo*#km+0IotbX+B=>^5XEnZkFW=aSSC(rIRJ+2S+JeQdk}z4KbnpR=1%T zF5swDQL%OTgb!YwZF3L0lTnF4WzrW#9>cPDFzQ-LsT)<5DxFu!^==H8)TU_JTgGRz zv`W&Q#pv%tA={F4y1WmH^Rz$=?Y+dgf-@P*dh&)?zcNV7GT(E1R)({u{NAS~s#QCH z8IpAAM#{f7CNbGceflpe9PpqPg`165HZP$1JL(rjyhG^eFnZ&6-%O0QkyiPec~ydw zBn>eIj=iUNP4&7L35gLCKeiGcA_p74GJ6FYY3PC(Z$TCiHZ8Y*IzD$&`V|G30k2#$ zL16rAhL1w|%;tCO6ED22hcYjdTO9zsiY*oPeAa;n=b2e&Ln0has%@dU2z$iVJWH>! zb!a%pSwO@386f3z?h$p=@WDnfsxGb9Ti5mIJnVH2or`@d)@|8Wta}StQ<*Kfy~Qe( zfO=~=rzL7IMB51{-`@FGbfkjKLjt1*w^?_zC0qtKE2(YOw=1Qf>QJ}lddDgPU2jSn^3pRVe9rANvuBCUWmh?SMJMOk1bt8OGgt}cS`2KNoo7X- z6^M_8erJ^rf+?Azr9VG*5@_X7D75QjJ$%KkqU zu>Z+cCLTCG0z}czP%c^z;AvxBRF$7ei)QwWxSI6K?s30XURM7#RbaxnQbBWRJhIX{ zau-OjH;=?l!dKpm-McO+xm%+-M9cBLcU#1@b7n6gs@7c9N00Bj@7wn05t^GnR# z^mZ!YBpmOF%u(6&BY{RQPFcE|2Uy8%<23>+Dhd4ptPzdq_zJO*D!~^`MjPYA38QWO z#p_WHQA_UMZ4HZHbT6snfyKX|Qe!Vus(o&#Qlo=V)w^Y!rRee41u6#a0$`mjR`40= zWuGo^1cMciEs&EC8#16(+->&Ko_(;g6JEGY3-teQxBtS#I`9zyIZ!O^k_2&TGxg1~ z!7o~?8&jF*4ySkU$-y@RX|TN*4-^u7eA%MAM{JVNIawjLI$Auo?`g^UIEme~ikCGb zD-@#5M4XEl@gD+*=4+U}rwgL71`bGOvzl+FP5uCKLlQ)GrMR80*1(eV_TL0z{SSyL z^*C%SFyKn^JX>n!DrH5{!z-5HJW$O_QzYfd=8r8N(WI}o&#rT=Qu$Lk@x?3VI~G3L zTr3kI4*`=<1+W~!iFE}d5aPjX){=s{`pSCViqcNyzchNcC-*MD95nRXoNW@9V@Sh2 zU1_IP!p0<8?wAzXuEE4~~DtcE@4Z9e9NtPjMFu>X=b%QsN-tKu~ zJ6esjSeE`)H!SV`X0sPR=>VyH@O46W4i)Wb9<~P~u{3uOWuMlsk%5r8%^oo$(^z<^ zT(y<+p-XU}aote5P9wMv3tpTG#a)j+W$5Q`{{u>kRUGgg+TB4XENO+b-NHGI<5(BJ z(W(%?vy*GB@kL`l*d=c;9MXFk1H3%?Ae}ngzF#GJgElL3}M0TG|>jE~5KJ zA5#%kVlZFu@x+Jn6R?fzCI9Yal_^vaff~uQNs!8mRQ^Ze}xs6qGG&xK5vsQ~yxlY09~>V{(>e!ofMU;N6tlJZo7m zxlt)i(U-74m?O_dI-m7q_*z4h%B?)#%HDFXk9HYMHhk_PD+^K9HD}?iH#EQO<0=q&d+8qJ7CovR)e{LYA^I8PV2N8ofEYmXoBdIb)|IH zu&+0Hme+mcG4qKccf~eogSq1hDj9aN)1Gr(g?CXQ{Zek)%IyzGjLCK?DfkDR63{o2 zXeV%ux3VtusT58PiI?{uZ2A zqE=vkI1R4w*K?bfA9j`f#%?##_ob?^FTI|!=jLhT+YZUy)9(3dN5Y<$Erzx=GiXdSxvvs zQiY+VtU0iS??4)P+E8C~={z*iKSQ)vubMu!y{$r}woRdN-z{@3vspaLRP9J@`kXTa zT2+L)j&zoYh0_q&7qDqg<+Y}9>*4ZWFE!KYkPhCe(nm}M=hYs!m}l~k_JKFhJ{=sy zaSwA|A{73$hY|GntYB)K5Za^*8mE*K8pxRED4*#XEp~iqS}wB#Gkpdi#xmLaXHgi< zLT;z5HOKKVDQQL4DA`kb4K`IJ=kev_Lu2uJo8Qr7_?bcSxg3se7lsx7{J`yC#M$D_ zJ7_TVlSIDs5$XR$&jAe%g&!IOE5mSB6^s0sZf1zUtN{h2ER5fw>fK#wWru z?}aaSoBX(o?d;@cJAW*0fLC}XFFa)j$e+wJV%UqKJ>QM*<-`2wGeu(jZu8eS#_lCE zg9v=DRIhiEmyjIGt`qo1y~K!(;q1OPsVq7cLK=BMU&!loFao3&Nq=Qg8TG) zo-Q^IFxN6%%QvTPdO3KutRyK>4~KxcLjS50sDYwE80i1^sjZ06u7vv%J+7B*yMI6@ z^uw@)O@N*KUo&73s+hEt;+c7K-<8hS87F#TEQ)(6p+UAi9^bdtZ=Ej*=C8Ta|C;)2 zaEG}Wf+&JrSXR~){1g{GpweNDmns_PP-DNY68e3;wydvCy9n!5YJtt}kW26M*|!_t zTOs+VV}4+T%1;IwB@)-6JH^ZkEn|E8TrDBW0J+rB{?R5tYcKnI?dFPCqa#{esL{uz zR9F*wpa6tw+o;q8klF|yfF3@qgI}`Ye1Opw#wGv54t`eUJxgbi0+_pQO9RiRF7>o@ zl|PZ_4mth?rJP!begfZ~Dt+RiPLI;R+98^xU1-U4&Dij^8fnP&Z6Tt?a8PJs!01$B zXOIWF`EXWqJalO3W;(T*RWcGI^5S;d8DHW9^4DMcLu(V0spP6owgHjL|Ht+H?{y~r zH&yrF>;5;MNIxAp9-?weXMt3`YB2T@sn?$UynmfHQSG}i6W1Fx68pxRK|W8={C!Rk z*+$qm4&xh60#i*saDy1tSd^= zu|D(FM~B?rmtyfzU#zq(wpol;2Zv+u<{S4o{#1ChN_V_~-@N55oFE$Bn(5;eO}92VxMDqT<%akR})mt*Z!n0&MzueGMee$#2zY$I)nxI~xTXG^hj>w8Pnfh~_fFX}Uq&WQCEFVTiHi)!+W?fJ=X*{l zoF2lDdyU~lAwgJpmwy3=WJ6v2j?rj^M3JsINE&kFdn$ zTW#E!gzh~Dtxpza7TCVw{5M*2=(cy|g%8Q9zY6!=5pEA5A~6~DT1+PNA**qh4;Dyq z>;hfaTUwz-Y(ksYo-I;#G{UEmox#j#EtEvO6*<~C!EOmp*4gE)?`l&t+v5bg@v+li zx_7OUtWzbM>p(VqDdDeP@Gqs+axhloz~>o2#fJn^A*jeHb8P% zq@^UFBV z`m{)>)JVMOk5zs77OD}uNDmQxH#GeF=nuRp4q7D5S#sOH2|mrz^Khh%1(wY=@^Wdc z_8Vt6M7pk~u0HO0$oxE%dYeZfFAntNo`rDf8(`=dFmWmVzsc!WfcNXKTq+L4)@oa# z9761F@xA(-G!ahrRfS56gyj&Bs4&OAM9uPD426+G4EHn79&+wdS_Qb_=j{@(K9%&U zW^HU(H?+gz0zd$Rv#DrdB-$aI7^@P}SeHGU<_XU--L27i2};L89#g@nUtIR~WRyfN z+<@htXd~J753X5pjl1}g>cKvjH5B`D{??0Uo7;gRxrf)6+u{&cb54!%AH=N(ny}Et zEeqkw4K(3XkF$^w^KDNu5b;;0O7m0Asr+}H``9;?N>J{|h? zQe1o~dV7bI^hek)l@HLlYj2cFMSi*l%LOuz35<)KaB^%iRBuT#9~fF1j>^@)(_PIF zpx~0seSdEEkr>`T72S=*=eALA5^h=F+yQENqo|8lS*2#ybMt23p9e6Mi2XF)a*^&+ znP!@4d9F#8Ds0XN0z2e2nI8bp@&F^75K<=rpq8__$5*6goT}$K+4oSePpyxnZ?J1p z-Y;QeS#fPs43wgcdxaKTPMF&DZJLPw~i6%NXU!5;geyF0FZ#U^E3%mM6q?SZdl7zN3oD6B< z1f>aPhh6L~gw;yWZJDLj0g{csf6ZE}$&S^ydqaB(_t>!&Vc*GJCoMppi({ z6(G=9gLnL4zJt7cGxbQH!iP0LTSGPfnnpN<0N(UU828Uo9ln=D>bFUO`%Z`A6s1$gNqF(%U4SjFqqgjTd)Y zG?7?!1vod1$BHqa$h?w+6A@$JWKbiSamDd6uuNrn zwsDR!R|b!GZtpZP)AkcPPB*%DzkvW9!Eh(6*B_7?oEa!>`z#{}W+ud!^1k++-vLB) zo06}OPUh)y-x%tYmGcp@d3--Ar883{ZXM8Zl|_B3XAF$1dtDX=0t0QXa9?~2baNki z_V)SKlF=xlrVwpyio5UM7=Uoz%@?W zoa+zNxUI#3g6jSuR7S#RjoFifHZJtFQQT>r%~=~B@l9W&}AicM5~Xn zM}9F2<&2VL>Pd&$!6{n($Zo!j^N};HMx~sE4dDX%2|I9MTs0Pob~yctu?|1^24BkA zqX&uzg5i~|CII80+HnCLxz$`W?d==!NC!H)&u40T#Alqc&MA)152GVGEy79bcOous zVuyg%7Lp!*INHSd>ksHbga+1US&w64J$a_5J6I}2peftDq)%g+U5zNsZ*DF12eT8O zx3{AG3slM)5GGyTokUGx z(d?^y%+-qlk5k`X?bfNQxH|sF%34Oqy1ahMr5&%r6>!gYreEBBqL!bj4 zS+hx$R|U(Jn58}D?~XD%{k|E8tIW(dlfuO6o`73mN30rHqe~s^%JN2ch56z}4-{)` zCJGS^xly}-)fAOQC~XBo3#2XZd0P`x?oxtj*G6hy|1}S=SIEcEJA@Dd(B$hl=(5Ju zR%)F>$GArT^^Fv*I=_PYDojpnZd9d1+O~TVu$*`7vVHvQ+^?DGuxG`aeyHL*cg0Ef z>`ngxX#tnNG)lnvdSD~)7vGdEM+ns0nflRQaICg$nFNDx^UXco-7Tln*3>ox(m*T-WTq;DobZ`YnJaJs{cq#aExv$j( zA9@4GsLHIh^=fL>O)^g^9QY)~M+>Tg=6<$byV;O%8x8N!2T;^tS7S??C05^#`JHw* zUnfJ>3K2ZVqO;li0~l9RQ|wJA?rdV-9wgHv>L1T?z5vQ?YYl*$o;^6`g5k5v5}d{g z8)_E5zR|&`U+grcL}KRL7G_su-p~JYYBI&SS5$hsUq;vEeWKEv7Y-RcI=MJT?B_Kc z4_d^RMUUfb>14gFIU*)(;H{44=lpH&7{8ZQgRg$iS^QR)Sz6XIl}v1xMr?`E5uIBu z=Y&A%fsE}NaYwU!2OO(~2oysfSfg9h1&$t2&skf}&SmSQjS_qsz0aDe z<9}uf=*$;udH6ZxX}FYH;2yeCe=G=qD>$v5!=2}lid0!G(n#0-hEFE502Y0nboZRk zKLQ1Q3t{{^ESlGdW(@O+F`qM=yy)I@?I(2`w zgQE+B#c2#x*R z6hCD&;Uenb%i7s2C0fRIm`^7f`}xgxVNG`mkR7};2tLsiXb)^~^*^BIvcH=%fIx$M zmx+i**0_4Q{_RpVpY1BWhdQ*?U1}oXf=M2f=KYzfv$hYi%CGl!`M}YW(CQ&PgFY~A zPrV3^xmbhRvRmJuBCr8z;4tF(IKWTuwvuY9YpzeS5AhYiFyvzT=_2npD<$^zX>)~8 z3K4IY{xb!|>H|74nCzitiEb?LB>**fK673=vRAGGF}L-&96%!^IDSuh9;$;hzVlhz zLpWK774&G}%q|%2tG=?)=^A291Cexu({P%M?RzEAcNI^63?eoe=gyv}6%&~Ksk2+Y z5xMNhe^-A0>ccxLT%2m~4z0fjqzZ6AGME8AD(%%y7?=va)r!r+j9Rm7O_~|k&I^8( zXP60E%?vAtV;(v#skCHNRIneuHLbbg^5V%WkhC69Xa=+tfOhC(OJFtiQP#N1Vx+w* z?N+ujrl;GQ)7M|*d!BD7%G=|qUVx2Pk&enEM8JXzt*1YI2d zGf5SX7b}GB${!-$!5vgRR@NFiEADcVVC6fNDx+15R(M@Kim_>D`pqd2zH#02v=PU2 z$B!1(m4ZQi#OwvB)-C(+m3iwk)^n4MqVKLV4oiX^5~SN!MA*0DbzgS8Ap#iNQFYGn zla^v!*<3JTdu|j4V}71w8~()0)|<)I0?3(l2{h1|kA$d=P$;^39De>02!eNVo-|^; zmK9}Z9bcaCu0WYti(S6JKJa9?w1yz z_zQ@+oLib%SIf?9!zoTG+*t!+0$d!rfi@xIxt z2xkTkgTnuL7!Vj>oXoof9-M0eFiA5ITCr8Jq7a+nJcFN4RRWH#>!-2I3`{Z~Pi)EP zBBV9#1<2>~g!}KcFLdi-g^`kPp%{B&7)2%Nm&?h25A=mE8Y8&GQaVRJ3g7FIV- z05p46<<1yRXNID2CdD%`El%a@0p@$&7whwyAxpfeDnD$sh(^rGrLKa4bpMew{8c$6 z{l5(uLZr0`{0h8Mhv6s$ehPm$y`5(K+Pa^$OVX#Isqs=&@A?x+fXv#9!{zyTnU?BGsdCfvyZ1=jTex;}#=rJyL?l~c`H5=ViJSs9|`e&Rbds#JF<#lDD$XvmK-YX zls%cfmc95rNJVYI(TJopp8oFJ4&cT~JhS<{~0PFLaC^8 zj#5|G7k8gge_XKTYHOC<;%=)i@8O))O0VeGh?%!Py!pf@K?CTXFn|xz*SBGS9w=Zu zO-uKYlaRXCA?@bG9qy%RN7SKR9+sH;yMQ>+ZTrG1^?AOTSlY+yA#|H%?TA4{l$m`E zT7T&(@M~H004&$004{<009A1004q3004bH008f=0027c000!12prSL000ab zX+uL$Nkc;*P;zf(X>4Tx09eDVmv>xK$ri`wmJ~ul3q(Ll=uMDbrS~Er9c+XoKqw&u zf{GnoRB-JgilU+`Ad0R9khLIUXAx}JUl37QSr-d7RNf>3blvyR;&ADgJ z{LWQ8z&kQB3_u&Z|J~l* zhSAV&SW0q%|IL&++&ne_NF?MGP98fO@-YB#O}0Ro4*;PP`VHpf3ncs&vZ@dY1b|4E zaGH#@B%C5+YiUeOlrLmI0LWApOPB_Lf+Rn)fSm^OCVeN zx0=kHPzgir$Vq-mcm!k>$d`B=X}pB*rHg`MN8<kW<$ttQ-uLhvKUM~J8!Hm%!9v~RH>D{?d*tK?<{M#<(G zJDgV#J=XVnK3rh3dB7fLutFkb`muL{{Ky!YHXH|Gz!&%dCJ@1v0&+kG;B^c%4!~cs zCjo#3gdh!Yf#s-YtVg``2_IggK_U1P5*Or+_w$iH<$?m}|1$2CT`fVX^l5>#M<#d* zIUCo+J#aTX3|_rpv&Efpm$80K#j#O|{zN}w5HWygHm-vWRcFB_1ib&?3x#(stWKhZ zKUTxHe1xZjF2ZBNErOVE7sP=l(k!D$i{a&GHT-&#~{Bb;q>hJ3r^(&YwIE<=D8UJT|$D@AC z;``kkao|1l$4G1?b`-maoy9I=C$UDr#Li$%SUYw~!s9F9iF755jTR-FaV~oCR^YL+<+JG2O%H=#DGLF3(k5v$cC!tfCXSFCIVfjn)J@Ox^DpYf-FLef0L|sFzrnXS;Qs2;MG-H|}6 zr3$4JO5I9B%5-HLnvb4OY!iEmb|J+MznArlMxA7N<5>twQaTnwWtxj2XdK5yoxCrwQ5< zyeDucteQ|i;rfL4>J!zy)Vb;<>W9>CsejU7YWQnpYOL32)Oe_gYnp3L)10GOsd-*= zV4~_ow~6eDB@>TKyr+d~nQKL9&DYwa)vh(9t)m^NEzsVoeNKBohoR%8lcBRo=d@10 zE?w6{m#4c)_l)izOf{xAGmBZyY-0}UY3T*&iS%~sb?6Q2o9M^t7wI3;e`r84a5hLa z*ksUZFleZ2IMr~0VV&VUBRL~yqjaM!Mi-6V8=Dx%8?P{KG=6TPZW3%#Xi{hLz?5d{ zX_{+VWqQ+$Xy$B|X|}_x(;PK-Fi$tHFu!JjS~yzpEOuCQO(INknZ%z|HL2T@YUyoR zU|DC`W5uuvvnsM`w0b$&aB|Y*^^-47{%Y-Don^h(`o4{dO^8jAO|#8wTXS2sZH4Vk zJDOd9-D0~YyI1xW_FVf)`#TPFhp7%L99kW|I665B9qS$YoeZ6lowhr5JF7ZJI^fI%fO4{wa@FBx0!c__W|#hKGr@$pW{C7eO-MQ`nLFCet~`^ejWZQ{;~es z{2vAA2c!km1q=o{1kMj^2_giA2CWb34%QB42iFDR3~39chDL{O3w<1B9wrQH zo{CNlnYwZ6gK(p8et2U9hzO3@81XRDBr-Shw`s&_k<%)sJ&m%7S`c+HnjSqndVlo0 z7@wH6G52FlV@0v8af)#>;%ejG$NR-^h!-bJPFR?5HBmE>m)Mj zeKQlCiPO(@=WgIWOLb4(kor8$J#AxJf4XOSS^5Cam$!}gDkCUkXU6-?h|KEDk*xTv zL)ql)Sthr(I+!`bpGN z;89Rf@L^8eoTGD<=kn*a&oiI5YTmQLfWlwqinx&MbnM;2!vM$F3q#)mMJD`MLb(ku|AnI@UU_tz1W3$6t4Qz32Lx4ayq| zH}r0ty0Kvsb5qHtx0`2gzFcNswsQ+*i)f3uJgmHFtKrslTR(40-*&6Qr{d6dt?jF} zzu&>xalO*3vVN!b&eENqcJX%I*&VpMp~|?bY!7iy!Jemk1*Q@v&V?n8`2rH8>`(cwRSP5$-vkA2T|({W$%2NdwX_uVJt;y;0nh*wl3*Q{v7_Od)3v5fm(J#{DP5&+lg4eRZ$k-the;4+sxR9x6R7d!+TK>R)F6IwW=!pX%}JX@4C3_ z8TqmoioFX!ORntPCov-2qOETB)0Xz^&Yrl50tO>&w3B6_rQ7& ztoOir53KjVdJnAkz*p~qb*1U6_tE+h>pigE1M5Ao-UI7Bu-*gfJz!<)?z#0*u(St; zC+BTEw_p{h(`9^7#{cBM)vLDf8vXG#cU|NOUiI@e&bR0^UhwNLER-==&5H92wz;ul z*_EeqGj{x3zZD8|RuQYPa@wa~={Hu!Uo^U$U7l!fzyEDk&OKIC#KO7e!)=vw<6OyR zi$$CF&-g29Ub%jxgE-H;&ZYM{FKr5~EOpYQ9@1|Mg?ZbxxyGt8iDm76=E!*)7@e|Y zqTCYmyq4uGl}K7yMb@V0lkDZ3Th}Y2d1W?NrvGzY-Pf{BZPanmP52{-C zd!S#`WdEJ_ul^UlU9dUsecm#u3cKT)j%8OGn#kLc3nMl+H%I@4bNN567sg3AgP%@) z7kX*2cNULXN(xXnE;%ZE6&k*zS3^6ZHu}AmPVAq1&)5v@dfv_^`Z0R0QR^oQJWu^5 z>N{DBYHR7)>i*~T9Ha5=LuY9>mL@`}3rp=-);p!nUVd|-Yu92ygwMFFCFsk_6>T0J z8@Ius;njVx?3$PV!*7LiuNp4T@%LZtusO!a?j2iw3@qIqd-7?UnVDs7RV>Pj(zpoo zDH=CXUzeVNj{+YvVZ1EqYJaaeTwWeCU3Xz&F7)aWIk7l4q8`)pt(@aXN$IZ zQ-^Kcym48ZFLWQbp^=Lgk0*R+X@1Yo&2z0ezlRw2B3a^}ae(ATMR^5dX3mPmSwB}i z7N>ohvuam(;<~=tt>5}z9Ip$+IJV3`EA#hroVPGDi9WyFRLbEI8*5-VcG||t9hpTSO2#)R9kg6wd}Iz z3S%}oS3pijav_>arTG?Q#}W~?QrunfCf5Ekv`p8FS#~7VHGdF8_JsZ}5 z-KmDlUS(Zr`Z^xKH}g*(JyEoy7w0SyM{#2CRFsE>#FeOMyp{WKUouIT4CBxS9a#+EBK9sHG(r<&UX@U zb2c|CVX6;NX#6>;84w;jvl!l^?y)uHIh1tle*Z*Pq+H&z!TSs<<^4 zPFQ34S!=GXGt2C>&e?XmSg5hWT+GVnV^-v>xr$j=nqu_DC4r^3p(wiYriDaLKng{W za%J>GnHu5kQ6D1w%MsZ8W`TQiB~c2)oP-?ba^X_6LNRBXTPy9e@BOZ2ZGPZrxBdFZ zAGfJo9$_!#mHx3feZ+H8*V0!(h2(skTmSs5^t~1WwW{0~i?D^i)zq+9>LmW_=(G9g z^Kd(QhV(6cUA{0I+A2ZKZ_4PCA}tx3&e`Yw>&t9IL*=q|pB|gG=>iKmU8L(L=#x0@ zukZ!UP?G0;L7nAXMO};Ms%uvGAm$p80#`bzzFSL{`*T>LAW2BiGl#TzURvMvm)aea z+&L70+C<#8*JYNq`RM}(?Y;*ea|O1f+%7xd3V--=99>X-8D`!$ZVL*?to`!af0}2$ zx4+>{*4H=Wb5Y;v`D>i1!}J=IDRx&5f>ERAuJ;-v`a75;GIGM0(WZGFk0mWH z1$cgjPol+H<5xzE6b=cA=*DL;qSUuibTpvm=8HByK5lRRk?*y)y!nThb;kew5phy|Ha!F;Q5C5iSFr)|ENx2md2mrVQU|-IA_X&P^88RLM%Np=+zr8I($<$7w{vq7mS8TvtM#tS zPL_4|+&4~+d{dlBLQ0FF1XRq0m=pyGIw?^4TLKS(CgG;lj>Sg{k9JLT|4e)Iw_At$ z-j9#*F-ich6}(pPT8{869TP0cOS>aPSadpGpZhtMEV!i(_d(2}?-LvWxqwpRiz$;s zmfIW)q9%If`rGt1#pl8UY<1xt}@ zao%}^@B+JLw~&^3F1WzCb{q6lPt5|#JFJHJ_xzOUzu`FV9C`c06 z^a^55N~RP(UO7jxJmGsm3f5YiP$e$4poK8zDto4g&EYfLQv?ro^D%rwB{J`#W{@O zWISe-sRRmh+_IUtRi$`M#VnIdxH9GEi^iMU@Ats(D!5n8gK}Pdu`kVwC9mF4zvt+8 z(S7Rg(mhLIt>8N4JV&2Lu05=wf@z#Ns-m&>+;>5w`i<|dSZMKH^4T}!J$R&)6n`*F zmQh#UgVG~~+O>6`v)Y4_t??ID=Fm^!n9|(Vcnyk{e&@&f!8)(m42rLm+pu;=*C-(z z{3)}6DaXPsg-OOtP`SJ>_>rSjI%vhF{w>TFP=cn|^R6gpt|LmA|7A8kokyX``qqYi#)E=Ih40^Lpkdl&imfw`;2vt&REw7uWRlc ztMB!@p=mo`dL7L9@6QkC_-xwF4NThE!AUzkFlA?k*g>_3Z9lZMOPE#z)_kwsocHirw?A_oWmQp-Tc0 zVtS3%MJ*%(EHrf^;KIe3{?}&QpV$N;nu|i7bgq~dQ@2JDrU|TJ zek&!)EhsJc0XA7Rm<0I?*-GG&%O>Mi1L9N}FIcQNY>ByXciEK3vsRW&xzJ2jWPp-E z#`sMI)=(@SN6@k(z!TbepAb^U=lVNNd&+4~1@9~POxCWBjmP*~yDPvPqgTE!$30ZW zIm)$TS(jneuiVO|uy9<0_9oRP&Yw(k4ipdFM*??3j6IpmScc!HId7VFq`9sZnl!&v zKc(oqu*WRLL)D%X`iI^nccqTiJ*4<7!yrq=g$&Wx{5As$T3I%2slu?OX2<9g)IJm* z{_}Hcj4j`STUKLD3zMFy_OzZEpC@=w8ULJia6j^r>3O>X?+T5^xXfOy)UwR=T|hL- zT=IwApE+ZtLgQs|*U$OP$GXOKPy@?_j%i*v5)&zpD_ZS}my|RaF7(fH-OJ^oW^C!z zmCVTa2}sU2X4k?W7NpfOG8s?uEHq{{4ifHi_OZb@_Fdm`Oe&e?`?UX^^v}a_spxn5 zES2PM##21Txuoc3(#&B!YsNBdNTOs{qbk+%Y_dEHjhUFw4dw{DBgc$E%~40OB3ZSv z)tO8d#3$>9g_I^KW^sO(OyODr>76U^6z9~hamJY1%KWKd?#8l=|7!jg!p$5&rX*>z zBx7z0R0=?>0s|zK;JA1V?}a7`bz)vJ2a70bgM$M$GCGI?26`%`3p-58Sgayxah)@j z1evN@)zLDa6X+Kd7a-iJNU--XNUGa$_R-jAIPzn|9M?9+Uv_fvc}HLD$TpZ4he zw04m1X_R9BZceWYHaW9kV|i#DD0>rn^o+zO?Z5+xkljc#Vq*S!b5DX8ttyV{DhZBEwN&Q!f^PSjWjbci;~x=U^Ys8co1 zbzN!t*3*5y?mLbQWdwYH#$^#lK&_)CZdf{`8+OlFv2+)_8=*Lktwu1h8njBjI@seU z^xZ8D|80pA5ZpyN!WXIN{mPruHx77ULW*A?lt(;(6!3Umrf8K(l$?bE@V%6`z$NhZ zg8@r8<#V%Ge6k7ynl%qH1k~b6MS=;OU~zRf4i^&Yr1Lwcg5Q=Q6x^{CwK*(+S`>pN zHP1CdcdT5G;U%cVs859%|KG>DWc|Fq~Hms+F5Qk$Xk$lEo%vG**GD z&ZgNxeuNb1d;W?!ni%@j6$V$lgHls68cT|>BQLsDSE4~Xb#7Xh0!d2Yib)u*wScby zG0 zIOl3b?nXW1XsiZKTi|U(K!_{rk+B@+i3GJPaA8ikvc;b<=jR3Vtb{(5oFZ#Y+(m@S z(U|A9%dJ_m+}%a-9Dny*kGqn9Szt^E*^)b~C?kYEcH=}ytlVWnX!*Oyu44i+%ub){ zw}B6I$(1j3XkO=VzK_s8U7hn3K`}sdVxYsxJY&M$ugqOXl`gfgB%XXU3vF7%St;dI zie4rIr_i4{6a^IN%1p+Umx@>#g*%N)KjlbMekSj2l(LjbR=LtA=akSUA@t%rjgJ+q zr+XO0Xc81F%!>-nH77-7T79Ca9kVH1a$_UoHZc)Uu9?}q%P%Q%8C-V>DUPxTR&2T- zadD(P>Q&d3S0KT461KXu z;f5k}+dT|25W*ODLz^GzbH6TM$T(U_GRV40$!Oje8MBDt z;BEbX+)MK|$u;GQ+fvnFd#YP)N4Cit;vj%ruLfndj(6z=EVnCc>qyfTyXRZ)OGkhl z-VcjVNkP)8q=h!@k$XkRV(paUS8c7?c&EwuHEazBWQk>+TOVF;X%A}mD|yn2+SHrm@%9JK5_2$`WofwZ{N6bWH1G#V2Db&OoS(W`&% zLS3)=9>L4APr>1;)*hP$MlWzJ$mt-5i6ZXPi2;jE^jmy((iN-<@y+-xYtY)nXALE8 zC*ge-Df&`BU73(z4#-jhL@Vj8GtC2WAi`J)43U5|iGWciSFiYDQWB-8xjQ#33Cnjq z`^YsZMah33tX`i>y1uUQ4Hh*z|8n-pH~0cqINi+5H1lcsxkHnl#Fry9IkC$2pecc=esna{N}mnJKVyYylonf#;kr@EhiD9{6TvhWEI$bMS+v;onU& zCUW@63Md@2a*gp_MPb^K1vp8(pPy%524Y;0Nh`J)WP=pEB<`66^HB(H3Qm@kresQp z7^rim(m6|7^d~1EU<(-%QVXIgBuwL{z-IziQY_46EWX_rhOP5VkM;Hpzc_GpJ(zdwlCuzz^m#az zJtkCNMyuw9gyZrJAj|T|(^-i#mv3^HRah$s(B5>TU6XFM=CYJ4faBh+zMcE5MJ^Z(OMgV_qJPWqUM` z-QX7q(0MoFafllvMj#83Pb$4eJd!nf(d|N6{xnc7skD?4tWpsX#bc<>R9IaVvq-{q z3Sr7*j;&DfNPn^>uH5rH$u=hM?OHa!W)0c?5>#Yg0BE%Mn2Ku{|HKi8iEDOSv0d>+sSdkmF z1dFN`2)W$UCRw>ckS?cycwD8v6#q@=hATw@HIo}lO1Ue@I+t^*!gwutR|8t6aTf8F z8NHX{zX!yGrld>Xc?=^^IbpiSfkn4iO(W88_~QhcP?xWa@2 zRhVNwqp%OgiZ+-i+Gxd$P0pjR6~~y%qn5}GS(LnE$iLNq3uTswwicDrM~* z^-i)nduGs{dGef{I?~1O7|%^xthu2Dw{rreDFK1J*0NP~uApVBvQ}4{wVIkrtIVcF zzqH}O2^$_7S@V(02#8~x2>nUOm8VxBL3|cte#e*W{x_e?I9dFST={a_D;iLUx@3w1 zXWYdvcfNvXWGISy8dLMcc{2A)hrHLfj80||HC?s$YiJD_t zQh3gJxnJ2UP{7l;A>|d2gq8u*7_YL;D79DG{;lTKbD8t&$NU@gKzn_KU9}-$+nQrm zmzISAOzoD4uhlLP+)^(I9$yh6cU`mqxUDS(OM3ut!cwhuXvr?EN^{B=4(BaPa826z z&WqM{u^S-@1THt1uU+LSfa$kLdy zInFCmwsoG>85FKAaDnAd>~HKFY}YQp>RPVlqGoQ1XXiE5u|mD7GWtqPN4L@ zi#lcz9a2Y25hy7HA^Ol!6L$-W93GHADT9@`9qMbVtf>zFer?9KwAI_TjZLfiTEa)d zFpegy-xYN|_G)-1O-R4?`7vu?;j6@A)?+9W!XzQh7?Q#f7mA2*mVzV2C?@D%3Y8RD z2hHSCfZM`36MUY=YHiGrW+FRh?KWn0ETqYqLC}M|BcA1OV|TNRX~*xnn&3 z2qM?7+>b&)1v;U02DcP~UW&Y45&c0W3T{@tFQKgNxD>fs0RTc%eGf{#+_5D!$Q4zM zSx2Ly2Duwo*k5pdN+}D}*R@qW4`0`FjubP$1I|(U`*H;xp35;`i+EW{M0ew6tud|k zxndb1!`zn}R9b9>K1<=$oaUI)?*qp%h?LOdLFtz}T}rOzmlRzg54z-Hz=&K*QX2GR zbY2-=au>VN02ha`H_ARq|IeaK%@(Inv?efuR+E!MN&&Np$(#)hf^>mC3*nV=uW1@* z%m+_-K%5uQtY!*16ebp6gf2ACIB z*3q%m+FIKznXR-KF1T2#+LE9i=}aA;HCilPN1F-8m`mC4$ef+ycPlq{zcN?KE8rjE z_S0O@tD)>UAJKQ*dc5lIh3L2iT#fp>48^dF_gp;u4PVk(wt-_8B-@;wx_rwrx9U)mYIxlctF&zu)wUy6Ywe&v z351!(S}>y7qkv!;&LPsT6p5;dt1%SNbP3{;{#1HjN-^TgmZZJb5TRRAf^`t`SuR3E zj8io6PF#>OrjwR4A_vYwL%Y<9fQ1(Li# zS_De*F&+}U$mfYPdMySLB4IsUTrf%i$R!{o%A+Dd=~jH1_4W_ip`*v_^qI3LE4gSX ziCidB+}3yonlwcrMT&~^{7O<*q{!fUn2wSzOVj+hGhKmmCSc+OXGhTX;!s{J(i%8r|`JfnS(QpM; znq25~S&VY!dDNo+&Ekt<=HyIqr1-7)3yw5F>aNNrNO_R7Z5yg>*Oq$Q(vFt7VpAKm z;5j*8q)pmBiNKi@ri5Fs7OTGc)+T~(U zkdPGgxD(h@^c-Y;+E9bvVH5nc1{<~5^nlIb0ulmh2<(`X+ogcXr6@<|00f* zv&@9NMh5fcM2iE0(U&D9qcq=^DpD(dzf`I5aq)F-CFN_a^Ix{jQJ-kRlq=UGW_>J% zaqHxE5uu|X1W|l7M)jRIhZT%XMPs`1%z_}rvfC|Dxy|C4EmkONvYGh?8=p>E|BzBFEZ;O9h4zT> zUkVZsO6#O|M_!ljp6UV1#Gi#+^!}>9!|q6t-0pe?{+`$9JAEb>q{#I`rJWnfcOGcq zie-3z>2p0#8HB4xNi%M^Hp^H?S*6`j)n>O;ci2@#t~KI{90OTDIXh~7vnaUqt%%!> zuxmzY4r<={Tnxs#2O#SjT5nu&E%9Of7Z{#l-g?Ba#(}&d9vCBIQa=^~g<|g!mV2tM7s*b2m zk(PgHkorQjsP2b>tS#~sEx++4i$!T6mW!-!V8Hr`CdubNYpsYnncRBf z8NqkJ0-O^$*guXL#-k06qbxDnTbmGsl^h7PF9E7aCYO#xToH6+9_0u5>5Ud)RLL~O zeJZf$$h|UwJ5I?orC@mkkz6rKDIjG{(RCT2{HNLq*d_Y0@Hr zm6k#v$pxs8`Xv3GBH?8cGIa1336YY*BQki2%zcS#7Nmz`K{Q`NP1avXxaUWCYJ&i= z%i4FswWEFNyWk3~fz#B{n6Xx@SIfp@=y3jSwajsFVn}ikzdtggXo64ADuGB>DsZ z^b`XL+&%HRX(x0iMa)HrlWxnAD*69BIpHeQ#xW_s6}fS>FuF8%cq3B!{a4Z0a_*61 zOqZ0P#ep2Y@qg~O(9 z&;XHZ86x&X#1>IOpQYhC%@To@!@!z@2UETP8dFxw_-;U9YGAC_VsIr;sxT~))z;YF zVH!A2ai~45bul zVEUTG_d@8y)>3O-K?VqnJO;_xmZ@n+aCUVx@KVldAMr>?qiVlzv!m65r zC!qLQjXLKZ1$ReDh_6b%R}xH-;#5+gqA?pS1mSd=!17~^PmJ5>@ECdli+8mwHVLXA zcuS{Q>xt+Hx#e`8;$mi92~$O=;PL}48W^3n(UECF`pc}X3B;+2M3D&CIigz1$`qM1 z$xd?2c+u+95F0^E%A+VC=XKFOC2dolm?^B#DH6+xH|6{o+;0-<5+rJAQG`x*2_$8v z7M~}OiI;EXkPgcr9hQ})5fCYU2^@|hC5S(86;PbuHYH*+?wTl}N+BU&v_SjJ4@iew z@Z#q99*`xETyra2p}irz*Q3xxaEB)(!nKqqxgM3vQm~($?D6YAr2oR#%xK+J^h6Kv5O9Ng37G zSQY&v?p^#ejOaV%NSlYpR+NFmaRrQ#NjQmU(clo~kX;X1;D z;@T+!G@LIf4ifyMa+GFE?kX26K+0D18dA%Y6s}0IlFOXW{QRZ8^tZe8gTdt~ zY23|TQr?6VhhU00b9gOIQ#EeDmPEBHN-0tp#Fff{IUvwK!98V=Rgw#?u}M)yey67A ztZIg|ASgj;&ko7tvh$xzH$$rD*~PCNY{B zT_BNjzEAOff-yJcWAO6Zy3%yz+5au~ts+ITSu)#JRzXC}T0>(quT>$D8h$suY6J>pnm%5j{B2sMnA%l*OK>#kdDnjs;$HZ4MEeIt8 zehuwOuzs4bTq!9^3E&AXJ;Yfd&+w7pzs$f(8b@jB>mf`X1gEV&VGWgn^WjYivPVfs zqMTGECyCDLCjSeZBAA0RP8202o{JO=@wsNmO(MlfBytJb5b93!3W7CF4jC2jPVkLr}W znCGi;FWyl|1}ZmDi2M{`IPlR3;Ri8{q1?n!zT-rbB|&F=hYXyA>ysi6QWp1CCYg12 zk#ZhoAnT?p8&GiSN!QW9-bglYcHBI^S2p=)=``PE_?)P$N)i}mG7XHe)tnW%1bzPS zV5+N8#IqrT_blj@6p{=%+bY?WmLP^QrWmYIP@}O?$r$l~>fk1|5&QshL_BG+yp>b| zTP<6?g~-@eTy*WWfiasU22sZt(P|4ijJ}c_2rE!aG+_)1WcstjC2%XA8 z60fo5<_2qStY5VjX+(O6zbh`{4a(pNyGO4sQI1?5Xny$TkrEZnV@Hx)X_6rof+=JG zhOGJePO?M_RCw>mmR|L}Utb*0fJB8Hcu}erJ^wW{j8>lC7M@ER&p1S{>LA+9oDc%F zJzk5e4t|po=2C4TMK=G$;JBs7a@I@^f_BDCmBtivFUDTMJQlK4jEo%zo|Fp;MXA=( zM$!hT4(jW$mW*ReUm%+E9EjG1g$cWejJb%6>4a8rYG&9@5kPRI?dwpQ=IzOQK4Cxe z6K}Hbc=c=Sga7o{6)*60e~A#>|CNv1JAVEh_Oow!t9@bLF&A*_+yB2kP))=}LsPBQ zQ!}W!x!&p{k@~;FE-}3CmAqPvah8;8VSnhC~ zD^kqp*JsjVq)8CzW@|1m;uNX8fyySR7L>EkWpyZ9xAMTi zH$o|!nq+d|ejMxv0jW&bmJXs-(u55Y&aSZE48-@D@w0aE#6vbe)$cib9EO(F0;i!8 zca`94P0$%g=HfUh+qh@*j$CuPFDW5{GV&-P)05L7-N34aJc7R+NQ)EG18-rpVCOCl z*@d1VT$Ga_V?$P$x?p89L)^be$CtQCiy5oM0}-F5q%meQjrHy%y`OFtDDM)W;- zXE<*G<-4Y_#x|hTG@y)TA>dYlI5=;K#VNt{lzdbQlP8(>Ej zW^7As+_tpVqrf-e?!Zlvs zdZ_}l6y3U#f^|9NCQ|(tf4Y_n?yDuGH3~*`RTF!ozh=p&Q&o-P12MXsjM|tWC{$IRzbM5x(4Lf{<*5Qd zl0cOtH^jja-^V#WQB{FZfk4l3b$=@zhY%?7fU2rMCg9My(ZQio=94IORkR_MsO9%n zD1Eg?!ftXaiR6#62Z4J5B6E@NX3Iq4u4k{MJ@i9$v!zh(YU-P;z7-A=$mm#Z#8afy zRn>SZ1EFG`^pb@>sa!?41=9+SD9@Al7A{}S8VMJ<4+TCrXE0J?7EvLgKlg1zfn>FLLz-rAa6xr;AS zy4F%Ks*w*3^tFOVgeJ+o=2>f)iz0$&AhIWgxO1GccGu-WpNFTdYBX<~A;({X!n~Cv zl=UL&JK+g8DGzm4!3A#QhFoZ<^&wMSvUO)Eh?18H4thF++TUr_@Y`Kvrk9MLwSe%*>U?5IfV8#2HBNvL4rUVOe z3NlJc8KRXHS{b+b+cQ|R>wO4amG}ujmCzRnC%KdyL1Ez-8yT^I&eJyEdCXE1y$pJy zqvW~}U>*s%B~*}QcPF@Y3J#PICAsHRB1FG)o}W+yLHj6GDho1?l{re-@AxDxILI)Y ziD$1x84{ddB0n*LH zxLgN0ci{zJJkfW!=_aX%rejtuZ1A1RagoU#ISb!s9wOvCR=45mQlyIdxomC>3ykn- zC3h6@T$};U9r9q6+;k$=N?8&UA-H@(_`EniC`!((1`X09;4|^3a6-5{P{KN!Ci5~} zDxol{w^ig`)Msn0=0ci+8x7@0N+n8Z1y)+RI0^+;95Iwu2|r~yXS_7w>S%`JR7VEy zN&>`{H%25=4`Yt3S7jAYOic0Nx;@ilWk}F**@uDN&tu24Jp{q4%{Ij){YTZVfTue=M^_C@H zS_t~md=FW_iG}00C_E6e3n)X`noW#$d4NuR_wRIi_h9n?{Q?)$ZGi^ z<;9hgV9bRimX};{LV-f0Z$N%R6@*~uNXe11Bf~|m@!-nSx%5ht9i5JLDN*7($q4g3 z{O#v=B`hFL{<&OtY8SuNxz^$|DfBPSyObg!~^D@xCwyfzp3k#~ZzguwIUpECC~4rHry)D+hk z0T1j(-kc@v#c5JqoFPR;C#fwiP&mC0Ue%ShuLEf!WjfWj$0OKhWbDcpxZ>5X*fPQF zmojr+DgVmXeU0@WuIhmakda=Hn4bPICjAtZzjHvzIZz1vztm+?!a8G-EXU=tpeQtW zF9kyQMZQ*2xgraf$k;`4mlQyZR3>1a_wz_RS7fvp$ujWbvcdI{1LR0>VV<0^DUMPar^)|PRBeP68?k2|k*KWzziAfXoWjCR!(T{Yfr`|uq;yqSo2hc* z({TFxBJO0%5P?*xjposGN&qT8lb7fS1aWtwimxFn%o(8}TXDIvD+s?AcyRO&>$ql|6WP=g^QoW7p_3w~Pklwsw$a~LchuOPW}>7}wx-AW?c({f zBnj-IR0I4v_#|b7Wap^KN4I*2b1e_2DM`362vxOmI7vFLv3W6Fc4Zo#^&+I9ewUtr z!p4<;Vut59>n_)@xca)QzEei;=${r|?_WnPBIT974vJE6H#iYlV^QusDFRZs^lW4Z z`0oP;y38K@5DVAl`#(JZwQR63VMOT%o;-3H+mAh0AfI zmMc{u`}ta1pnHcJmEoE}$#jJ#B7BESg?5F*N@)k=x-9X$!u&4>zL26nLqqdQChPa6 z00)pE&y+8BUkEg)kjoELs6y`-_wcurnotp7b;f7)atv*u7P59@QwLG?4K}?{$H;DG zt!sj`-HiLZiGY%7^12~Mhvxm#r5oc^s ziITfN%0Mozqerj?RLX0Yu8t+~6e*tagn!IJf8OFV2?gq54xeNV7$W&;9C}03e8x6_ zKJMANmx$h7$mrTac zb0}-$7=7bqP$E#2$mC@(BrwXZ?9=)>l%{g~fp>n8To&WjeX-yE{#Sl%?V0lp_;eW* z{S7$Z`YFD851c-C(H?sI8GG`XBlg782kgMJ$Lz$(a{yXErN5*AIB#8@Cv3Rq3?8pB z&-yx>n}8$K%{Vw`Jr_Eyulpi@ci8~1L%rR;5BK)ih@#=f2S7`vAzBmhLOAIR3Q~cb zOa&&#=r{@!3P(9Ge4M0jNr;c)G6dd7UQN! z5H=ZpsfQ+LU-?N!C*~l#lbDXvHp0DWX@sCmk+YOs2@N}~78hk}Qwo%Wq>70N?s?SD zr3FQct1n_Ku0_zGqLYgits{4f7CN$tdmSn9oD>qTkk-|GACy6P@`xJ2_86pS(=DX5u~-CIQ7*;v!Fb-HP={sGa=F>xojl4WgYvn)U)f|dPFjh)H%UYZs zw+fKH3=wbmHav0Yj4HO%A>vVFF)uTUq(iYv3Q+=KlS?m2{+tY-HO8iK!=-I!ORcqm zPR-^g?A*zd_RPM0c8al=gDhIRVXM`&ZLt`NQ=ZW@fpi?Fc2yD7DFy$oHl<{BJSQba zUA0A`PR6LvND1kP{H`<;d6fDo5H^wh9pP~cxTLNJ1yuh$^3e4uMH_m8mykL@pGjF0 z3aL@+(m5!s+C0gqls1J+OZoTI5sR{Yk>j+q*`@KJmM^Utr?D4uLIsz%#-1yD+=FtB z&GIV3yV|OpSWAWR3um@@UZWdic=VVvQYvOS_)-XAb=1? zuLY+acfVX|?oJb@iE<@MFCgN!NZX7fSAOJj^Y?^-V_2xj`As%B-C{%2jW(Ji^gl=1 z)~Pg#5Q}uI-a6X1SY2bIhp@{%E=4IvN)jo$>cgUn_+mh5C0Fh^l|zY>Dj`iirc9b> zJ4MSf2OG(W*HoLgn(Q#syW1v4k63rtKGG9B%eVx25;1)ZqjWw(Oox?z`W9=KEf~=&zR`PHo<0zw(|B*|X<|qchFhvk!d2{_ES`Y(M^{ zH`+9%8Po zh?f6>xBa-i{ADk)V>D ztfi@j(0Rgu5oB(BNPE!aB=6J2bk2@F^+mgI^l=*-?)MsX^PmyVlZsF#g*h)KvQ*Y$+M>jq6L6@exL%faDG$ub z%^eRC^zeWt@-gcf$QztTCNPUeWyVqvs^csavPX*UfM*87x^5yOY3PRatl$4IBAFIcF-#^qYZfS#BesZWAcOS~#n5 z`?fbyDh8b@qlh}W^A;vOJ;81oa>MqGwy^MHgRmr2pq(sSm#NSSWl~9%o zE7D4&u!vY8)QQg=vE&?q=XZIj5cKWU$s{FPr>Cc_zrWwQy3X6VGiU4qh+Jo9r}gw) zgil8%ZSF(LnmWZ5z6b@I10^nC^c3?`e2yWrq77fIu&+)TSYj(ST`EeZs3eHWcE5na z;IHiSpqul`w5cS+Wkn7YnypOY)1VQP zWQ89m+3EOHFW!%CT<%?vv(MYe2>bA9UQd%4@)Yk+vY+C+lQukj97Gs2XT?^5n>tor z!-8DPJZ}c|ZpEl;wCRbAO|e%%)@}x+uF1B6`c%WSYP79eciIM`;pL>uD;DmJ>E1=)E|)g4va6*(M(#AP8z+9Fa~46QwYyTls}O4OlcdlHEm9ejXcuow%96N* z?#AOxYDTrKjr6@hswhKt=>VbV4RCzxMYLBrW zn(nvbkgpH3COk`ul5;4D}J1LP&%L+a$*Zg1(#e^UIE(={#w__pZ0vop-;=4v*@qayxzSar<9?`*-%aFMi1$ zIDC5X_y_*sVSD7>&)Z-Bk3Y6=d&x`eJ%1-<$!r5;V!YAzx%(foFMR&<_J98LkL>Q} z-Ddyu(@!t{_T1B7v>$lcjrQyRbmX$_Ep`8U-}y%SuK)6D_UPdY%Z}amrBB&g-}owf z^RIn8e2%8N@9#ctU;6Tw?4y75+xE(rzR>>r-`s!cHxnoASAXjD_Qp5=+2Uv2kN>m1 z{$M#w?SXb|~ z4dL5`Bkfk%6lDwYxLq`)MW~!hHvyZbxej%uP&!nA*OOLy_;Dz%x^i=?jwlxuh^!&` zT^;EPQk1XPLLf^+yd%N-)1=NH6X!@-z?szINQ_bs>g?GI*4Il;A>v&(ZLGHTHsUQH zXU?D?O@M+GbK^`tggA<#xIQWofX|V&Fc84?S;-ApQl4CK;{J2^=4ZW#=;{IEd6!gI zPA&!|k4r17FA@s@=7|@vMCVmXK!tk|D9P#bRt3)?3u2cjSyal|B!8Xy0CH)bq@)XQ zvQPE2RoljK~lvP4k?uj!fHim2m_i3V|}BlU8DEpvTUiIYN%EV<3gg z=a7GZy`5RDJIT~H9G(ko}G^`MvKOT%GwltG3N|YmXrY1gB678 zaWCcYwush~Yc>>ql`^J+&_Xq_)=+R~5%!}Xvi;|d*)Z}mKYY>3;7yd1(jrbjhdP8B z?-42!_3K*WI`U>kUag=wl~5)fKLe7{3)*}3)CoIt>KKaCNjr1qxScqD*v_3jWdkTr zlcN|VaAjr~$5Rs{D8oHAO2EZf?>QUq@3P!Dq-5qyNp?ClHNf77Leh)N2_dzrBrbjsrLv8pxk!zhcG1g_{;}^Iu5SsBGUi(M`fKf*9#0>MHz_kmM+bL=% z8nuXfSO(O}O#vOs!!`=!J21$Ym||X#d@&u;}ZRh!mwfn8a0PE*)* zOiW3O-7pZM8MvS!=aUp}DHAC6&@YrXt_B&IjboJYjEmC~$awBgiZ>LDa^`)wu9U~X zyIgB5b)qC4m9m7=dxB?mnD>VXyg5V3n?Wh_o(f)dKUo*xGAg2agrJxUJ-v3i>w=x? zx@c#S*ImPmDH4W4bhNTw=nF$cK4YX&Q3qEYsF_l%sQil?+dk!dWV@SL z4GrN~G6)wdYVD=p@kV>w+us7I3^P009>4zswofUECeGOJzUQ~>{?quO+3I)S$+2&@ zAOF$s1PBb?Jqz6xy9dpv%T5S)?(N0-D6ufZzOUB|2_LhbYA zAR^Otu5-w_Pb1@0=$>R^Pt8HFp0{BXqW-Zt>m8!P_h11eXT~~FlumX{+LMQS?6CtE z?9jKh;G=d;ye@LCW> zV4i?*U0_ivRpj>QB(JO<_!1IkDvP4zlwKMI<#%Lc(oUc>ojS+4X}_*thpS3N$#IZ0 z@spB7%_Iq5RvBGo-pwkyM&_7^#afDmNO(o}kmjJ|)==If5y6FSi8Hfua~F_YX$TkP zf!VZmlkL5BukG2pi~iqg8RpLzzaJi_{uYZ%dH+ExA38+Nk}h~bB>$9EDP>Dl*by{y zlPnbdN376$#1@DKL6v2SC}$Hc3`N+f4Ww2mCzL-9;gJ|OR|uy^ai5O#TYj|9Muu3( zhI?#=#b<7MY*m{joR#y^IZa$&7HB1lNEQy3vh9wKQ8#Q@`IJx&R2GN!tCn9*HTqD3 z6Oi9GHDzsYM}uu@z$L?Cc8&%9;4@FN*q`+pfDL3&-nexKA=*2vu5|-hl54!AL(<(D zQkbxK5$Gx;s)#_jc*M^tgUFi@`D`iadhrfQ{>dOXg%COVI5oin-DguHeKybihJw#3 zCMpRV79>5UIa~(glik+aeaucBJ3u|Llb$cgbApRFny2pvS;)zvKX7`#^&ETLdJjKp zee694AF+#v9=Glj&)S8v$L#_r-XLRHwae6+rD;2sb-3#zYWJlwJWG>W>RTbNG7n~1 zw1)e8to!^KJA3@7ojGyDjvv`?#|}Mdr;j|%XHQ$_F1DEH0~+rW`2d^wdRU2MQaC(F7=vl$*&hDR8`wvrq87{)P)T&OXYx z8y)TfWf4krp6`26ct*JODa!lch9TrW0b;9Xroz7kO7#?^pt7hI;jzsrp{;iE@5~_s zoY&}_!+;2vN^@LF0K5F|2!Ze#cN46I6Ec!m8S9mDrJB+vC`ME&voU1H46AFB+Kj3Y zBEDjpu_;t3kFlU4-%5l#3xQbyGu1WKj)0F1fZl^RsStWv$ue0pRik%ulC&OOhu~J8 zKn4yt;^(>5K;~4(E`^e%=P@!eg;J>nYW1dUQmW9FV2qR$A{F9IA`etZ*A*ol!)qXb z>%EjIm79?QCAVG3@b9iRo@a%k2Bn0#LZxa1^e3of64a}?N>OjhD@t)?)di%$asj1D z{a%J~C*{lYMu{#^QdU+pdkCZH0%%hg3StjYwO#PFdN|(*O6?3TIt3U>8LUpnG3w+t zq@Li+2ny{WebsLRy#sckyVouZFz0j~0t|{MPV*OW{gVcweh#X}LZCK?zv%_qBZbM? z9UiR*s?3g)0W>*8@69RLLon1D-i)QU;7Zdh7Im6X$=hG}QhUw!yvaWLHy^W)e)t3S z-aq_fdr@mhDX#o5v5L}zTY|JKnKL0wSE#|5HEz7a-u?R@vj6k3PuN>tzJt$}62?>Z z((itoef;k}X@BvzpR&Jt|1Vf8nTUOxxnO_(k8=5u&3KJL(%;u>d#}6MUj3?9+gpF} zx9xNP_&4?kfA9zPq2K%&+gu+ha0u7Z5*4!lhV8q4=&kngPyKIu|NA~{|NPg#v-r7q z9~TIgI`!B?_Q1md{Ytc4XaDPypXS*2*+>8KQ}+H}{1FBk8}+~*er%uh{r|*&U*nel zRX^IZYn#3B`M21vo!gi-DKgmRU9p)$v5|{44lEl7lGR@B@u>_*&<52(lcOPz8)zKm zYIustJ~eMc6uliJzsBGYSzakRIYb!yw74!z3?UWOtiG-FDcjYNwd=Rn*mc`#Y-ekh zVzJ5rL^RygpiLrBhq}*N=jr3V5UkoJ<)sB^ znn=4z1a5(eo~Oo?>N|}WGIpLw({mSbDUnD`#Ptc>9wS3z&;zrCv)1D>NIECN!)fIP zD)FrZ{kn1{)IwaRDA^$2t0tY7TUd-?U)p-ihw=jRN>PaAwrlq;yXyrnu-k9H6U1u^ z=O@!P_tb}Qn8LSTU{RUsKW@3P^EQtqZ7kMGMW9J6gi8y^>_iV~8xG;k1F@a%K`0`~ zcs>iv-vvkqwL}MP*tp4!iD?uDp%PL82D(qfGaCRI7y?;D5mLD+BHmVRQXrHzKm>KA z3dls|PpVl+Dp4foCWmbnH)a-rU5mk_2*6PSM<%FcBLt|az82y=VdQf6;@Ulgvh?`F zkAjMv_2{JyD2tm>m>OFtGr^)213^;WA0@d|J+BO~y}JtBbx?}l2?dA6Ezx4N*5=WL zB?U#w0S5_jng&T6>O5{EC->R(xo2#C=sc*~xIYs&-#w*644Z4xP98sC_uli*_SsK; z!tVdVzgX9q6E-u}XZe9n%k`YHy!Jlanz*FL&Od8oori4TWP-6?Nb zEWv#8fQu1~7}Aj7u1=A!DV>dxibCl)P_99*$f99200eaa3f0wWJIaz5ALc$$+!P2S zknnaOFr>?86^sI2^rs)Z$;W5oR)AI zj=)7pn~QR9t8JR6JU5|LO7Rj;lAa;oW4R)7Wq}0CAeaT{A$jDXJP~surh87mj4h1M zTjjXf#)WEYi;-(k<#>=2&ikYZL5T|-Cn?2>sP#xx{!q#SDNItP)+*?{^bTBUN>(@7 zTmR_q>|=laL3_&&zQ!&-{`dCwpZi&R>sx-z?mZn8B|UtPW_m6gc{<+owzt|Z{PY{_ z<*$CNUDvLMe+d$8fCc|^zxrFYm52dt&;NmU+xOjl{oYzUccGk5Iib z)=?Ym8U_-MK1M@5@aey@_x|_aw?F*D_t_y}+tN7?o$IoTL#r2*=h8L*-j8W$s3qM% z69Oa+N`N?nQ_|Sb2r0V8S{qdK7T!;70v-%mnVU1#+{CU#hK*JD_C?4g0;|5tT3a}t zT_kI$EVi*RZaX(t+TP6>+p{rgS8d7I)tghcXG7ffZiv}lKHJ?9=kK&_Y9_#!{5&&L zqc#kWN|r@eSC<_!#Ga>i7dwNt>e2Cl^97vN;z zasw4Br7UQuPg^6;prLZk>NB%eMGmAm+@LaCKgykDEcgqPoi@|+Ec*eQ8#@bhKJ0?D ziUoBObMN}=ZnLf1cjC$zwv$JnwiEER`g@LXzx<9ICFNz%GG%q6M6KKe|Eu(g+;g7Q zTZu)bJfWD@;AWF`sI2Q5&?hAW%wP53tnxzcil)r(A`Fv+!z;68eAEYLd9T=g(Vl;sno@6aa-YaC!z9|2-hG zr*XrbL^Lmc#)zWwrp8wn8J0|mNl{{MOKFPJ_8786u6ZS@oCmp?0Qnsq?6p~xR4GW6 z7-!-liKD8>RzD80xMf;K9dXD#II6IZmBFys2VDr>~}X{08f zs1UUf)hm&!QlNxrDe^dmQmFH+O{}JEQeIptO0z(PW3Cq%C|&@ZdoRGBDuCCF;>tS% zN45)h_t<1VvH}AV6n&bMFa;uObGV!3D%V_6d6hUGkNT-HYnsKC4|Sw~0X+|`q5@>3 zB9C%N&__9a?XMt*73^`|C+K5}K;U+i?zRS(V#!c!MTvk7*%u;4y>+)n>+c#XQty5Gy;F?P#ZB10! zBY*Qwd-G5IEN;2C+1uasZu_%8`-pw|E05cx%G3L{Mnkb+%1MNFX}fe|x_=Shx`E3} z)Yn4yK6}?Mzteu<7k|m#`ObIP2S5BV$I!H$yEw`NTx$?t_Ll#{d@;k|8UhaP=_5Ng ze4J_~gvixR_+zWmC?L-1z{SI)&>~$1)Ef9bz|*+B3XrYqtKzn6Lyc`|W1>}~u%G~S zRL@yQ?Yy;C&sbe@3h0#d0uTXb;3JGo zwfi4BXa^3RwzFNmcDA!;RbK|-seDXKHlXndT#BQ(#KdD#Y6H!~Ebgy{T1eh3>>&fT zBFeCM#0`>*jFZTnHlv(NF6?zy@scK)s1q!53kU`TKg85&&aZqvF>+HmPeuxqAZaH( zhUgsM6;UU}DY9@^HoP1TO!?d>3E0LVNC)Wr*x{r0g)e;39(eF!NWB-F(o(g>J8EoKdpQw)1V(3PtRYK2BtqiU)>v`Gra_y=yAD_p#VHNM zU4zx!$^yH2!v^ah%kTma`NZf2+-7}H2L^3y5cfzQZW3H|LqmN;$gWnJ6fU2lJxU4T zN&o0vg)JvosIu^uRNkZkC0h!K!uOjR>ulTRO}s)92i-VN0@Ho_pS43rj!}dZ?h=U! zH-j#UM^TO>hg_N}C(*1_;EZhy^|~GHksNQO8i=D?nxnEJnwl zc+ejB>_6C3_ufP9x`Vi3dO@Tnyat+Qj_29+4^M!$&al|G;%?k&*WPps3Jr?P)~(K2 z5wa7S^Bmxv6$7ZW=)}BkVVs4Vu}V~`GWu`bzT38J-)kG-gtda&v~1>e^B#!HdvJa3 z_O@tm*|5zjYa0TWZiU?ZdK4x#(IZG@Jjh^BlqpDtNA!t6kK3t+>un(NY!67%jVSQ9 z-}XY3rI(^0y~1w4^#yj--s@}we75?!2GAa%2-G!%8#IC;v;gtHBH7IISExTpElF~j zLE)~ds%LKm-E8KSk|tTuOrq2(GjNVTY!uDtsTQK8dgWXcC9QyQl1EV}2i3?=odw-_ z1||0ql#VB@FmV917Y{?{BX<7eeW2bC<7zwxAM6-`GY9GSqbL|>L5fCDxR4K!oMHqh zDDqDOa$asj_&;Tg2^knOpm4dVAs;8Ak;ur(QAAudErmL1{EJ(ZX05CQO;mb?m75gY za%8WrMmlH(w=M`KuG;9-nC|3PLHb=C7IUbX8szMm4W)^(s zc?^;Q1y4wdXs{IYjEX7RjL~|f&6TD}8uRmay~OT$=qWpiV3??AvY&Y8du)GapZ(Em zTY`YO;%QcV=}G@CQ`y~xm0<7XzY!8%+KOwCef6Dwa`dzBvG4hXzpxX>C@9-IWIJxS z!#?tNU$(D&_HXRQy%agT+=eo+02F*_Tk2vAnSrZ;Mr%q3Y`(?b`L5rvU;ov2*}LBL zF8lRge>Z%m-?QKP^_%GjYyFgjK88-pMvZf7!7h9DSeJE? zDSHf8;pF66lQ0^fk>h$^B{IB_rwV%tE)EeBny5lAM3h_*8l)`Z2q{In$z7O1I7qRm zC(^45XnhM-do!rpEGZHyP;NF*?6(7iEe(lz0Y868sHYHhEEe&65IlmH6egyCrxr%4pUoF_tBz6ohk zGD?L|OIb?GWd^#G#?nh+*((fufki-Ncse>Z+0HH7{RBr2AF_uYc)*@PVe0Pf^APfF zJ9gU5H{WX4Tz4(^M{O-Z^HN5YrMRRRxhs^!q8_y)mt0WTGTL2ehrBZ4H|hII&rh{_ z3%sF_yC{_Q2pP;{85Z1*T~@VmkCnqAD~E`>aPhQ_?|aaC9{IeD9AnWuf55tM&Gnr* zN7Nk3Gm2Xr7t|n8YUfGrdm3c?vBwYE=kIyMzI5*+cI*s@9j<|#%55}I!TqjR+Uwu^ zc6-ea{Dj^9;#b;6P`)JPU_u@C%S+Z0KB=~^%$*c?bIKp3=sYQmEP&+IN|UZ4snB+0 znOC6qEb_|yuJ=*79p%&E`$|aj)pd>V^?-tv_?7;Un|-OWRC>Qw`hm+SdQy&@=jUlS zn2Q97G&Q%|^Pcxo``+*VVSD5E{g{2{cm9CA93<(s+h1T?wrwYRlYkS5(;`qyG1vT^ zk#b7jw;{6BA34=$hffR>EjZ(u`WtJTtQmy3hO#JWQcftNx8_*^?&=IODi2pKk1J5S z3Uhn8AUBTJR!(OXEP}!3zbUfFn%v)goRUK2#ZHhR$mrxwQVym0nLZ+ZPohknWxl}w zgX>m+r&Y#x*@|wIYM%dSH)W?-j2SF3&_Goq7$CxN45MTYBWw~Ra*~DKBLmg%N-T>U z(l8YwtlUrPM?K#J#+gbqt=z=fx^Vumoj?7ob)7n5=T9BBi|2?C9JpwMJ?HJ%vml(0 z-Ve(8kexWZpE*8GGT%DeKvZx8#H30R_ojhXsvvh$&e3Ygg5Ih;ZPjF68-<*`?=hnJ zj>7FKx6N=6YvD6h&|aZr;*ZVqz6{wxR0+x;uX0O*Oo`)%8bn`-biYRW56?#tl6!`H zXCkhngkgN9N&AtUz<{BYRE}K=mE7WJ9qS1 zbb@E?nP;A~haW}GJn^JmAUL9jq}W|YPFNqQb0!YpI^TENCZ0NJvxm-G>{P!c&J9@w z5qK4y1ZrF$aNsy=+0oSjFiZR1RhOaM0sF_%@bSjGUSsz@^^E=5dwB8giG|n7YYQ@gm#~$chY*$Nj;8Cr$ed$l$AAMY5uS2mr`OKsCQ{R2Jz4-ce za`asGXKRVkWuFOYsA3S6@UB~*{~h+;-+8zF=5POw{m$?Fj{W9u{su0=U$A%m#(V6o zZ+bnb$r@?xzn07YJ3Ur{T13T-8(QELY#|#s;j~T!#Dc+cSU`c8fQ+q)UrUF#HsZH0 z!Vkh~5(g-(5 za;quPo3c>@9E%{TTs`dNEYw2Ps@RY#^Znd&@1w#@o(gufN&lU*GZCQkMP#6@k zr@RJpDC7#Sm4zr*-K7faimH<0wA#0y#&uA|?~{1W_R3nquu)AyY0H$Z?{`- zxz_Hyeuv$-z23IBP`on5Gn^f?iGi~$_=jz32tm){;zUw}wHK{X{vy>PCVY3T$XhKr zAvMkC6#Lgbx2L}sR z41ob6T~9-dor0Subae~`vx{JfV`nbdkrSPE>{KV=(YWRaiEi0`t=;tESKC#$znDt* zS6d~V97RQjTs|Q|q%Y%Zh3rIpCReLgaGSzM;T%$$Do|QGHtn#@J9fLfPUjWvKuKPm z80{|OQko2Xt`bP0z;nnLt|1y+CQG-H!nT&U3c%f3N?)k8r@UoKqS@BcZnxd?e0#}@ zUd5Pvp6%X!wQbzA-Rc^eQLZa}-pqo)Oo1j16A^Wh2r0>q85E{zI9Dgm_1Q@lIE^21 zqO?y#2A`5!RXeUHMeEJD!lVSeL|~P6Tr)C`LcK<{SFfvSCUSoZ8IxOBN_sg7W#!@u zT%CZbsQ7jzi?!zb#PB!>$S4RC5yEgF3!oESrN^jzZ!+LCzGOIf#HRQ{sJ=S*&7u+;i!8bMI>A)aW z$}hm!lzUj$Z`z08Tzje1o-69leYiqedHN@gdBs9+Or3qw!??^+u;M`dfRu% zI`_3tA_;oKKdXC%|r7fA= zfUs`!KMRNc&fc;gLFYqFTH&P#xV0wHrO&PmHIEU2^7bEigWa=V9a^+^z2tU#@Gx3@ zwEf`AUdcNa=rt}fL^!fmm=W)`>%Y+9^8L1e5afhS8m{{Z|5k&y7}7ewsBjC zs8V;2Yi`_ zUnF;uCi^H0iVEYlL+IVy)&N<$7w*jf79XVUrbYw?1n~ZDToq{Y6q{89TR9PEZJT!6 z4L9FrH{E&*LURY>N!fL=YN#zFTcZkVsv66z3X3L7d5jt|Ro7zz)znb;iNBTZU-?AV z-U6RU?NTJ0X93qDAkTZ@Rw5Ge9vxPQc+c=8E5 zaNr;jQ;@WQ`BhcD2=T3%w(Qy5gz{8l+uDW1!Q~PR0%WaHDqd||)~vI$LnwNg;PN&6 zW;RW5y|Eqvw}Ul0C1P zr_=(x2QiTw(BC@&HI#`-=y|$Jj}UOiV2G7my?I`wrJM83SoT#Mw0WClwp?cwHEp(K6s79kJHUR}H?IN{04Td&U z@Vx3NchtU#1fVtbeopaIjVkw2-bU!-{z2Ts!vi)jG-M}O zK=&Q!w2K#!?I;-)aYe;Vl9vfIWvG+mNnb$JXn{3MDM7-zAq>xPGe;H`r5X^k5^Fm)IKFEp^PX!;f3%se_QB2N|yfQna<vScx0X_3`msmt zK3vjY0TsXZOP>cp{<1yu zJ?&%a{5kUQA*W95KWOKlJ%TcI$Q7q6Z9d}D8MOZBs8e73h<)#Wy3<~F_bryZ_Inq9 zt19Dz6Co#)FGLaQCX1=Gl{|7G#PiAyy`HmQwpZMU)dh_Gp8K9!Jja&1-)Y}-tGGw9 zjxM?QN>OmP-hFF07GLg%fA#0>MX&e{U&Mate|_qbl0^j7U`V0jNP=%p&|TW5O9E8w z%_Fc|Z~9NTIKFRD(0uUczQZb7uCflIyZ+ag&xZ3PHrgA%`v+_@kmWby)(z+6;FC|; z0Z6Zh_CLemIz!%)0ff{TiW3ncgk>*?XCv_hY&3#kJ9+##oTM(SEG%oHvvzOWYS%Dn zo8dD}jbM?SJH+pYK_R3J5fbiMmFI!isV}y<3b$&5UBA1*wh=+MokW_uQAn=dq4QMR zE?k7WH^Gl;P1{Bg$ZhRQd1>JZl!T##r4*)FBI!cuh>!)hg8vm!ipMAslf#M=ABB7;E4Kwj;E9X_(qdHoF00yR@tWP_8rlXiy%`=8 z;m%|Z&X65_ffOBM0|-=vZ4XN701A^9n*mVU{sBUFN#D@jKW-O^v>P6fg^2%N5p^gU z$~}}tIB#kPns28sQKD|X`D%OV%kH+@@3@@`?35)@J{{Z%dOo$}=2Doot-+(vLa#hk za*@nI7VU$_qi0)1T9KNn3=82D8RU=J<5+u#4;=u$FWT-syX}@+Z?mhfzm}-LP25w4 zen#QNeV+<%G)zIl*`ix&~@eHaQ- zsv-9(L1TfOWYeH=N|0HRpmtwn4X&*;QKQH{N;_=cd4oOgC9kr**WBdyt3-`T58ySq z+(Zx|T6{PuOjlBxq<{y7sl>^;RC-1CE7(l=$dpG+xzPeIM*Kb@9KkDj>9;;#qJijW zkk6lxRoqGP5%F8fY^fwm=(`Z_#juBlc8LT#>Axh7~Ydr}9@WeAD&4tr4r=*}vt_E^@)e#7x$|wbId>mPjFchd{;#s^~en!92eba<5s8r|dlYXxWHm2}at!Z4++9O&H%8W89M>MZ3GHP{H~&&DhiWBpttq z9GPpXw7HII8>WiDslF~dNx)ApvTPbTsKm`z+I;12Yu#>t{Hs5VPm@qc{yv2-^V9b} zZ5yw?)n0tpb(%6RtR8*rK6!c>s0jvkutJymhyf1R6jDic)ytbs44`Ve9ztYul;g>{ z1!PLywBvev;>+(1?NteYDCAOqI$X*2Z9o5)_JW<8BFk*r9=PY9?DRmvZn))k+krb# zwY02o%s%`{AT~O>hy~`G2*3)FU);ibp$i#>hAKrU6Xvb&f3N-5pZgJOqe8p8aQcs0 z_n2I;32W@wX773byX|LR|GX>p>3{6+6fWw*mT=@zl82F%dsbO_Q94<^P;}bp=M6;B zrHEh{f}95&EkQ>&D|z1nQCE83P*?5QtL3)Q#7rtNASA`YxKar8!ljuc>1oWa-dbrl z?qWQkAno0pITq(h1kt#%bOYU&Tq9mPP6TjJ17#0a0nNCO2P&2;3=PPa{SI>U>!OZV?t4Ia+#1>~{DN$PHyh4j(xLk@^rNMxM4O9)Hpv zdt#p*B+2Y)IEdYSQleO#;00(wpDQEEh(&xBH;FG)+@#Mp+EYu7yG;;=>svNZ%$N-9 zOo0lLN`^#|v_(-#D>j8v$KgQC&Q041k}2*7fw|b* z_lt^?xJkk7;`wd7Yy^nH%4SP3QoylLhe$3(2?!jK2z3o1k&AQ;7poU{+fx`1&s-R^ zCr)3m<2`-kox}YC>X{^GPzB1rf~xbtOSvLZgY_Hjnwwr|H{W@;U4Q2b?D;Q$rM>Lc zud}PJx)Ht?!dbjJDJ1lz4^`K5M23|{a|KqD*CTPi;ZW*?k3 zvO6C;$v7nwHe*Dtb49XBks84@m&3(7O765nESgUpP>Ck;wM~QeLPBn8#7$kxd5KOe zz&%rrv^k#397ygwJ5DkuoeQzis{-0XP==JHpfH8^tGxtTUzDang~tJY;8%&)SjA^b zJWKWt+A3sX41#ns<%YIw-|Xkn+)bkpX_=XtBrO0atdd?9SfIfbSqI7D9|P5){$c?% zM+~z8-L)gCtBP$FWrtExm(2xEqe;kN?OI*_(g#2kkpw1E2Cm zcR}pG(RN)+MFo_Sgb08uw!R~y*8K!I_zshBw3BDmU1n3~7eKSh@M0ubGpK}6YyjEY zXsM=MHrKG-X6m-tWX%?{_H9Amd!i1TKkqw1YQso zD!GdxSB}R*uW`yW#p{Tm-q2+AdpBFtO?$2R);-pE9h|y79hTnFVwtV2mf03~+?U%h z%1ZI9bN0w5|JFYDN;S6Gcm3=;?8a=~e&aX)ko+oS+Ksi^cl_XY;(t71U%2OC z2Eef0_PX!4yRTCoCbN4#_F;R1JU4Z9b@q~%y~1{GYF~2QVJ2Ew@OIz+Qi#4^vh#oc zC-xQmh>C2e*|^u<@iRXZav}LPXQvOKyxsRCTH}np?0de?Zrnzv`By#mp5OfloEHeX zC^Oq3gTLtwud~i4zF=Q?;y8#1xioJ69{aJEU1bk{>~HN6GKi*Hci1al@k-l`wi>pg z{r>O2kI8|crhLcCzWsY`2Mb_nJMiFV>~mjvf_h-^U_dD5M1;K+G=nX&iqsyMaDUwtE{BQja z1o0rge-TMJ2W}kYOOmywx^(W2bHH12jnG!coXRqIbRD0ju*Bq6YKBa^0CDu$rypQZ zAGg+xyNEE_4jMu7G|oH8SX36~YLc#PYC(t-h8rhu%of+;AObhTBJwYv{+nfOmgRVk{6vDZ@A=BTcKZBzBAtlF zQ<@4{sjM(nAVwQ-!EM^GiJE?`pfDgeT&K_TUP%rp6T4g+qn>|B@}d$Fu*x0evGVd# z?s(P>4fPmw?R<|L-jxeIJ@>J=@)dFmMLDtbnUFPBJQ2(j5SQ(tiat}=_6(>}N}2Il3P(sk(BB8ICI?c0 zg?;DqpKo`+{6CS1vkk>_#udcYR-yrg)@dH7)k>%rjX!->QgA{B`B0jsMTC+i+f&ax zYhR*@f<$!4t{hxvi;CY01gZ4>(jvem2b!Zx;!r6+GTj&uCS_g@#Q8<^$tQ0>V3(px zrDo~#Qrq=Rf9qG?xvb6l<41n>r%8T$hH;<}^%mUf8J>r7Qws?qF)7MvgQ7U$wdsDw zah-={hzK&=o@YCUNjN)7#2oHz`lXswCtE1u+(rcN+)O`-Xb;=K2<|Vn#fO8GB;B67 z7Py9LGls}LeR0WMOJprd*?)fXPutu6^V^oS`!iqsfIarqKQcDpTQdHtN!F^Uwkbu= zg3647w2xEcs1~KUV^asn1r!ckIZ9T!X>$t*(-hxNc!aCa&v_K2B!3ezGKa?aZgdn5826&F6C!vq=p=VJuj|Bg zkK~_{Y0l7*L)_y@+*X6E>&nZgc}NT>zlEB>xE4My(^;ARbJQxU#a(&xwb$ES&wCzn zrq)YFi934q+;MyGz!SFr&@=XjzxF}<{@1;6S-ao$-v4V4KD;0KHfdx|p&c>gDl!5y zyPW9k7)E*;GJN&Mc5AvBu5v4LkgV~Op#DP4Hnt+85_2Gw>N9c!qEzRg%VaP#%bCc1 zqrKJ#Iws^*mDpn_r5V9U7>qrSMLG;P>>oBiFxkJ}w}->7r1pXVFZ11Er8yQnHJYu*iA$sIrW zB`9CAs08~5?vA8zDWo@`Jt4EOey7iM3{x($P=k03L{UGpTog;t0U6+4Ow{FfSRiFJ zYs$``G=1j}{^YXTJ$d$`z5U&P>WM8qUxzM?<>uT5V28LOt`KfQex%rl59fl^i`s^} zQ{`?Uq%|mha_RNJJ5V{8D(cWRHOaT1Wf4@e&oS#Hq_v2agLJE~{AWzj8 zgwSJW`^ko`g+R#{$s|lP+6UhK!*WW+ML6h zJ`TEc?-xFA4?q66jq;n0c9bUgG;MMPkUF3l<)INCRwW9u+-fq_g>vY~4#}Q}|^`*(sgJ?VCktNo^2H6uu1s zJE2cq`EZLO@cjJk8fepVQJUWI8^7zuQWMIfctB}V18AWR(W)2|N=V3E<-2HBP$fS z7l$NXhjFz~Oxx4&ag=&w^M*E1Qc^x(+z1)ccq-y{bnKgJ53`_mUntl}A6c%eHrQ6u zKFpU5<9_cWXo3)TA{R%L_fG~K0UlE1#jTR;6Vj!d5?}IPhiKDhWIQt(19@D3wd??76cjT;o2!^la7t>U$w-GJ+jpM_KTK!;HTP45Euf(yN4( zfD@s!SyGrJ;AE)?x#pklH@u1)O6s7N7V@iYaO8T5-%rway(+Scm!c1O^T)sWA^RRE zFH5&~fAkOSaiVA~&)lCQaWHj9XC_q#Qsb9CfQm3bN3u$cx0WIL;8ES%a)jli+%aB$y*acgwTXu({pR8se4?J<-=U5b<3F6Uog`)L0pQ>rs5l;1~7vQBsBou6g(|8S*xXdlUyP znnWoZAQy=Qp!@`hnnv3~6xFsJdniFs3&#b8rLP-T>P0WM?2$$AF041US<%a2kAGe>#T!mk^E1d&Mme4pwbxmU7IroHtG9#BALO6-=QY2kt4S9XG zwBs79_YhUtCs&gAZ787^aV=k9VVojDR<$1+;F7j9lgt&+P?1|g3TK?T zFSo3cR{BkO9w#qn!`M+Nj36&0lL8tk!$^0oNWyWHxmQDwe(ft?x@=s3<_jOPr=R_t z^UsD^^z}@X|4P5p*u}Q+?By|t=xI>q*_jx%{!lQeU0GLOL(m2&B-hVi$jB34AiviP z<3?#8=5dja4#(jVB~g;DLczHKq?KTs@n=zJdY$_y8jXtTYHrJ2sic@vPL#Gpg!D?< z^#{Lw@3J=cP;>Cr6r-OddTi4sj25C++uK3*Fysbsm!Cb`i4sF}tU^#V28FzPy+#~| z9#zSlP`VYqbLEVIqC~vH-U~#w$+&2$Cxr#IE{j})k37k4cm%;1lKhl{sVCueLOG`* zqi5;=NzVPAU;gj*T6o7xw-0>!x9rf_L(I1t1{+Ef(T6G+vQR9CGYgdhFDKwGC^!Z$ zj)|ID70I5ZP9l+t6BJ7(Pgk0pbhGnAo{mLDuZxU{8sua(T&4N6l&BHQC<*hnjaG%y zv;fC!4(f=IW;X^j_ED-r_HWI7#SZgaNfca3fBpRPetKD(m;O=lZnn#Q`wjhKjIjMb z3==<5ZLj}{x7xN#`7FPoS6V;W*WUwY$#ro7cvU$-=2*P)ATu*qO&*=Xds&7mjw_y1 zkzFCz{yoBP1{6dQEVGI*s9a78f1ZJN;mQ`UeF3vbeUlS{ftzm{_s=l( z^2TuIPGk8LC zKZ_Wy#Z>$*Wx7tGcopf-9PZsXLNkj?M*_Nx=b|fwMKd^ET@dO|1a_7PCs+2DY|}g= zJzqbb@sQy7fHFnS8-?V{ibilY5+W}}Fo$A1!84iWxk@MtK?MS^CX})p?s%TP^4q_| zuD|sT3JPOsi)gDb>Y&fLf}(bn5GGGr9llxIN_E~mbeiW;=?Nw;ZOUhLmaOni zeS`v);G&X}wDfi5?DrgH0XhofTS&0~86wL{t%?$Bhwm;ULP~Ac*HTbl@`AgT9jWVl z@hcD5Y1}+Q7aK`xTB`p!1AlJ{WoiO4xD+S3Jefo z1w!&b4P34)yv8&)sn1*K?^+P!45(5@pMx4^Kwzs# z8d?SSu@b_322`w)R2^Bq%j&yywbg(URmIcx!n^LatsuWkxAWA`EQ^zS4unjV8XD?Q zjHyG}M74uD6y=&4O6tH?sLXN?Ny^z!rbZdd0pUQVFmxqbQEsT4!Z=WrEygMLu1W=> zF~nt9C`-84*keY^SYq5QfU?KP3Z6i#i{lcFVW`H%;|B>WhXYyxk{BZpC`;|STXx-c znHiv|{k7)EzwD{L+7~(d===XCuo!tzu+r{+?e|#wH)npxuhtR&uD^fii=VQ?&peC; z0UYjDa6k)6?z2D~4WDVv4I$4i&VxHo`Une@L*pVeIt&n86QPs>g3Sega1#W(Jp6NS z9f!JW&=*4eEVy98iUA=L2>5Nk@u6jXsJu8o^R7PvX&QFUl#rqsFPSzL($-unJyCeIq$# zRD%nb%`E*KM+w|@^DR~dPYUt|Yf>0^dd5B$9c>COhZfL{Wi{w{B*8rwvbD=P7VWme zU1lO=%N3#A?y8@t99~A!%0u?oAAG-^A>WJg2bC-HG<>fPB7|;z@hj}A>u-Y$yvK_a z7ZtQ3g^BBUS_8%pqujZ39@eh`A$QRt0Xd)`C4Q2W*UKSIU%vklk0M?~ntV)`w4mjp zB)F-TV?>%#<%>~nVPFPCSPM1BN&yWvg!2qF=l)-iCY|@^e(~2)_Bugd>TJi39d^yN z*SL#F?kn+7CQy!*n@Cj$&YkH35$Sd=n%v)6_$P4`?|RUio#f|H`5noVX$+Pb=jW7p z^2hG(Zj`N4Ja1g+AfqbQt>lnuya?A)(9(=cDLmSQh6^Q@QS;^>`ab)~AOGQHo%g9v z|1s|7fAAc2DT18FaKkGNfRb(&SZGh4=(e7VBNm4_-PB5U{#wvjN7xno!F*wi^rG~& zx3yzDP#Z4}GQu3~0o~0K46v|3`Ji!X>owhI*WK_!ciW#n@f8f2`yIhf;QB2Q)y20} z)d3liLSa2aI5O-nK6GGNo5xWI-}l?U?ST^-BL$3BA#U|>3M*xJ`J@QXIv5pUY-ldZ zFcO+3^v_+oPLMC5weWHE;40CpJlF2!)?<($^2K}DhqiL z4&i)W!D_0{hr*L0A#o+wrhTd+k}Ss+tP~Miw?N0rh>VMokIJhI_*_T!X z(c~u4qAM5990SaEae!R-0KYP6W>|zY%!I0V{uw5Wpjq)`3i{rQ=4!HW43kdv;m{3y zQfc=|D+EQBohA$Dja*uKFH)~2slxk(^k|a$`9XZ1clT?T_1qwd=00=JqlEvWI52so z)P-!isyjzUb4A1nX=`T(?{#oI9Bzyzw$QQ*w(nL-T!j$Lw2s4@L#Se7eyUej<;;t zhMN!Tni^`Gh)}6T*_nh}HH-x$a(e~W6$+>@b+0=n(l=2ylQ12P45U6C2o}1hdS(Fn!8@XGQ zEK?D4MTF-(NL7q{T}dL27TmfI$d1Q|MbL<@m1Ut@jWqF`9a#%SL0yTLmgAf`>FNkx z6q|AuFQqd%Lk95A{^O@0d=quVgHK^`?<5lNwimqAZh65=;Bjnsw~5fd5*bK~hQ~eW zRpUs>3B6OKFqN#B<-=Wjiw-lt$eP&Dl%GbQMV{|KZwg)Wbt6ss@%ujT$IeemgSt2h%>q11dJHA59AY0N;i;0Ioo4T6DTCgz)>Vw?tU7kgCTx4J&GRTMp z2^ydKL^XoAsI*L(GSur?>t1ynbK^#mJ>GKD^~?J3;NeHO#z7v{f^)5=L0rXW5{e`@ z|L_QW8Wz|Lik-%c0u~xk>@pxcKIbuiZTOwr~fhF22hFG;SdIIoJ#OVTE_+nE>+ zLx#R6qaSo{Diz~9GSHQ8J`eR4WI!NW=?}TCH*VRwtleXH21rUrsU|I1?2@c6(tki*!H4+WijGL{MynyZP1c(p;*RcU=0ElEW338io%{A78 zY7#V3kE^th z#rji?q^dPSSS1p*IF)0uNa!fqvWT)E6GDrCGU{gdt@uj%yC^7~_D<8@DXh~e?nxO3 z6}6(@C=s1(E)|JY!c8sO+VVE5MCsh*ukl8S`!96XK;2v=LZ zN!ZE-pa@Xa(5fNfqx88UC9K44Sx52XMlA1Y+*wM<8C+_VJ3y&Yc=3jgR@@i}43w)@ z>H`X**S)D)w}Qu1!XYgsiKLfPq=!(wz*^}BKAAXpO%}?7A(q$Y!LdlOV3f+>(G$r>+1&JR?45`!=BdUEk*y9DO&yxq}G^H~x z5CN^|%R>jAwTB;i0EMdGOYgLSJjPM9RS3Eo6j;%sb#UK=*j6fQ;- zrToBEhmR?R%L-?(_jfV@nmjv9w)qQIN8QIJNXWvMl*3KaJ3;;+&nv~e5eFlDhL_6ZQFDU6dz-wFOe_T@nQ zW}pN(%>d0`|x(mE4scI>X;HxFv<&$*2vM3Zt1^S#uQo&53UWhiiza^+BHD zBy)2L`I=MG;5FKvoX5pCS4(kgWXv3Ss^&=zFo*Ivk8A)%N|Jh|64zceF281;ZeiAGaDx#`%{aF^_DkUFNSUgZ^4a!a(N=gk-w^H`k^4h>&t1REH z_@upBb~Q>t6`$8sryMbgm9Dy%FCj!Wagvs2?0uw@KXw>qU$zo-e}u)ZnN!_d)TsbC&b~+5X##;VlIn? zDO9r{WClgCjC&ac0T`qPT#>Q~<>Gp1;rHZ_A-9e2uHX`0vFUknfUc_pr3Whsqj){K zA3Z0J&lD-02p}yMTXtS$SCRki`FFqE?s(x#Y%^SxIQ%Q28d_jIIy2(OIijNs-5z8R zlo4G|w_Vx-!z=p2)$+(~av8}H#jr))UQ%yLyt_-UD}TOJVG7WZi0MIrUApNncafJ? z#Y>MhU>+_g$$gd$3D5l?9ZWF!F!5kuA~U55fDT2R6rnK;)~ZX%ZUf@+Ul7 zACo9=iewX7z3Mr0*9DXz=RKj=auSsy<$~5!60w!Rx=0a*?NMeb-0H+ zA{{HZS6P}>D@^<$7uZVtCMn~IYm@*_B_%Z2gUdmlFXuIBv61590z`yUDK8>G7fM%IP6JK`&e45=kIuk6(B zY72|*3^}Tbav3`DP;R*Z5$GNSJ<9@>kKf6)S_BmdD3pm;aZvo8`FjfV?%Q8+8xeTR zm5_Z;JnjW@8-?m{=o|`xGOUk~0B>TDI!quzNyz8Xi+Yal2ccI z+#p5b`LA8k4`Vw7EL_rZN(yQz@#NAdy1+xcl+kp#Et;MS5&T0R z{wNC5q!YKZS(IJ=Ts?oLQr46;9)(C109=um(jlU|o)e0bUPVs7{@Oiu!*$Dv z;QOC_z|NdI=;)A2CTX!&Un(b;Y78opR4%FB-eFvVq#Gf}k5l%vOoPIR6B$yih_(Pd zK}2$lAr+pUld(m=DzdJPwRsbW%wD*eiIG0*As^dVhWrAEIqibq={JfxcJ+}trSprH0Y6dldKxtAjyvum=wth` zcK7#_c^hQPBVRGTMSfQX`2|vYKtXk-IYc7pauOO<%#05|_4@bRzxm*>1Xa_hr}Rb)@Ov zmCEvO-x#;Im6L`EQ|{)E62%2c>ZIGqJk^@y+P_aA6#^B1M+!#}>hkYPsnEpEsVo4m zih`S0$qG!X%E|aI(ULBnbJDC7M-<6BZ#^GK+;?-P%)e(@?|CT^bU~E~d3^g#y6J5G-ZR z6)8NE|QUu-c3liqV570V!Q20zmNE2>q8Lv>n7|3t|16i2~b1&Zdo< zx8llcA$v8vfR;AfP6EiCyLWmNTL<}tln<#Mg{leicQd(OS~x}-y;p8QHDH&{Bm~I4 zQu-q(nyaF?qT60npnRbhDif3mjWZE@<5=}VjEd|+up}=PHPuQRQ!WI~aoF<+@j7ghjekfo@!8B4Pg^sV< zG=4Rf<a%u#QoE!PhD}GuPaT@Neq1J92C?8MS?{U6N;2@ zqzAzz(zBP0ilA)djG$3jewX$oe{+24x1Qf)@prOtBH^~U*o28G3r50Cb6V3~lTXBI z39xbx$z2|n9iEI-l2FZEBxmIq(gfFp)9#_pC`@vjX<<;*oXX~S`4TK&r9x0tjs&&7 zE7huUp@U!)ye~^ti{G5?mGh{rLf3r3b|fH7bVVErVG|fEWl4*=3y(DxwmKGvRx(Pr zD?waa3#C{#+OF-}Z1+|QN4Io90>@Iv8gB+&+9a1%TQdcG>%26J+(RRy6E+5lH7OUC z2%5MQGAJNQ(wP;BlBgY(@sOon34)|7!&<;92`jEvwq_B|DHTzP-#-O^Agz#Ml(Dpa z$8S=cW94>9VUn=Mkl} zns#@ne@HM|Nokh^C2mqG_KQ1FWtLpPE;;ArW@(bv8dyKoP#lYmr3w-cQ+U{2xwg0iB!z4W)Yp)^{87QW;cYqVa!4-l2_{_hG( zQ%Pqly_U$~m+hC*7fZCZ%PDZBLl?*LWpuR$l+Gs7Hq?U3g`~2HNDk;;g-#Q^KrXRr z#3E2-`&#|9+zSMkx%hg*6M(u7$dna!~^m^49Z9 zg0xRgfwsC)6b#0|6AKHyN}))}*Zg;*OK6F5d~w_a3c^S=IoGl=8|Jt?hCp!|c?+RB z8YPazNuL&KA49Q_?V1ARUu!M~gd_myQniiR*k)T)9tBu~Sg>DVZ+K!%|AYj~A0tm9O*p@i^-Nw9j51V^}LxALXQ zh03fW@JLk|%TacMK^71#m&NqoV*WGGr81SO;x)1=Be9|DfEEczQq-_A%diXK)fy6* z1aiZRN;Va7 zBBSut*-d8}rOYlBH zltzsAIJy*c8ky}Wx$=5LIoV}R+b=nms~+um!gg|frGq2fpk8LTzp|N3JH=h5obii zWRDKR?dOR(J)Ad$manBWDPl%eb{2P;$`CYRX}2k}Hb_qs3r=lT#d>kwq1dyejQw7eZb7xL zWZ_>#-$e6;-DgYB=zt6x^j8b>!>S@TD9X6BR}f`OPrbBfN(%7OSAUXA6ywspFFk!N2vU80vlE$}SA-1Fc#_hdWV~z6 z%Lwv(UK$^fMy+`wg+~a0lAUVTqCE=oGen9Dg`X?BQ%IB|+(ZEgZgUpx2<=v+t>%T& zXvnznd`EhQ7*XP7mihBsjaG-!BITsr$P?8z0Rlk~46Z66K0;dtAa|>Xu8^Ywg{=o5 zrH^|VFO@yf7?ecNybOw(o|k0d0_=S+(X41Qrt2gN`VeyO2n+vF>ZJ|B2MviPLs|(b zU*b|a8Ju7k@up=F9q%>Qdv=r zevB)cVOPI7odKm!X&y#K20fBc*U+`p7oM|jF|QtRiaGK9S2IM=)!_W53iwF zBXbmG=e{^4Dur;aLdoSQkRjrM`5+grqEF>|_vnrw&jULNqg9+LMGHG|Uh-H$4$86? zxQnIavVp4@Dno=wTPbIH&NFs`>I9EG^pHLM#4~pAnG<&CnX`8G_yrs6p{&XkwsoZG zirw?A_oau1qnyNg3AO_reY9l48wu+%asHzG)Kj4Vdw8d2!26eI0Yc7i3z zd3cqu)Nf-%MkKH{<8h)Ud{-7-DMXsA;Tm$+Xd(6VWK6Ci!bSo}9nihwV)94iZ2uFSQpcPT!yMkOHK9*htzDS#=2tip#yNL3Nt za$FjoAy|qTecVbZfz7z$+CZUpl6m=BisEjfPFqmq0*O+2lEk|Sii+ByNT2BWQ2NE+ z>oY03>Jh6F3hyJOUgX%rwyX4gz79CBW}5d=jjT96uyFKM- zwcn5QvgPQ~Qlv@mJpe+-X$bMEJ*dUu)srhOL8n&!eyzWkHYPmN(1ubpq`&%PSk-Kw zAal5@+|4c&L@sepH$iF)ej}w~f^sNh>>+Q{m?vu;fuA?bBCWcIB8v~f?HeS5ag@*W zY?Nj|N|BPG*20CV1Xa;|lalSAu#oAJD`s)LNqdoAdWpwY8o$e0u7C=Wms#}XCKduC zge%A5DtS}~-%gRL4GrW0V!<968ly%V+4a$nRIkq6K+(c3)JMp?@|Y`+lS=St{w;u_ z6laKBMUYVd&$~3@+847L^UostY|>wOI+Wx%Sfwl#7#>0zSIyUcGc%{ zt0q995;|TE$FeHbR zPtD~*pdU$T3NG*}?7Ef0w+`0@4og3= zPGpHrLY)4sk9>03gV=xYguVXFzhvEzG*gP=LwMAX>qm9sh7rbcH9Cn9p%`b>4S$t8kDQGF78L!??znGv;FleNOxi9s>&yeFPFM|P!h`$TRX$Ed_Sj!Lp{K z+tE4IwIw9Wm4G$1o8@OH{iXAG>5*t@2+C53L@T-b)MlXzA9>&JEhF74uw(PCtL@tPA z)T1OH5mCS50x1oF228!`o>7iPdD5mBm*uz_H7>H`7826a+oOC>L~m}ZMUf=^%Lw)E z>MHF1e^?&CKTM(Y_x##BJW?@%>`;H|!8?y=2}D_%W{U{P;=Bt)@Q|}E%p;8=Av@DV z;`LLSX`DP$_2gq~s3*(5^3QpoL!+T63WamX+o@;f2CM5iYQH`c(j6%-LN&tz<8#m3Tbhj;*AYQYztu1Z2}i>OaI*K3 zxgg|PGEhp|d2+-3<3Ij`9eDOxIBKf`_gv1HKN<{l}mCZ zvQQT9Gu-nx(vDC+sy~%kcV#qLPyj;Md#Rrn+vO{5P(-C*xYFs?)TPeVB3#OgRB{EC zx@G0_TKYVmo0SxfT2}aWvCl4lhOheE7Y|t3qSD`2YTYGuV6ih+9IiiC_VZ$&ejP({ zWvi~#%BAz!K1?`o-l0%u;PS{PvO*3dnJ34qv+VSL>s2PA$4}4T`(7bQAATe8?aGN?jh#>D^zt z7b#ij_^qV`g` za9LsfTpx0Doa-JX17_*7e2(YwsL&EAeaUY^aLvE%ru!=8l3PBO!kVD`SeM(@m8O5& zXSaU!^&VL7f%P6(?}7CmSnq-VAU&|oY5EWHpw^qY-UI7Bu-*gfJ+R&b>pk#q+XL%L z)4y&1uU~z=2iALFy$9BNV7&*{d*DAv53IZA{)0TIf30S!$g84AJb|D4?xTo>$TjZ{ z`pCb%=;x<#Yw|ftF$N`v`!Y_$QeIIg&bk zY~UD_?0`!oz=##=Jgwlr4);}RUN~3aN@xqd{6OOku`5n=D)E{97>_1eJUR*;j~ca- z6Q#tR%6}xH^wLd{QtvMt4~x%QherMBk1Ra5 z61V1ZJj&8@5&x!v8${s%Y-Y2@0Twf zUsG?cAN)<%1E2Wh-`YcuJV4%$4B@s)<3H;;LgLg&iYYAJ(+FfqEU21K%H0$Msh1E? zB!h>xi*Ok-YAfn(k?ibA5 zlGus3DdCZWVA@Lo&;R+C|9e@#4^wjFE1&xq-%n5y1;RCvE~-VOsJYoF(WSywm1wV) znpTSP(7AI`v^?fbVZ%yDM`$j8c#aVwexe+69??}$4jCd~2ncZrR9j6kT+$P`il#!Z zibnIgMoLk@y?b&t^~1c4Q6uZkKlOI%tL<6V?oWRDv(`(ED&?J#GPrT$7NS%dNfqGn zOG^DFksO4fvI8k40#PNZUOvO|GZ0tfN(RVtkx=!F>L@iLjw{VW8R0#1O4FbMOHMAO z2q#K~auCgXG!maET2WWw_X?+1gwv^$2dwMdY0s*bc z6_pBNzF4ZaCWR&n9o7P&+$hSwrLsLLSwL z(=S6l9+Bb|jmdA78iIf7U)`D~Gv)m#C3W8Yz7G)n)V!?SpZnY=te;}A2}S%ZlI)eB zG!zlekVLbRFlvp1K)R2_Y@~yi6e=g*iF|N%^|D4BB_)!E6g+fPWi_4yd~T#=o2kUx)14bi|c^v zIKFZPMZmv|41g%zfx_@L?vxrp3V_Jb3hNJxdx%i<5y4#0T+#STG4B>W2vJ*=1J2hymG~e;f10tb;mWxc z0aa9_t!H} zhwc9R@ArPZ(&kG&|J$-<8=2#ot299ob$U)phoCkqC52KhXl#cx8+tY}m_pR8B1=_z zO19D{(ZC}kBUe<`G^eY{#rDyUeso#WRC4Jzf8#eODKtscumVj&V&0N6?Lo+%MkDlb z2xkroa<~oJ>U|&Po_e=rbh=caff~~VIzMDI566UaM24qF-{}D>(lN|&-}DTSmp}aD zKW=y2b=Rsc^)xGyQS8adHShUpg->RU7ZuVDw9VfA5BBpv!b%a%ASYAV#0403WK%Flt ze+Ej3a+Imwk_NdFF?v0>u&8KLXr~J2s>H!G3F{>6_U_tbH&E}VhI}7q&YrU;o_@wU zFZ6hU%~GUG9)zQ-n^4sidj5s;C+$!F;Fqj0F+{a%p$rwI6UceM_zV-?CxatYRVZd1 zULxUQPp?fNY|02JF6Ev{k{3x6NukuU6pqxr6j3?~OsE-U940yB;8@5+yP+jzHMBdX zf}7-H@zOD5|5h?Q2~edhPQup`mNvlJv({oyq7gm*_drR zcaurEm21rrMm+8XX_fXNTUF|ik*HeGC&sCJH+s?bJ#mknJ$1r5C?E3W zfBxdKHsABvf3kP}#1D}Lc!Gk#N~V`0%pc`Rr7RFOah|QGFwlbTc~e*%sI?;HOiGea zHT8*S@AYJz%G;wo5G?vNoSQb;eGfIZtue7SDoRPTQ5^sBdVH1dIbb$h>7xjO&|PteIq=LHUUCB}h?- zlqg4V^{)iNhBec}^;Ns@%<&W6=bNMmkfDBF=_FMCgQuY~Mi;v;*qKwOyjbmqj?H9} zulIW$M_IU=V#dohu6t^j!mu++xxqY-5-x@XDj>%y{GH$dsCkTmfK)Cf<=6{p49aADV6ZD=dWG`m z$v9HJrdedSs$GCK&Q6be0s5c(o>yM>k*q6CUv0F0i+%rFzxPY_H~;%D5O$ReI$5_0 z@mFa86~NTOru-^Z49+A1DHNF0(juu8${8`rqe&=4$tP4)5#ATeC^?TZv?`sw7RgMe z!glXyx7%*G${HwLaq8r0(5}br)VcGXEYmB|3(4YN4@FE@W|{4wdiq~|_}vt|o$!() zn*T%NDqKmrd?wR0c}z5kRNtzd1dz(5(oX_C73S1j^!!0CHA0RhcNJoAD>)~(htST4 z93uSPH-yE_-EV3m7ZgZKl8n8cWt-ngIdg@HT^Y#pC{D`m+t=G;|Ly&MZa3U?`?AsW zkw5(t>%P!MqRMv5(ML)0p~RC}`gG1Fut4)9{ga|vPfnU_6}es{sNx($GC8*j$xK|E zrgQ>mTu)aQ7342)Z#hp`r#f?W+^bP~q=?C;M51%##92_%O9^cR`vUDNN9YLkk^Aag z*9kj*@(DX}e80^gDEDr?%0BV8%X4DgchA4rul|>xKsx0}WEZlwQ|;0Pzh{A01^JSa zB-Dn!@gl7(EM832l@<*b)r^z!l0X4u5%iIu#F4>rbw$ZDnbJO4{|aA5ft&+*kT6_8 zFv{8uLRY<^%IEVGRPC{Qo;qZ06xUt4z4yJpXaI6RjlZ4ePEZ#MWQ616v`yzz(dH~! z##JD;iqa`c=32@dBn7P$mRu6@jwZRFMX{xDu?n?nYz4$CxL<-59TX;CUfh}usH-Eg zLZS4TP*`54RD}A*yX-%|^;eg*`OEh|Z1+9%2=xYc*+%LJDjA`YFP>tdJ#+FXUq(JQeX$@ug4yF*cGMgZo1Xl$p;wONcG=Jx_} zajYjKrA)ZeBm^%Q3DJo1Ij2E3@0GUo z`zXshpUXJ?!$0|ueb@JX?;1B1(xpVB)RiVjqSYpiQW-+t`cQCK%38U~V4(=lVyH|@ zzIu7Aq76^xY&3_g#dwvBQx$}wyd0&vs9eXBWXe#NQODe`P)2%3;sSc5TxdmPU~y*3 zbEf_9YhQHPXHl{}p3`7iKj@pk2Q)bfSj0*$ry5J1(b{u6YWR}4j7c-4BE0T8(BFc} zwGab$tDFFX5jCFi&)}772#aveCoC=`tSs&GER;pxDbmWKJIzGs8yc|@Ty=A3{O*Fl zLdYp2FU2bb#ZHo$R}*C|!Qu-PLPs!mPW7k|u(PE~+-fJ9k1TzaWf&l-nu<}%5_QB% ztBR-Lm!Ofm22>5KzY^C}H3)=~VV21)$=_*ZAZC%3FiD}PRFbq#Rn}{&!d^}CJN-uJ zk1Cq$7}cOkdST$zV<#4;W>tKe?xJ{S6&aL^!&DgWp>282SIs$;Q5OL_F@Vdm69}2? z$)IC{xcde{8b*ftZFHd9CWd=iKu0VAI+nqLPh+Z0@?FpAAr|j6N)AsDKQ?~!`Q9E$>n4Laz&IbDWZ4hLn3-|cB zu8Veo^Y$qVWLQBLH#cl>t)Dq_2G?^h_c@6I&T(?(F)q_mn3PO0QY2No(%omSG>78g zUKp0)Q$#rudMzX*m71gP$MP5-WSShB zz^y+*zoRs1aa`0SzaDWO-L7*#F+5awT=|{K7*}bsa%bwv&J7Y*UEf5O?5vkw85tOM zBzPP*-1H>#kAA3bs<&EdDk_V&W>l%@^w-oRxp+M(sHg)G@(KDVS?8rq9N7%@HB}^C z1=Ahv6#W3BXHK7C%!q>FrDs$}PqI`PlIDXqCKUITG8Wu^QkR0evm}e%pok2GQtr6G z(+h6pH8&YLp3GFqGBK98ZUujrspJ&Ok=j_yP1@ARkPQ#^+mI6e9zSPipFLzJo_xwq zKKZzv-1oF~9(mS=E}pae=#b6lCTtD`Z;tgu2D-ccrEp>3IMS=W@bXB^Q4-y%luV!p z1S3Z6&^@n}=WXddtSe1l(Lide49?b#~bWAo?y|2L@1r5S%J8p@n{MxZjQ(J7C9; zK5boR;V7MX+Af@X3^&VzAW2{0I``U%lMmWa_QOZN0>bnV3;J2B!^P1-hVnY?nj#JtL9AP5UAegzh@XRNFF9}eFBzuB| zbuB?Hu3M!FGCTiAZbBIX8sky2#IPDHx&$?r%4n|(P)SMgvSg`78O^0^NolI~=iZ2` zrp4W8LIm2{+M>O~5x+(Vyh5>5m{|NIDRnBiEZ6ZQJ_Ti^pNf*RE>l40;~WadV1F;q z_^kDGp0;7eKyGXhB@`u-whIO5?zv#cjvcX1zVGZj#rQc7DnYe&l%1ovDm%M-ZIA_f zi2WkyL>Kc+F1~)agM%nta_JVh{uGM9q>L2WHN~PbO*`{sk}nEHkaf=dt>IpqK)pKP zU~S!f^`cwnQoH5eQTdy|7L2QSHH%V$XPQlwQRaw@-aMle&rBUVgS$m8v}vv zjlwe<(q$l0ms!Y{jrEc{Drv7)WQQohE~SZ!hV@IZrL)q5L1V$Qxrg1$V|l$w)&%+{xJ`p{by@h#5mC_wxV|`!$b$+Q#WEmpH_p&kbB9h? z{s4yGv&ZcW`;!kpZeRZN=j~tq?(ghhKK^n0(kDM@_kHf4?C_)a+Q`{sWSt+h`SAga z!C^!R-T{=t7<>7g_;|<`6?1n4idXT^uCRUWPwH!Yu|0r8HDD=3%xcv3EHIV3T-M`Q4DlhM1t7YRGJW+)3j3xR*pr; zi+y6vPf!je2Xrkf%FWV{AF+wCVY_g?(@vf^2^!RE1yFOjm=6t^r)fj;z{z}@+%9Y6JD(1iO~P@nSs6pGsE z3rDPL@VE_6Uw}sdnZ7Q8d#m0ybs*4JY!!m>+2x)J?vp5MwFZKloZlZ&|t-9PAs)R(r{XyUfah$;|lS8

27#9dk};rh=2o>h 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 z⪚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Ϥ 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%0AvDl#& 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 |L(p)T?x{0(o?~;oEl}*+?>Noo+aAQ|p^+I% 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 qm(2UW_!qx-`}_crd-;V|Loq%O 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 diff --git a/doc/_images/curve.jpg b/doc/_images/curve.jpg deleted file mode 100644 index baa35ae7f0a0b6c246f3a0d331735477ab8bcd70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53277 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 D@j1Uc diff --git a/doc/_images/feature.jpg b/doc/_images/feature.jpg deleted file mode 100644 index 0e3310e4ace5613917e7779d3198ccbb3cdc5ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31204 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 literal 0 HcmV?d00001 diff --git a/doc/_images/graph_construction_example_forward_backward.png b/doc/_images/graph_construction_example_forward_backward.png new file mode 100644 index 0000000000000000000000000000000000000000..4c69687f4a6a181138f3df72ce5e8aa48487b5be GIT binary patch literal 50107 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 literal 0 HcmV?d00001 diff --git a/doc/_images/graph_construction_example_forward_only.png b/doc/_images/graph_construction_example_forward_only.png new file mode 100644 index 0000000000000000000000000000000000000000..e668c16e0cac73acb4e5dc2b1827557ae77126b4 GIT binary patch literal 30790 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 literal 0 HcmV?d00001 diff --git a/doc/_images/image_classification.png b/doc/_images/image_classification.png deleted file mode 100644 index 14f255805081c1b4fab27eaf336fd389fa93ca19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52635 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 Jsg}OC{so6%#ex6; diff --git a/doc/_images/lenet.png b/doc/_images/lenet.png deleted file mode 100644 index 1e6f2b32bad797f3fccb929c72a121fc935b0cbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49835 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

U`?d)7KCYT17aE+G#uZvj_wLPE%&KYw1i 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

0Vjkwr$sfP-7F)3rL0#=oB=& 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 KlC$B!ng0T^sCgj( diff --git a/doc/_images/lstm.png b/doc/_images/lstm.png deleted file mode 100644 index aaf1fc690da2ffb8418cde5ed81848ddb5263030..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50694 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

Lc* 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 z

cx?58m&(sSup`X2q%$A0#8_w)Ew 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

dDPd0is~dWdnaK(Ga_NKg>nF88*ZefVe; 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 literal 0 HcmV?d00001 diff --git a/doc/_images/pprof_2.png b/doc/_images/pprof_2.png new file mode 100644 index 0000000000000000000000000000000000000000..172ba20399ba974d27f4c072425277b69b02520b GIT binary patch literal 194000 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�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 bg1?qGymXmRYp`!_b>? z);h@X$>FMy4cl7c9TWo2+f(wV{#OU8LWGi#pl=ECjF8M#)7Ren@yGkG=ls`z7Ra*X z3JH6c)+WyaX86}=b`olFH|^scmMKr-Z=ZaESS2-zOojcq$&$K--;-Qf)k$~=Hd2LY zbVh07dgqR(&UqstPbuhz)p-~X=0`M6s3hd}6!Tm6n4Z`2qNUq2%j819gJj~@9MXc* z30y0v#s}0ENW5goOG`_P)V~w-Sp502t{m2%aZClH6=f{?E%mA*f;l(zKoTBTriP9k z(`4vxGrPD%nJ-UqKue|?)VT!Msv>(1Y@#q6h06g*TNx6(W6)_M5im z;$jSIv5zEnRg7@3-t<~_o8yzf$RhpGD)Emu9VVSoQDT|$11ts0wG)!03XSNyC~8+L zOHvw|lPkb;K>!rg-eG55g(Pa#H+xq%J@zx8WEuGkhjRJ)8imhnE0GvTX!1GjOS4fwxdbun6G!+Iiy8Vz@>NL`L5i8=KNW9A)fU5UF% z%H=X%fLtD{)=dVZi6wn~_QwUl>@1Y#{ba3fJmyGV>*Kb|N>sP8g8l&@145XL%*jmf zPbFBLjO!MzGg8_>W;dCkJ$kI)GWWX{3nxM4CKDNmZ-%uDaGh1q))cUVw z7M21EvN}B)3bQhiW|d##Z0Q0@oEzFcaq`0%PjRaR;_JN-1EtC4gSG}S^>0JONd=%Y~cn& zRQG4!wrxwn3F7<57d z8NlOa?lc}d7}_zHsyQ{&tyaHfF9(j zq{J33m+rTb5JuP;7mlmyTTmbuf`CX#oeg|`-8JDLU{ke0?LS{^eA>wuP1H{oYgVoD z9Q!J8k*ggDHYAs*-@1TRI;>cYX=Yl+Mc*m4y|kRkZh!bWAFEsP4cyjoo@mTd^) z+)ia%5!D_;lyr&+2fT`ACSEkm6*z_3e5>6yAA{~&WIta+;KO!k=-m&{YvG6%GS#&k zl5TQA4zi*OlDWQ)1C(8*CKbeRXwyX)OJ3t+F}|_${w1#uO%*{cw3Je4HLvt`N4cM^ z1HYT?ICZ>v;zqy@3{w2mJkM>bb5fX8mEtSh`nBvluISUv?o!iVrdKLYOm3|J8Ii%~ zQp08EroP!yIqk=Vl{b75p1aMCpB;hh%xhkreY+PpzJRC$IsW~LcTaiFKPtk!K-0xU zKV5RbQhd-wslF7L!JLtt>YU-E81A(l*K@vC^X*Tw5M)&fJa7)Mvx-Q_AOvPHV$o5ZWBT6AVk^xv*A{LGpm zEdP@52a07#oODB-3W2spDl))WzrqFxXS7%Hx_cc)mmja7m{~WpQS#oozc;8;SstPK zC1cVKMiWSoq=>uxR{t3b11e)k_3IWQ;CbZB`S!V1z7#&BmX+x{7q+NRye#aPF(riW zJ1{mBr(1i}kg&!{&SUcNm`A^^lrB$e3}9e4?)3J^ULI1SRG$uP8DRHzxVQ6Q&#;8D zs`-_+V&X2TNJ*BG^OU#Gl@gi>=uDa_;VQ->x;rP8pUNul!`HK%>?EUWpoVv;0sP*EB7=;7RjRw+FOnm=@@7+EZt)~Qy|2VVEW&62 zpB=Dc#4j}1JZu8TTTn6!qU&Wh;$)E;XLX(F0p@e62nJk_p?BrI8Pyl+HZ*rg z;4(Baf)X}jTB5g3g!v``>Dudt9@pXupX@p_Cy{uA?Jo_Od_|1I-Ffqj(DU9l5p^Apu|<5BjiV z;Ok=DX|V;t3~%9?Qk%}2P%&sV0L;$=CK8$Tl)!R1gWE1i$g-{XJMuaCHMIP!i_+2Q z&`lG;NRg=adgeB4#!AY0ij!cDBvZo&TvZerB;~=wFn=uz!GhTEjdzvFrJzM$FsJF7 z%9@A{Hqh}F()$qtNxH0A1N}_>m~C`vpD)H?cU-5z9sAaXp-_&4!EB ztI?*Xh(uXXuK#XP)*?$4Z#@!vUlmDZ!AmulYk$g{Z&o0x>WlyGJi6>4vSg!yc1hCt z<6#z1KQJr?pZS-nVB3Ee>}pN}2!FcJ$wYKe^g$T1s12MEiV8E6jcw~e+1li1XD(4i zZBSv`D*|SRz;LB0-s-Vmh^StAgU{AyxyD$wRgDt-7i*cgP-1}8)=ngg*YG4qU9k_WR$mZs(}lOHh>QE{4K0J33U0!1aOjKMW<~dH zh7HuOD&&%y7NNk^IK#hG3M0B7*1YslOHxJOxv$?P5Fc$hx^duL;z@$Pi%$~Meh-ZB zNX`9~;h5`ijK9=GASNrreh~NhI>ACP8CKZp&Zc=D8W|>`l+L-VA#up1Zg2lMHxG_Y zDUSdKsgbjFcRbsRhUn%BGVVYEtICH*_1lj6f>tRWiM?zBBdWHs6XqbimOEM1`2nZi z)p4SBYRHlzy<^xwuUj*zRo#E?kTrs)7S~4~Z5O0P7LOIAvuBwuU)U2Pln-E}!LQM2 z51pRnO9&3wktegCxVc2w>?C7Z-xkUxz1Sb?pmL4>0D8E3fO^waAk)4PS zq~ok#tnV`>tSbv9e4Lf4F+Z*kG2lSo(uhFisIgguqjRM}LQ2%Q5sl?%r(j!!n7OVD1VrbnM>$+@tZY&VZL@mJ|tJ3IMkRv`{J^o z8B6x2P@3RVB?$h;JA66!_BuMb4~s^j?UR=e1q#f;zW3vYS3)koQ|1r+zsc@Fk4)u-XLGWY zW_oVy4{68}DRDTXR6kA!&6-fcIQ$LY1ZvH={YN}U40Ro!Na~|)e>H3KMS&8-il5FU z-k-FrM3O&2T8$J6y&(i z)E3#H{IYRgpZ)W;L$QSzzc0Mt1+3AFtL&K?T^Ol`lEu4O!<7V>i0680bMz?72q!4ZuSsXX6bD^dNw$|Sr%`c;KZEjzs= z7SmGv7d+D%?RZ%63-y zJH-fHjRQ3kX^oly80B9iW$wJ0oQy@@lu@F<*wV(am@B3eYnSQmv*#r!bwa;8EV!`Z zqzmD*BQQ3u$WY~ATE4@!CHUQ(gzp~H)qu=Vae(9HZ85B7A%WT=NCTjg8zcPdaRT{} z@x$8-)9d)qh*ykOJLw&nutGCb6VUrxdZTCb2s1Ln@rxJ;3lJWeh1V4ipd19)uHze< zQ~`hNiqVD7xaKLt=uJEjDnGL&4X=at8GKkV09IF52k-NZ<>~+?bmS>U*RNP|f;jz2 z)s=)lghxka{}mHJ;yYweq@8M`oB`-T=AvG|JUiOW1d>1E40Jmb)s1&z4DaTIcL%{A zu9FDgy^M&?kH_9bjQoJdV#xL54@u95E#W1N!qJ8~+S*art}cN3ZSO}p0gl*YUo7IX z@T)sH|8h1IVn9UafCnC>fzA1AxumeH&Un~LUNr!1whC-G_{M6Fvv6x`89$~qu}y$q z%|?SUdZCirzkF$c%~iHktgrtQoR5mQL@%rIR6vz2h0hb3$R=#W)aPBi%TigGk3}}IX9fpP@2$Z zFcX>}!(@tJy0KYlJIdepdcUo{J57kZ0=F;N!le{OP$rwmUW!^W`?X0G_DI$GfX; zY{U%sGe5em;53&6!x&$1BlN}PRWI>g-Mtv*yf`=OgGb$-2^D^PBg`m_t$$!&2(1q0 zesSSb`@YLZ%eKqMuxlBU?#DVbHU3(1uW|863BJ9(UA=m~^Vlr78s{tn8O#FCgGJ&@ z^-ATH@L$aoUrgQw5dZ;(B^41hkDxtiZl}*0S@Cu^DX>v?a zqO_(WnjEYYp9|%AFvs;!`pnaCt8BN=H@Kd^FEFSNo`m}9xa-qWz?m?qBfPMARu6?k zCtHEz%Ea=tL5geAzq;Gxt^_U?Dd#Xf?;a+Vbs^DFZAu#;Efzr%7skyPX#=cF5it1@ zS}|}ua8VTXgabKvvTC$Q%sMfxr(aZZhkphKs|B4m*O#cJFo!G#20j+#_fY`MMTO20Q&y?^EIBEQ!dW zk&(T{GpI!P8C;VwM0DoT1CXUG@KHX^^` z{(=Q0EYMwgUD`(%o&YS;W?K2!6rO-4&x^2{BI4A%SdMk_-9jg7j786Axm+@v1u*^O zh28wx`s)#MsIe9co@`dCx#7l%XLhfHzy2a0dv)=i^;+aaF8p#C`SSt?=8OW>#dv$! z5D7k`K0NCFUyt>lq{dYLFEr*j3l?yq`WXatr|5Zyf&85{pT-Q3O#WBT2f+Fj7n}EL zn}$r9nabpeOfciJkn%7b1UMm){O8`ulUGJ;XA@tQ=J|mFcJh z8q(|3MYEKN)ETXjh%3N&e3DuI>MOZ=+nE|h4Sw?1K=Ol}^K#hzw7MD#Q&NjX`a#+- zdW{kS9T#>&43jH%qwW~)GZNDJ^|=Q6@B61zm$>P&(f)bbX1O_LK_P)Z%gTZ_hEKHr z0Jrg3j;j4_9DG;HN2q><;DVR?Dysj|ZgxhaUhE&b^(m44FA-#aB5#e5sv?{=uKG94 z3Qs=RN@hfaeNpdh0X$Sqb#fKnmhbf@DEe=S8COkCV^*`Mz2O|g6%3Ox*l58v6;nA= zlMq2*CQ*9$ekt1tj7yY+?yy~9&`ktZ5b9IbNkfXjf_;3yR~=TO{0vwgxr~Lwks&cG z>8C3x$NE;Iz)LhOC73a+miX;u0!wB2oJ}8j|5&OOWSH_;?1O_*60PGJgPpw(JT$_p zN0qe;`zFH|(UNuM zi2+{&H5(BiqR83NJ7A(zwh;6^pr;wxo!J-_!Q=@LuhNOgga-E_=`TCZr=KOKB9J5l ztdWMZ#tt487elcwm=?vfEM5uN`#zwH86?&^NMfc?;DPOqkplf5DdhTu{R>{UbpIF2 zzmn}=R{dA~#lk!Rh{H5HL$x1`DDe>scF|C#pZm?KWSupp_00>&Rko*w`kipahmP&2 z5*pF7jx~GFm+0nb!p!tv98i3$^4PzTleuWYPpNHe z{>gjM>{#4J`~EMq24jPxTvKS0w80*{byQb`Itr3nC-ZC{zwjAtnUeAkp&P2QTbvNo z!_D4;7SSt^O%it5tx6c|Bm7Iqpn{g?i+K!1@lnDOjU{y0&v7_NxCd_&U1mH22Uh&B z;TEYTR-*NH&aBYSZS#?%3AIw&+3g!4uox;}jwGO^x*bPl)xHu{uv=FD(DPIO&OA)V zBh;U0lKP$F_bEMaE*#CR!KW8s4wXD$!f7dPB%PRDKr>n?JXvD)Q1kCz44-xLK#c}a?ne+OPEFo=3*WZVB=5H z{r5x+K=5Ny8r?Z>T(v?Q|57JApL~6tPVZ63IxfQdXBeK;9Sd!wXm?yT{STU z3Nm!b;)35Cjo9hr0RGPhlms`!W;7?Fb2DiR+p$?k*-$b=f{^9Qq3Rup_4S=k>{Dnk zyyK^4RHAD1)m6rb`+3jsgfz@_fjswH^=AXMCv@p_@Y+$-egsL>bI92IE24i5b1TR! zf>sD{xjd{)1%!8(;n@iA5TOxn2Kek43xAP12>+sYN_Rs-Ab12&H#*)_7EdmR2O|mi z@4uNaU*cg3puh@d1Ticex-2GU?mK$=tA8wgn-!#YhzTphxa0h}7JdFVgzM(Qqu6aM zG8|+lxbkzbEJjxGJIvEEX}JzN*Kr{)@adQdIOT=(z-IoW3{@%@Y%tJO*dp1liMFD6 z+f|1AFv~`UvaI>9#j9^da+Q~}KcW9H7{;Tdh0SZjQkY+8FgkaP{i*?5?sXJ@KCBj* z!Gng!nZ{)6jan$H2|=D6E>FsK{PMS*N|p?dFvof{pX!WjhF=CBp=~6Ds>*us3=8N= zQGoH_h%hMkCmNbCT}lg|B3diDPc0ehIAAY(N+fVwaIu~$iMxV|k;xFyz)8x1$XX~j zxTcCh{Gr^WJR1kcCoS+j?0fG|){2Me#QJG=`$|b}WJ_B9t{iZ$Abf@t>nN6SKp>hHkO>-yHyYi@_YHTP3%0Dek1 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 z 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 UA!c8H>i_@%07*qoM6N<$f|2}Ij{pDw literal 0 HcmV?d00001 diff --git a/doc/_images/rec_regression_network.png b/doc/_images/rec_regression_network.png deleted file mode 100644 index 7d2b54d4fcf560cd5b667628f0012c3822efd9b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83127 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 diff --git a/doc/_images/stacked_lstm.jpg b/doc/_images/stacked_lstm.jpg deleted file mode 100644 index 4239055050966e0095e188a8c81d860711bce29d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31077 zcmb@u2V7LivOj*vIcEe1BxlK)QIRYlIWr;|BuEgDFrosIL{LCMK#3AZvcyrMf`DYn zIfD#&NHf2~?tQy^_ul*7`@he>;T&rEboc4%uCA{BRt?yn*ja#DTU|>Xz`?-*G{GML zI|sa03v_h?09{=`5C8yTfDnfezym2902jQ`{)5H=X;y&Xw|oFF#kuqcZHvSIXZa{s z0RJClz&3wN;9J19fQz?*fAQXd*KZV<_YU{JO5;G^;r&7LgU#b{~ZhXWAE+b2M)k(u(+gyqpv+kKLzP~0e;>W`6!U4zw3TM z<6iJc?*n!aq?s>h=ih1J-^%<>U%Q|kJUku1G8cXJcJOexpxZ$D*#mz^kjA?O(vc5b z9Romm2&B31`Fps6G#aGoJsj z$3U>30HEsS9pvNc?Bd74Z!f?hE-x>~q3IZK&(Y6MX5Cw<-kM!R@{G-%=Ph8CH? z|49F1fj>(AXW}pK6TNufA7jUH)6vP!|DGSm#h}`I-ShJI;qdjgvv=eW`MVJRpDX^Q zTYu??u%V-qqmQE}_$pIS%3M92!RhvNaP@Qb^5k&!{7*Cdf2{VGK3tH$%QZ;Qvb#>;r z$W}Ep=CJqod2m64YvSTY0FVMy06oA0Tn4xRen13}0AvA0;2NL?Xao9yF<=4M0``Cl z-~spm0YC^44nzX6zzZN5NCUEfT%Zsr11f-8pb_{2bO7DJ4`3LW0A_(DU;{t_hrlVQ zoQZHKaOiMYa3DB5I6^oQIC3~DIBGbza13!QaPHtZ<9Oou6i ztH^0d(vae)wWXI&Rhk?&DZQ1DV* zqp+m#qj*kHNYP3$O@XGQqZFmoqI95yQ>IhaP!3T3q9UQe zgqoLHmD-Lvj5?jVj(U{(fQF7noJOCrqh~^v3DlHK$FRdD_1MO4V9NJde1v)%B zE;>~@d%7odxpeJxOZ0^FeDqrMZuGJArS!e@C`d309GRk-%9sY2j+ieoUt@M;j$uYH4>O;zaImPcxU(d()Ur&m;$YZ*BoseC{8v`O-_H#_nf_)r&su{m|S^$ z1#xAHiXLBDPm()QLQ;-WnNmNc>7;d~qoiA;&t+s~d}PXG)?~S5@5sKD z9hIY(yDb+d_f?)i{)RkUzES>IK}Nw(p+aF>QAE*Qu}E=MiBHKQ~gA)r-|p8qylU8lN=@G<7r+HAl7Bwd}PDwNTo!+M(KQI^;S= zI%zudw*+tb+^W~b)z#L0sXM91qvxqts}JaF>A%#Uy3Kd{{_O?>LWA1|=?2S&;)WrH zoknyy=U75qk`GND(?{7F}qWA=gdyuF5B+luGZbR zcTx7L_Nn$84%ZxBIjlJ}ZbAh^~xNN$rx~94AxM{j&xgELd zyBD})@0s00co2Ks@u>5p^>p`a^SbO6=+*BnJRgR@q_JyTS7QP!b9dluZO-5 z!wI_^)&l2(KZP$n(s=YCoHX1$yyx-N$4QU(pO`(Vf6D&!(bI(pjfmn%%1EEc(I~~J ztY`SoT%YwuOGdwm#>6{3(prLiO|Fk zNi<0hlNMg;zN~r0@haxkeljfiTZ&XlRw`+#f9mY(TdzO8;ePYt%~_gD+Hm@fbi`Y> zx6yBpG8{4nGOuNpWwB?)W}UoqefRUd#`~IV-t3ed!kh;=%ekhxoq2M3h54-cvH9l( zo&~cX3_r9L$`%$Du@xm0;}-iDua#Jr{3yLy`l(E$>^*`J5&IGN=>KuO{7(5ug-%6F zrCeoM6;IXMYP#x}8l0M-8dR-I?d&IuPyKb;buIOZ_0v_%e8NuwzJTsC!s%xPQcC6?YJF+Ld*gI7a*Jl`?JxdcRomCLzoX1iOFKS0*xk52mc4>~ zsr{CN+XvH!9*3t#F=!U_hhw?p&J(kfmD7MTqO;fM0_XJ@9n2)w1B=Ce255+J_;H|k zI9C8%8XPgros+uA!izkcf)7#tcN8T~mnJ~zLxxU{^oy0*Tv zySIOEc!WMax!?;tsr}B@ADsP-FB*_9Tzq^ye4-1!aBu@I7^lG};1nmMy>38ccc1Qx zL^v`1jl}omUr4wl4N(ktefmimxuxcKb}m@^jkEt9V~_t&oc+PrpL|UKssQe92@e++ zj{px3kARQ>OoYUsB|=C@OiKJ)BK=1q|1D8oB&t6W7Hk9uYy%%3p9uV=CL8iRQa&3@k_w!6C5Hl+KZxWVfLqGkX~fuZ_m zSdgoBSm2wEK1NdGOe&zm>x3D;YdDAn;zn2DJH&fp$H!F7u(N0sWQSpQ`}hc24?Rmf zNmmQA>^xNqaZ6E)5eaFi!!foPPtsZicHKYLq0>*bEvF}3w~K^&9t>m?XAdsjMo|ou z#Is6t^dm&s3JtpNm@*DLpJkL8s6uP(aM%ZNxr0z{nw{$xA2;6(zwMb5L^f7lx$^TT#Vx89fI^wzy zXUu>Wk3oKkrWcnOYh}fjp>{=FrY633cP11a75Lnls>HA!v$wm^?OD97fSl*Jy<~LK zWCf21+FwR$96{bynXO2Vwjsyw_F7p5$6tRs>U;i%%UqaMEuCfTiXdZjc`r9vhyL|6 zMDUK)Vf@EEr70Un^LI=7F0=TY+n0fnAMt4~An$EI`4& zla7gmoV}{T0t?dneVY?IIvrt3$dS!6*ax^vXoko*-eNmr&$JU3IM964%T)I8{&eH_ zjn)!RJPIWn*DoD1P3g_0qUAQHnJK#Slw|DD&lz8F=L!8vuF~Cqx%Km8Ach|iuCmIX z9RvKQ3;W~Wi!dSq>Aro;Smkwc3ONzgJ|(P!FroQWcba0>PBv}tY5Nd7tmAb)P_j`n z6O$EcLb#tDD1F}$Iay}RzmzuFHCny3`{V3>Hc}r8%%wN8V1d4benhpe-gSfB(?U`X2uC3Xpe=yi@6jL$d9%Sie6z@2`=s)dv(4G0(>Rt5SCP?YJ1pEiAMQCaJHIg)U$L@+njwCIsHM0^<(}u14FTUUoKK8Mzi2rN|64ZdrPoGiyGP9GEH5NZ_uC_3I|J2j6dtrLy|mv*SlGr=j#&-A2iml~Fyt4W+j0rnR(V>uHN=Ndjtj%O$LfykJ)e9bI3% znyP*zXvOZgfX;aDDr>1%mq+r;--dQ1IFO-~qoVpjreXWIV$fB3^1{&D!NK&bg&#h6#7y{c7aPqW&Z0KySh;ig%NbkbG7%$0y2W_Iqa5 zsXAF^4Outo$XFc2XeaMh}7HWO5_pr)P4`Qx%K=7d{G$zA7zHVP2SEz^~{iCftAiPjQ(oH)Cz7*9-xC;6F%5;#vYzc)()mj{GS<(8N3#bzbcIfT#7#FxMs{{bON7O(~>gHJVlU{)d~_ z0N@Uw00<1D>&jeuvTZbghFWAy;D}2>jZc5QI9HBf{fp}a7RGUY9YU-{Sx-st8$K7) zIPb&!G*Pnj4ykBaM(X;O?JtU$(NUUSTBhPvLOJvyaQV-V+*XUOyVOpFlkkYhyd+d6zB1 zF3~nc|BVh&OhHUcLu^xmqD*&AY^y#6pCgZZR%{);gV_f1OfUh!0za-mP8Z=3L~|OC zi1;+4FvpNN7`WTC-Dv~$>$CICvr!BuF9ZYc{-v>~uExS};tYp;p0KKu>QMkKd3DL^ zQom2EC&pe{N)e8+8$ujMMQ{|tUl$(F_vIuY(qkfbyqK)v1$1Me|0z6UB-FHlDMoI> zHZZU~sHS5$)SjHZ;%hr52~QezbI^~sa_kGHRQ<}8vc)97 z`un_pCf6(emhGW&GwaTSH#wkzU>FooAKE5qIa&0b?#Ne^lDn0_k^3q)%?kqjJNkNRnG%DYXj}x!cYlpKuGrX)Sz`P>8c_Q{18o^2!mqwZO z?)ss$VMzu5i*JdM5{%#O2Cu9Q#*8w}KY;uc2v%`R8ql)geioAT``xK@kGy&_(?OdD$63j&snKU5MeEd-tHdegosg8oH#Y~qnhE#*V!#vca|8fF zxgN;v+beqVV1Mdfy<&w-G8y(R!S}! zDI_3|9%hWMbst&@9j&>-FPTq4a+!qKqEMELsWHrpWgq+9zs>B{jY24{ij2*3XQkDy z*zZBEGuy3zS${8;gJIp6L!RULd!6oiVS!H2WHI#h zIw5)iFAIX5B37dY%9>OIw)U@9_0i2;E_g+3U zVorcJ7)nuv;cK{I+@5>GbJ*P9EaScx%VClUA~^@$j#61y`?TYj@Jz|fJ6C4Q>T4!@ z>w7DcHzLL>^(|CQ50xO*sjXz@hU24J!<;c!84NgTO>Qdy_-NdE=un&=bosImoEvF6 zI_V29do6$kzTdpk?171fHXigikb^G9=lEW#E85EOcyp!+ zg%HV(`iP^L$%E&ZJ0euIKWAyIuI|rVVhd1O>H1$xM$Wl;uNex}s}c)qJ~~r9clb85 zBTj0I(666FhVKtYX4&OgYS`slsX2R4x2TbVo5w!sI~=r0*S`+_8U>L>)ed7+!NwtH z%8X%c%(Czh~Z`L9_B-DA4!6y<%rT7IAwi8jyq~%Tca2Yw6qNS zH7nW7iRkMYj08*B=*_IFbXhK3-ohPKeHVE2C5%70w2IwrWOqsByuK@YPC1jYEhhAh zS|IfAFH=Tf`jL2zCbVDXVPrPz&$9fi$1JstPYPY54Han~^J4*{`@86mNeTJIzaD}I zpD&o&*&Nh-j+hN(IvKfZwE0kI7J;@wlJC!?w=iLZf7~D72^8~a&eYu;EE217RDM>f z%XC+JfsFZ$d|BenYQs#n9m} zt_1d_Z+QyQK?VLN(9frl|GFM8jv4i6aP?lBvcjBAV1b>J#eXd0#IgV17k?8vU}vHQ zLMQ#Lih^|DWP1M6gE|p^Hq8i=eqsV1-v&`ddzR(89c#Wfw+jTTU8ETrWLtJjZ7j3% zv@3jqxyD^U19ET`H-`V+#YKf3`duv|dZ@+|-!$`6cPieS$6IUGJ{LoLpBaCXA{L!* zp?TBY{Ik<6E&HxS@aU=v%g9qnHG!&Bp-HqDEq`y2eH@+Fn|mP}uxsm?bp6#0UL@Tf z9_())nASWo3B1ke9#AW*{-8rv<>v}P0-xJs_Z6?|anOQrzyi$?e#Hw-jvSwAbahP? z8{{^543^?Y`t9%fZBsXSC+^meLlBzINHc*pqU;rq0SDTWpX$B4IcH#c|6u!A)4oFv0X|Z z->W#u_ev03(^TJInp-j@6+dYct_vHzSu#?LfM=eb1V(6k8lE(k9XIy{_*bq?EY(a$ z&A#@?MoDAdA7%*Ye`0+_6PjaGY4y?m>eqHUnIn9MM}c?+ma)czAvjX0wtTOwGX#Gf z+$&uupCG277q4zRb=2S_Q?ZXF_12sex7CwAX3`0zw<-9U>G(-}Nj};5oySaY#9i^X z!KRt93mzJ+JIc-J0YtBMg(rApE=5=vaXMU=_+$p0FMT;GD@rWrQ}~FuR9h=y={nLg zqpwn2*rR8{#;NVco-~u(lbhj_hj`ZJWX-zIPjqW$f$}levx@9~QXr*rY#2{V{WGf}~DL5F2en#rHRMp9uLx zzTyXQLusnfBDVehax(!L(GHpp87loR`JX!*33>_Zc-SRr{qkjlQTu~ZW@n`Z@zoH(cmfwC_Z#%J6Mp*L-i%lX$Ec~%5=um$bV$3b9grg3)P^P zHMESASu~h?i8;cJm24J>LrjX}wWjPf=OU-2op0Q@5w0<5Y>-4kT7>(giX6x0^)36z zD}yC(rAOa*gfcXgVF8rbx0o-5cH5-7I=b?<=dheDEI=R{hP1?xRm!$t0m>Bl_P1Op zVxe6r8!K_riuZhv@JP>n(4r+-GWWd5E*FBh|HvN@iwiCJ8+l6GdI95ze z=lloL9Krj=4DfBPV||FEu9`PyDx-Oe(ef8=}G3l4m+n;;L|l zcUOhonr*U~!O3 zv-IcYWZ@;oYkCqBzTpjW%&>ZZemg{M#Z6+vEZ}Rc?{_EHfFe4fn)y~{;Mbx(s%(XL zI9XP3XE|ndq@q4x|G}_m+P(V%U9a5ue}q(o8ueQgKP+CIu?bLq-u-!+cGUFOo@VCZ zbe~$L`F6yg9-DTa!flwQ%zT$%G^h%NrRNhFpbtrU${v~08`yUMepEnX$_ zv^vmI;V3THLkUBH`Yw|?9+G6sZriFAYvih`ap)}BNuSM;F8ipMzk6Hp z83#W;>sCut zRPnrhTD?}$UfuA%UsHP7aTnesdp=S|k> z>5Wm{rl4x1zHZ}mbNqSASnB*E();zjx5LsG5NXY$?pQ$iCFX=-KXtRBTdb{L_@;tL z$)k#09MRV-?Ca=0$PEkIE8-v0mwrXho)H8t`|${RhP0HIBXF~ITq_F)j( z#LiXvV5z9p%QK$)c_-^p;4_SQn za;am1#gOH>)}(~{e&lX%pFw4o{t$;wvDJrhfxF47o!p)>6$&+~Lb%t79t*W&C<7&1 zE<>`~Mo%cC?DHq%ZBK@DJUr+n$o&0<7#D9pz{Mf^VV@Tq$TBxVSzk!jv%A|ozHyYv ztH2x;_inBChxKH4b6RLS^gr>5pg!#TZ#hM&oxfFK4f|x@^_iutYiDrT^Mx;+e{*R*kz`_T6k*ojdth zpj9?R5(JbXd&i^A;B$h%0J|Dzk^!yI;~gvj%?RG2$C-uw1)JQ1ZtAdE)zGopOa2>B}bAJP{kohhr)g5)5(-T({rfX0}JHTn7QVlV_PwtQCqBp z1@476q0h%1-oT}}jfcOCJZ_vF*t=C^-X;0q>0p@dC3*ujUv|!aOdt_<-RoSUoZ=OFfYKX^;e z#UVr0_9YewKLjxcn=oYqSP_WFL0aK`$Dv=(keDmeT$m7zZRbs~GvS#FI6`_2iiUu- z+WY_BoR88!b**49%@;&p7I~n){)nHhj?GZnui2QE`SD2&XQx^p zMeCBDPmyWVMa_C7-xgycXFi|wmW@iHeWtC7*s2lnaEV^y zQg+V>^m_ETP}@AE)P2fAw4q5MgR1S8-;_dmYeDdM@7Dg9`;T)Fq>e~O&0r#%KzkAo zw2IL6&^f0wSuF4#p@juLpTaSs$jcwf63|c3UdLEKtd0#FMaCV--aIrIY6t&&*#xu& z65RV&-3Q<(74Y;Mi|8x@&z#So;4o(Gp1y#$S+&70P|x#-e|__&h-WFnBfF_0Sybc~ zjl*-zp9%_cT@@c^A5&guqk%=6oGhSx=5?|nRW7+wYMW2IJK=UCT7%JbOw#EH=IP}r zJh$#0pC~^JVd?Pq)vgv8%FpRSBk>+pK9nDuV`1gjAbQ&Hg6ULnVI4?K|wsD_l zFP)0pnVg_dV2Ck)t)LK8@lmi#lPfd3*#|K!0VA^&Bh#ndVQcI?VEm6ZioGm;pcRd;{8w!I<~RT{vdwyfGU|y%ErI zB6h}|$urQXxDuLms<%!Cll45$^nE&2%O%%)KQYU)7x9$lsr6E9zdH(k*zu~-^3~#d zHc^Cr0v4!-I&XZ%$gI~WKp&TSAtsA7%3R197;+QOnoLL3%@?lOYWys@@j=+zn;2a52!INxhFMd%L5%JFY9}<#8hG5mPuXeNT;u*)D0h z(a6_ot5T=#L?IPIdu9_Y+^@uvhZNk)wsA`mvtM%f;*~jZw!HbZAh&gn?iM}pfxO_r0V<5ZLjwP|N2=&tXg=1w}XV>W~Md4 za~W@aKIYFG<^d`c!7!YOz!CS4m)AF~^2&NcvMcU-9RJ!;*qS(#?{gba!qYpeDu0`n zmnV}kUO(KOZZh?=*V@-`a@hOriEQc3;g^;D8mSs%*5}>>RTN}5o?5M@`PXF8?&|~^ z@<1K~LY7GC)l$dVy_b#U0q|MStMPqdem0Ja7xt9PdJ-cMi8J<}K*)JmEg;g=>0kaVs5 z+DRIzPKwfOo8^8d02S0+Msm9!A`J$s&TU&3bcQ{08Y>&rpSw6++xZ%IwX5s%W8!s+ zkW^;W=pn4aWIb3fc%!?U$KAi7`8+tJuW0Tv7iRFVECTBM%|pH}dpj(}bRsXd$}BZd zpsZ0Eu@0g1TnDxB*SUph6x)6-CfNB8nl2Z=C=N)8O?SWuH^y4-nA{ufvZ1!*==(x{G2l+E3u4xv&$qB*YudG!KQK-}_I| zI>sK|mEn6E!5t3v*L@u=shpE)Z^~QmDdVmKgPA6zERZLa**y+)6XEkaXsX)3g{F-; z(ZI0i&qK~I1&h#@1hgac8GP>~>jenS!X@rgfO@_i_DpbxtRi;8muq2$FMa_s|Ztg16wT~)L zMflr5Zq?OQHX|D=G91Id+jrGIpR=(@e&XY3NJuOv-$CeC8lv@XW=$c)mL~;0y=KNF zS@=jOw0MgEwvwD{7JpRO9pQ6*m3UrQd8ysCk!+Jcl{uljoxf%;CnnL-LH%k@ zC_jgOYAQ>z!d0mBXk=v6x!1rpea>slYoXPpW%-2p{ih)ADT3k7Z8O)2)}mXvYz}u8 z-X0a#LMo5ii}A1k9R=flhr&0H!{B5Pi!x~|Ks|3#(s+g@Hhy*GZE4NytB9mljuAZIJ-`nw@qE9u1=)i)qINL z4d;tg5-4ynJl~K@QIS7=M~bGDS*T};5cF>GZEvsHb{zaxxh*FdUVKMzC{rv+D>oU$ z6{O-IXd@UYxZ#+v^N@3a4w=3?{dZuWhh52JpnZaJ&=o=?fcm z(7NKeq?%V$@6M~dKE0Bc2Tsg!FNsW*k_FTdH^YoVd{D56GrR?3)XGyS^!}8}CG(#* zBhrN}zBoDYymxHFOq*1`Uco+p(=ZQ~O?v3GMp@YBla4*bb>A7ItOmNPFarVy2~X z<~$ws-0l~W6@)GgVy2YpNA#mcm?BM@hRQ}9{b?_0Zsk^ovG681PDHb4eo+@B=Kh6G zIys~iP@q#Bs5kFk++&ZSIZc!rt<@~{6%KQgi`IC(SYk)nGvI$$j=5~~FAC%(hQ(-J zLZaTLt({oW#wR{u&ZEJKsF@jZLnuBlHrY7M-$Y|zOG78WUZt;~G+hxAHI^qQtu?sq zuvD5BYEo+xDw?=_LKMGM#W(DEC1Nq<7iMH#n&Y0!Y!J(U9y}iANqBuZZ^tZ7%EnBq zsb4CPFS6frvnQ#GNyyz5zdYpBd|tzO`m=*Wt+HgwiF33P(GHg$3em1lI5y#WDWZL9 zljK7m%SUxw*Bo(chdb0HT>Rf<1-=q(Pm#?gY#z^t%7{3(*56}Ij$06rZaV*7UVBF3 z#KrY#U2znVcHh+M>05ES0+~FgxA#U;YR9Yh4`%8Xz#!z;^9xE!e8iuoq=gDfw-3EM zLS;6?9Qt8}NK`MB5WZ>)M!Pj2G0NbvD&b4k2@`VHa~pJkm_m1$Bxe2*-v;hu)H&jy zu)H`0jq|TrDaK~&UjJPFLWCAj&X|bpv-Acq%4!JSX59^6nZ&Guaah;?Uf<+22qp?T z=fIE>Cph_JJk+E-;q-ckVb`UG?$~e8$(l&BWF!GXBO~Pg4gp1RtL&3AWieVwIo9fd z%SFu=LM|l=HOuKl;dCLxs7e1eDPPAMemVT=N~1nnwr33%4O>4>ZAremJL**lc1gaf zyO%vtjc6LEIoDyO-Esz=|hHC2Te_k^2V_4!whFv zR`t|(t|{Z9vF_~2@oB_!kvzoDVt)Wa>PXpkQ=`;|ihj6la8|aR%O{QLsdX%X5P2NK zUuK{CZ=$?#k~ouOuC-Ve1MP}~}?>EF{WO@06o1(HP7?Z|v@cEHCh4(n3RV*rP5(~HwE6Eo0_>RLX z)hiQni|`V@6xU@}=h^yA&G9yo7yXD(b8VMiDO`r3imOibLX;8i55?K>E#qqWk-yr5 z4_|*iBuj9EepKOKo7p7?k&E0XXn$qtTk%-HLxiW+LGAxvo3R@ ze%0k94mD>UJyWSLzm$tNS);r$=#sM`mDR2rlCHnw5r%W%Ry_9s<0_5j1~;=OgDU)I z^1~~q>A5R!L+xIaJlV1Q^@SWy;H%POA*fORe!Lr1#RlVTSPT4dV2a7v zYZ_~=kjv;G8nN6pkN0&e3c774&MKd(k~rWrPo`t-@Z40F2 zAU{F^3p}N2OHo=?ksanV7!Yc!X^!2IxWNZKI*HF>-rsHzjY51_WfAqO<(dj_VmTTo z`k1qx2q(CSIXEs3<2VtRm=hfwds>jw6UTlre45MyrB9v?kQ(E(FuYu;Q0lOK4r*HV2@cxRE~ zGc}br6>L!`d?<`D5YMpTrGW>lkm8z_nE%~Ad!NN5pFztiL%JkA9e>`2;@H?=P21&l zlSt-{<$yay?*h0{1VPn(F)jJpg)GxfYg=jXDF! za~ghHq?~DYqDEGH)L!T6E_n*RZ6QU+K%|RM-J|%QMEw{1Cut_>TL@lhmYf`-_DgH z=pR;B&GABF%$#kVco~er(2nPmW^ujHs0G=h)2L51s=H;e*q!iRm-3k3pm2Io?8CCwV(54)O z_kBWVi3+ERm27@Ggr}pf{T?O3{MEzdddrQvef__AvB6D(!XHE>!s~0#k88m#;NW;r zEey=1ZV~&QJhN8Z=QZy6E zv0T!W|HcurG^QeQ>qSU+9g;d-G+T6mN1P)l^>T&)g_VBFkJ1 zLw|v4q1#DvbEMcWzQ?^nE{k>5JWOd z$&F^>C69^LEHni)b=s|HmdE)VEdPkOqqyOJKKoOrbL%g}^v zWK(MlG?OLB2~mXS>6!C4)NGf6Zne*o&e0vig=`MVNu~o+`Z*sEAcPx{lOOP-8Z@K5 zgOM0njWZDuq2?$Ad^QaXI*m75hK^N(wtp75s$G6y{2n?oEW=S%`(Y=dU?kLIt8I)V zOgV7xuzlc+Uv zy65QD@!P;@jxTfb1*X~Bhug=O`*-LTYM-jGY`j=y-O4*?ZyVY0VI7gnz^$wYbh@G* z+&=6O@9~EHeXK-6!gk0n3+-g&Bi#vlN@O3zjP3S%O{=#nl1)=T32VD5H#C)yA zhqmmf4Y9U6g{BA=-|Dg^{jY&f+Jr;N9kq?Q>*xmcqW(o}2mW;qLnIyZe)i1j!Yq=6 zr!Ci6LukHzIxFvE7}WgKOL@!1M_pa6LoXOg;A+b{<(;Pbbfp|Q=NrONwbHtWMyheW zdyLX$1zm*{Q{Q)}-rX{b`I$vEj&`=GYewbeOs}TO)UH{hW~S$d`X{mYKhTU?tH57#a!9|wzgX4xcez)=IcYoK*WHi|ePfV38^9wsTm zCv+4WZc`ys!d`(&<(`Ml-K0shEej79%_LchF+ON2T>to%vf*aqe%HZeasRm)a_bPM zfkvqP-8(-H$eM&hUw_@aY352+pDKdPSa~tVUf%9%8%QG^Dj`=|RVvYHP(S1$>~Tq_ z+5P96GTBHbqAjKy;-3Wr1mxt%aayv-7h_+J4}|UN`;}w`O9%T;aU{^J*q-E>1ecbk zH`tVAAO@ZK46D$isH78@1F_2!?kd7V#*q;B+FHijwdYqWm!cc4QDDZ1=p=xkAQ^=G1&NxPN4zSA zO6FS1mV`vU4a1Ui>^;}S2JWP*vRVaaTn)&^Ax0Ky5)a|r$84>6Jt70$5?)u_y+5~c zvB^(PCRT>IlX!bk3DqnWylt4MsXvslhGjKaXu$Xnk)cw*LP7QR&)dwu(S;%9V1T-% zO;)Uw4O7Pv=GM{pn`*{rIt5+!rp`o;pyd7>T7`N}6Z^!MRlc^IHi0mzUG3dhu7!$L zRt;|BgU#QU+VB7JRTodzUNtu0;ijfI$>I38LU$V*ZbkS(V#ZV6ILKI_pXjr` zN~B~E1;63J^MbO&A+Yt~>%F101J<){2JNeafBjC23S*RI z{gWGwsNE}w)gdDJp5Js0ZlZoC#LnqgVlGEQCj(y(E4YP>uDq*OF$ zECE-aM8WudOyi0_{eojbQ`3x1)x+xYHcQ)an7U(SvXh#kmQiBj#6hvip>6aj8QNKQ zU|?XQjmgj^(r2)xDCTqd*l8Vp5wSJix_W3~Dzv<5>5W)E=rc&7OtiVqQ<+uLFBJ=( zvD}K$i0ir?@lpe0b#gO(v#udya&R*DPwFN`QqyZ{+B3%rUW*CwtBBG|hrUm4$&EI0 zg{-RVkK42{^;4nABd2|_;D2IC^MevK;{_Fa6>fNC>#evXm`2)2cRv&xAK>U5bd}#S z2MraY(njxq{WSP1iwaa%!g%|{2qpAw;;wF3b;yOE1U5HwvJaxK*BIs*VHIAjr>|lT zJNC9{WLPfCke4RhAfyO2m^){jX&qOqNpSOJsEEKnAw{c*FTl4fy>nN0eHzZp&S{RU zxxT>1{P~Q=_x6N5yoS@I4Aeq!j_k}kTbm&sUKm=_L67H%CE~E3cB=Q61i1Oq<0pLd zSvsXF)r_4MDtT`kPC-C-O*PY5G9h?i*F^5i3#}-eYoHTRe62`Y>6_qY%EEp9IrQ9Q z<(~x9o_j}QJy1IkR=np^3`-k5_Nm;R+-MamyIXWOtlZN%*k^i1#UaGxJ-Xl&qSMsx z>DQoZ+I!-{=TI+MHYPHnb|ar8TbbwHW6iZS%lm=rob-%Gmm!0{ILi}rD>Y>0YA6Hf z4f)7dVIt9FyLyx)42Mi-5=4)oDU~5t;+Fj( zH%9HM8>*r?j2j2%2GbYsn#!4VQ|8vvGIzgMmT4d--#L{14}FjiEL1C2q6Pho=g@}5 z=6UYw2b@8t}elqjp&*ExHs4k=r9C`h}?!Ggu$!u#I%M2<40)j|Y z0qGz}Z?VzL07DHuDou!hfbwB z{(P+HFw2fK$@@jUfMbRv*$r+Nh+HfY|L(Q_HXc{*V|BmL{0jKgZeooM1Ea~o^=_i) zU`z=kHyLWQzKvJ&V6AcTs@gXDeyQD}XbG<}6 z3QLrWTZ_q#iJyN(R3D*k021#or%4eYNROM1L5Iw(aSl%Spr48n;?oY^twU|bFBO|K zAnfdG>Hg>l0%7*!z*dd&=#@`rP&u0&Pt)v#FGE<)o*ikHn}0Blql@cL&~~4f+6quvKJsvL|uhnYiZ?UGkBZ^kc2l1i!j$_X`+x64tHf z4Oi{9j|-1?+^_)}?-hm{ROi}qkl-`dS4y#OJRbUuScR^1CA#m*x$AI6&B(;fNsFlS zJC+9B4@No)x`=kccH9rX)U)=p1mzSCn@d`@dvMtt(eOO9%to-Qah1L+>wM^$r^zYv zE@xm=EyOIl5@emeoJB{pO>ob8;kT2p32z;**u3$@$BpeR%qA(FSc|Qjsh{3Z!a8o( zd1$RqB)XxNE3^THrkd=eyPvsfXxz0G&V69kra7s_+E5W$3oi=JU|lcnC%XJFQE{Wf z67DPhVAI}p*Y*a&&14G^zT_#SqCTy9o1$4TDo5rpVlp=ep)j8W^s$RsW%1K7WCe86 zG>>4c!}s*Z?(R@^3Hvoy{;UeCfRwE!)EO-#4#ZPDFHoaPnxB-S0B-w846F7T{O~%B8Z~Z@pG8k8iC^7 zO22dOeO=*dE2}_F=Ft=QZ={Wlc9a8-qoSGnZc_$VZU1+f&TDOrM2G56sY_-#HA#!M z_ufc+xHt6r>MYmnhRl#4s(UC6qN5#Z%i#=8 zNo;bjsP)PrJ1C|njy$9eCF2Fg7iQemLoy{^qYc0ytLZIJIyrcCC_ z8Y=J^1tc1h-)i0C=LaKGy_B3pQ}Cz&8`arTvWL;9;xfH$()bYAlOHH8o_;g_nI%?H za~|O&`?oWQ=!>eT$87hnQ;L`i1pIF=E~2ORh87E2soaazp2$e*HEl=OMX~A`p>x;r z&OD1zj0~pL!6|Id)rkN7+|e@Y+kk;d=s4(a_Jj5K{x(enNvJ<)=ARQ?Z7{U%%ACJX z+U%c*-4B8&NMU%(a`!mPYB9TZ<=FH%x6G>azaKEm97BrUP3oTNG-zz;1rc!G55))K zJt)kY-ZZ)jv%DFB1!4cRXZpq;R-CW+F^qUU_?a1>TbKz=9#04ly+`$b#y$Ec!E46` z7B==fh&dcN_71=0DZ!?ydH)(64pouGF7rUCnf_dxCEK#c?+|&vfTn&V>85putH9tK zv9Fh;ZvS#etoH0?z4j%Z%VyVij|PiHWv*2G-LHrc_e(9N^dagz6apxsd?sZBaJpePQm&(`}rYPo{ znvMwWlUKhBRLASWgSA$_oyBowZFXZ62C_u`)w%sW1ovcjB`Xb(=JGo(=1&l!&{RKP zY%Thu&p`u^;M-9$+`0st?(_IjI)|NF43Br-&J~X3g02A9Z&7iV#>}%cGxcnER2DE+ z{7cdx#lta#V~8g1r>qB?E0(dCb$_GCoe^jlRUo-hu9aFXa9~WV0By7hOW;S;6y|8> zi!?84GKQw343iG~y|x`C8*U`=vC>i3QpZyvTRL^MBdUFo8~!M|X@*n;=?cjtJzuDW z1=6pT_|F{j=VWo*~_NRwB^0qko0?Bzf9FZ*JX_hq3Q8zBIcaS`m_>J)ocw&f5_j$x-FV!{t*{H^LWFLF? zT)t@jJ*^&1j!@$Tn$N5=$=C~J=}!AYWKkTI0}NCMpciXga}p4H_9W=7|4I+vF)}2R zEY%!B$aajIOag_-II53Mn(r@?gCI&dCiiz<_V+_^o5lV5mR*0Jeg8hggO$UPt}WW1cGj56)3_?p;UksFl@l{Z!ejC-eTk8mjUwL#i$G&UnL@QEu^r z9Cw_w?@MaHkI7MJrFCkK41y`ZILnvwK{=-1h0P_%SAt`aTUG7$IRrEfddh+rB%=W34QZ4TfbrsF}LVR*?pnQ&`@_r-- zHVRk1xn**U!oz}r_7>1W(1-2`9??7ra{V(9Zy}3%W%5uRK7%;?1aAh~+`qU|5XT5R zSJ8jzr(z|Zf#~2*9KEXtyYd`!%!WEopWnUXH7?Nj_3Opk=aJbu@wd2Dog&upNM$HE z^VWV{PF$z#VD?R!t8TmR%ADG6C{?5HM_RM>$CV+s>tBJ~Tb(i}`1%oOo^gOqo}`1} zQk{kM;brD`v|o-?R$f0cO} zx?-My{9dJKOckX@tSn?kl37-RBSjGjUotL*H`7gNV_>G+$QXNz>nUtgS&wenMW;7E z^*dK-_!iw(bZ<#RZq7^Toako34sdCWf0GN4ldtn03T4!rq6ath=<2INkdga1N$I*O zS675INTRD&XFo$Emvd?NSH$GTtiwvbNcG#NmrWnM{Cb6em<$jmd&AuclS3vu-f_D{ zPrOaX5QX>_MG$F;5}H|;uf{ZxyQarZ$Obw>6&d2Lta$?_c_Dgu2w(#}{2KX|=ZZ3d z-ly9Lqu<9lDXJe%a_kx7ZFJK_kX`~=+ya*66Dc+LF+Nb*KsC$FE9BtvMSsFf4D7Lz zEFl8Z3A$Bc3y!%@6n#8$=MHU3u<)Z3S8O+*>tSGqjdPi^5av{i3B*!1f@r7L+&q&7 zX6W}fM=lTv-+~I^jjd^V)6G;?eA#QIuSr=yM=fzQ6tPRzh)h?q+JmC7=j|#oW_&Ul z)H-T%Ud~}aW)9Y)ac)&PkxI$w2>^MbC&3Pft<`hslcJPVV0}{i#$q{9?KAW9*{x@S^W)n?0w1(uNQbreUpN@qkVMECZ%6b?2 zC$(yV+$oe5oBZ%sKCK0f!LTmC0&o5Hd|iUx=GKvDzhLD<%N8igxuEg-!7T5pH-V3e zH8gJdU(VLxCSJ?oJumLbJK=-18uZ*_H1@A3t>9^#X#X0M+~2_vsJ#qLjagsau+VYZ zyg&E^BhzDJCUKAVvB_S_+x)X12PVpy+BK-k1%eKlaT0NZ zdx(N+*CtT7AE-0e$3~|jV5WLRy)LdmZM^v)UdOX{c;rs7!iN}EzaM_4q5KeZUEh3Q zJvMuMKH3!zI;={UWL<19XTMh`a4cF;wmZTQo>w#u)-A8$Nw^cwNb%vA79`(YpD;6@ z>%S8Yt_(7FmPP2kMHmWX-D^IW!(Lm+&zX`n4PeLDT|1)LlNKQ(@56cML1vQFTZd27 z7)ZI{2i<4L`LGB=PDWYq4znto=f0N zlG?HYG)Y{aoeaj6xr@2;czrwt&=R3#Bdag7d=OgIJpp&^*ghhyueW|kxtoR7f9)T9 zg7%jyOu;vyye(W(T&2Szn>+7!2Q?E5EIRXC32Tt5?OML(_>Q`Qj|{rt$Fm*jYcub? z7I&3R@tL*V4G_PKxWXkUqh~>$WSVZQa-G_e{kYf;%grm=rW+fd7xdq6wAtA2r4;mw zev`Tw_`V8w*2c3N@^D@PBuY7$)-KqK!I zy94Ix*lL%jnp2JN)nnDtzFs)ffy87^cu=x?P6O`1kXCW+Jt4FA6|^?#pl)|>FAf0r zcypIqIB#tH%CI@kCP*19Q-I-dHo+Wc6YJlziT=3^#l5N(>nLl_sY6}Iplf8L#)e!2 z43;}4R!iBil>uUtS#De&FK{Pf_1kNbVwdG^i`17uy;JitH`uo$n&sQ= z%LpEG3Ist^?B`lFo-u-+l^jT90p06LwuJ&gc#C-uyS5Fm1K0t=&n1ATa2n%!a0sNI z7SWwJa-^c(CXks#=0+X@2!b&6V-mw{aSJLCssKQKBxvf*uY3cr z$q@|}56~JO{quQ7a+n!%19wDoQcZlF5H;Bp#DITND8VeQv9aHHPczh>{=C%KE5++pHQk*pek43dOtnp z#%~AZE{%R~U+K`IsBSvYteNKN-ByiD6gTY6-d*y#8{*;Qjtozh=xR^d3g}$e)j`F@ z3jI4)tD#q$O1ZjGT8MCf3!DNKY(_NW-F<-f5Dn>5VteB}b;zRE z^CV?rQl}zvMDBI)?A2S5rq56CGd!i~b|OotOk2t+#VCA3^7ng>JKC)JaK4mc7r_X` zgqS;8I1CU$Q~G3Os-II6bvhM!L?Zy87|ta$@@|fr^6qjE!uLe#q$4S~127ZN2ocyV z-9mgH15pm*#^R2<<=Rsc1dg74*nS1@B;h%Een)N{7pLOO`wGK&!Rdyh+bE6+vpH8? z?Rc?Re5a<$-p-OKbi}Po3Tmfs<)d;$!x^5CE`n0F@TYn!O1%dKH>=-4@ei(Hu%f&v z*fMl@VSp&HleTHZHlf|wF6&MN;byCc@Q-ufD1G-ka0#EgEBDM+5*Jg=IKZ3R?PfEut!j_lNs2zTkB6XZ6S#uG>?qYW31N=1g&XelTaou2j)2 zi$9$lU?2bGbnIY>LbISwNy=%`5e@OOJ))hLa)z>4RQlO3Jt=BBj&YgeeTGg>>_?bN zckrl9tg*eq&)T19pP$`AS7ZN&ll7;=Tj<6kFv}|3_C7~chR`&I4-dbLQEbV!;mplA zjEmW_aK6;EUpXLNYjYkV7Ek9Nb+HzD%|OjiA!+#Rt1$gw7nj=&muVjXy$`<&q)Q#>F)6p3@>cWHRJ6Mt7+-lKL zi&0qiibvg36Ib1|Xkm@f(UjHHKr3|a!6WvM}5NecboFb)->gxPHGZ z>i%lq)ZH&K@^XEe*W|AzCY?N^8iBTu?UwG~)`AoWtHEUYYOPSN?W?Y{Gj@t{cF{k2_|hDysIr48uK>8M$G=_cJ?r!%j7*BL^x_yMKTlIoSHZg zWb#p(C$n$3WkH+Ew=~p_${u$fq&7|2WK7LxX_Cw0fmMl$`+BXF_F5tQKc|QXpa@}C z1%=&*)yEe*vCg|*>MxbX0cd@_9N}<<)WKh#-?4?bFF5__|)vF z$8AizyDn?{8$+AuaArqC^JVvi*4a^R8v_$d=fi!gwq#n~m7log>phN>?>bRO1ZL%8 zby=mx2B4g`$6&GGDuZv+hj}mG?{>j@o!mrs<0rlAfzTzr-o5KKYF9of$#={ML<<&^ zT+(tVw@JFmg_ahJJLULP&%SPzf(u?LMM>)IuWv*#C&Z=!IlkChb{YWp)U%UA17ztf zd1Wcr!L!sgQZxF-W8jef8y`O;h0M$oCF& zA~Ot%b5V@1;0&Io0@ZyK;~eX|wEMWQ{j;nJ-5thXxjZ_3e&Q{0eNNOgv41qqm~$bh zwf@vAZnKoAXKIP=iK@<*X3-RS_(>a%R4cS9=-VPWW91=9a;mG~bcH!IvaI0igCiQ# z^~u}UkeBx&t4_uGW;PL_P3b0QUCOYmj*!<4)Z(f7V0GP_o2>4%T$|P`wBOUdDZCj> zc~^0F@!lVYX8y-$G|^6uUbS0CG%t}vf6V{N+TPwb+Af18Vb^6TC#CXoMmGDY42W0D zO5IUZZlASAKYUD%4?$PURouQjX|-z~U}Q757?t0>ar)F7L_aEE_dw(^FGD@&f;C@# zzlw+RFJFA&9_Qbv4q}rpdR>BCXacq2cml54cHI)WeVJW$u;Ji3nStNa-d?s(q(9UT@Qw=x-rNW4e{?cRFcmWph z(kHNI4!PidZ5ZQr9Q_uvh#TTv!E1&2)b)3N9N@}fLI5qZQt3^$g+QUVdCQNn;_z=U z@@X4GFlHV};Rdmc7pe&Wi0B7N%V3g8qVIX$WggB2exqrS6y%Cqw~T23nCy|?AdXKa zqC_^>L3kDU9<98VphrcwrZZrT5B~W7|IMlfNK_^T!0f$1e`AW#ksxFs)}K-Iy#AN= z?VsEB{Qt>aBaPGUn35fGJNcH%;UoG=ubIYsPHOFyUN-FKD^e^EnOth<_ajpGFA=}-6FA@Qa&5HS@9cS|O z=b`IuK#=SI0u+@-%Kpc=F+TKHUh?=a_ndGBTk6^%b6PUYkd~Sup+_AA*i`@4Vnea9 zR94vX^(=t1d&$7!@q}QC#7Zs`?)v54cTyuL4EW?zuVBA(o6F)iztL}bEb*Kt(TBY* zX6|eK=tS&dwb^9h_v$MY^QV&NAEUpIuIrqjn|j-DM1zb1n%J1f(BX=2sV6Tr3BNp| z(Ypi`+??=Rr1!}?E@0{eWs9(`xb$FeW#uCDux1a2B-#%-?K^ickNH5S#p||F*hzWD zTBCtM$97dz1HTMq+L&nn!QweMsmU?9vWVUBs!S- zQtt#VYya8occ`7%(>)jJFaN~5?^6XjFnMKfu~Fbv5(%5j#L}I1AFoP37;i;xxWm?} z{2MP#o|Gwe%O``3dS((q)5IOouM&bP4!Z=gH9oh)U0M8J`UouKU(Ma~XU8aV8l0A! z6|I-+eZUy*Zuu0 zbp0WqIsPG7FVwRxsqx@tVhl~zvx~cPt(H<>;`r~$xPwM)nZHJ#J&%@{JI}z*6-)0I z_-KKLySG*nc|GBy#bHvPWOZ5!iCiVPjmnSgH%N;guCK;o^Nb!$|8S|=iZyw>zvp+- zY-S{hF&4|>2@m7pC>eal?mS;pU1NHGtf1Q0UXlGZQ_s9e9Vwb*RpoUuSETmFR=uz? zU)&9xVUvE+HFOiJmwzDZ-rzAFlEeqV?)47$fOgIFuXsqUV{AR(??Emg@?jv3a%XI` z45&m9vBc}M@Z)!?L)PQcJAm!vhxf>91N8@a-rtlQU-53y_rcdXfzktS7WJx&^9YE1 z0p6_Bc0`j31+eI%){g6GRCUj%XgT zgI=<3$)|q)SXldVpKau$3A@9A3WF1`!rOQZF4gx)YqzROt+&e<+0kjNAhC9mn~FI^ z4bx=}@5FeR%PMFlD5V#gehkTG1}$)A0|cS8xZjle{x}#x{`bWpsn=W}zt$1-dd-2V zHJ}|y)I2=(3~{jO_M5&WpjG$gSgTHuN*RNb_CZ9px$&(3g3F`#a(;!&mq9*L*$(qn zd<%ghU7su`y|glTx!vdbW8!-yoLFR`QA)(u)6-X?chGf%FNGfVL=!q3#^hhMJFq`8 zs7)M9@6P#3j-r3pXxJqGxJJ2vPW>Vz*#E`v>L@>J4z}R#ixkFYecR!(Gc$Z(idso*V6q{i)356r^eaTe90QPOIn4+|mz8R*#<` z_Ldc3nP8A=u*EnZPD}?mHqrX{=YsM$)XsvKuIvaez;-(Ct;mxQBVkP;IPq0;ebLI5OXm9buHq&c1 z;VTG10(eQASUT5>R>LD2J>ypGY+qt0gl4Xu(q^~wQl9iiF2Ole?vga8K@HpHY4pr-I*S5x|w)9;%1dWtsLc}3jv?#H*u34MOPnb$JQejv>lf@MUNDT5ep=Q#Hl z%BHB?K5rc`Z;zDyo*LC%*;+Zb1W9-(@S|7g(8)*+%?8HMRQe8YKe?CO*~R3r6%TwnkXMRysAjx zPhI6CEA^m$FnjU)=733YZw>b%BUi&v+yuvb2tc9L(YuA0Ezm0)CtGiC(<@SNde;_L zkfn|{qCal_(42>9lI(o%a!ykfzK)op<`K^J_?luzG!3= z(-A!Jba?OOg9oRkB$=r_lb2<51gE-j2v&LpvZi?trkiDSVZ>r=bnMKd-t0O|Xocsk*u6pri3Es(C`5lzVvO#{9B&%spjlNO<6VLNy{e);G6>S9d!fX(Bg zm6gKW^p%fcw(h8lZu!86{aC%q+jpR3aeK+=RP|X(b!dp6Wdd|*KXI$o?tH7;`JdZ8 zJop-~rpm^%u!!E9c4vL0O+(^l*$E~O6Tx+K4XG|~9PLmro-37oERex1dI!ytj4svd zR$5j~xzO56{_$F=KSp)gJ(53r%Qg8U3EK>OA;2eUM}VA6Iyq<88vw~(P?Ny;$B1Y@ zFhy@^)|JS!6`8hQkhbtGrp)$VapAYGTfRk>TwiX2mHQDU$q2G@u_VdZnmf^4OhT+_tEXQl7DqOuqMUN*%( zgY5f}GPr4*p|QvHWISX9_>kT^a_jUs?6ca*l0g}|G)`wj{hHE}V4XX31%vd8?e7W; zv3;)BhYAhOq?pAC0L0`yY!e(47jtEOV1F&X^s-L5cD`0rgAmWuH1KR{6k>u zg88+aH!19ij~ISf``$a{vqllf_VHscqzHc?$JAPQ(svNN2?0UUn|6lJV{P3V!BDNsr#4VMWxyBa9IU06~&_NIX$J%$$lZ`C47tcbqgIS z*J}n{52A|`trA5iK=y0glzZfy^|U5H;Fx-KWU)G6La4ZOK-~G+loZoll{0&ZvtDCe z&DHrYinZ=o2G3{LkcHQY2Q50&H8Dyad99v5P>NC8Bc`4HPa8+dmUAir3dO8IRvX zD1RvvG!#eczPE6GoK#3YSszK-jo_;q&=V3xM`GJzk=hZ*WigXd&L34g=+Pt1oy~A=-6vnP zXyQYR!P4x#pX;hm%+Y`PYFca4%U;8r^|Eq4ujriVmUF6Q+qjKxiym^Y#Q76UQy?R`+)$s}_2(aNldaYQH&C9vTvXYaeQt zl3FoVIiJ*;Z%CH^On~G+=@aH?v>*wfQm|hdhex%QzVIizX_i0g4RvFhkux@Wfnca3 zB}aHF3-o((o9r+3o_Tn_S*h~L;XuFvpiN%Q58xA)QGYQZHg zDEXNf6$7H|>NejBQ90_)s6Z$LRW`feXm~c_?fZ-$T~_z|1J`;3&<>pgyTannxWNrd z@Cg1Myu!0l@Il!pGy9F}ug5JclFnOp&I-AAoK9&&ykkhG-I0hvUk`Wob`Z}A?dj1+ znK+(|n1}U!ww>8(yJ`1aRaYCN*gB17X%A#WN|gShI>s5|Ayb-iLE%Jj@ytmYT5e6& zi}li^^Sit-gb6l2@GI3uTPmV`Aa7t>&EY3KZ*0JfWq8DGItb+BJ6 zd%g%;eVg0Trmhl7FgpOAz)Q1W=y3+?V3|U#8Bg@5C@onwfBp=6a9F9_=;f4mUvE_W zkUi9P=59>YbR20SCD&9f+#}bNTh>!mPPFQ(#OkS5u`ChGq!D9{9_{JN{4*K;O;pLs z9#`?zi`_CN6OOSrHk)Qu+E}w+WnIa7UGR1J`5C@QhgSg>9>l=gu4^w}a>1BS3cL*#1MW%lKtJ{7rjW3P*uJ!C?HLF8b-%GJ)r*?D~5@>{blIj_g75%@UIp4Yzl zDy14)au5~701yak06Zyr+4YbEb07#{2Y7nnmDn~cr^-2w%@!pwuZ8dJzNg+7Fecg> z=xT8n?C6eCRf$J5Zt%pQhs0c)@a9KC?TiLDwN+CC1LFE>Z?rE@EtnWDR+i%zi!y8n z^won*f<6GST$+FP2mhUYTWAGq+SiP5{!)Z~QX$1~=hIhIzR;;I?39rYE%gP^vzp{P z7N-HE;CX+Sf=8=oK37?$vT8nuFEBA4ZX8SB81n#Kx)1k2yI+B3(w6!Em48qGgTgY- k_OBYO_Jbo8Z4^z;Ni)t`_0Z7J-Uk2smiXOb@T1}X18vpS$^ZZW diff --git a/doc/_sources/about/index_en.rst.txt b/doc/_sources/about/index_en.rst.txt deleted file mode 100644 index 065c430cdea..00000000000 --- a/doc/_sources/about/index_en.rst.txt +++ /dev/null @@ -1,14 +0,0 @@ -ABOUT -======= - -PaddlPaddle is an easy-to-use, efficient, flexible and scalable deep learning platform, -which is originally developed by Baidu scientists and engineers for the purpose of applying deep learning to many products at Baidu. - -PaddlePaddle is now open source but far from complete, which is intended to be built upon, improved, scaled, and extended. -We hope to build an active open source community both by providing feedback and by actively contributing to the source code. - - -Credits --------- - -We owe many thanks to `all contributors and developers `_ of PaddlePaddle! diff --git a/doc/_sources/api/index_en.rst.txt b/doc/_sources/api/index_en.rst.txt index 25c1dd00b9c..e6f632e1a5b 100644 --- a/doc/_sources/api/index_en.rst.txt +++ b/doc/_sources/api/index_en.rst.txt @@ -7,3 +7,4 @@ API v2/model_configs.rst v2/data.rst v2/run_logic.rst + v2/fluid.rst diff --git a/doc/_sources/api/v1/trainer_config_helpers/activations.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/activations.rst.txt deleted file mode 100644 index 269e6491e7e..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/activations.rst.txt +++ /dev/null @@ -1,108 +0,0 @@ -=========== -Activations -=========== - -BaseActivation -============== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: BaseActivation - :noindex: - -AbsActivation -=============== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: AbsActivation - :noindex: - -ExpActivation -=============== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: ExpActivation - :noindex: - -IdentityActivation -================== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: IdentityActivation - :noindex: - -LinearActivation -================== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: LinearActivation - :noindex: - -LogActivation -================== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: LogActivation - :noindex: - -SquareActivation -================ - -.. automodule:: paddle.trainer_config_helpers.activations - :members: SquareActivation - :noindex: - -SigmoidActivation -================= - -.. automodule:: paddle.trainer_config_helpers.activations - :members: SigmoidActivation - :noindex: - -SoftmaxActivation -================= - -.. automodule:: paddle.trainer_config_helpers.activations - :members: SoftmaxActivation - :noindex: - -SequenceSoftmaxActivation -========================= - -.. automodule:: paddle.trainer_config_helpers.activations - :members: SequenceSoftmaxActivation - :noindex: - -ReluActivation -============== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: ReluActivation - :noindex: - -BReluActivation -=============== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: BReluActivation - :noindex: - -SoftReluActivation -================== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: SoftReluActivation - :noindex: - -TanhActivation -============== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: TanhActivation - :noindex: - -STanhActivation -=============== - -.. automodule:: paddle.trainer_config_helpers.activations - :members: STanhActivation - :noindex: diff --git a/doc/_sources/api/v1/trainer_config_helpers/attrs.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/attrs.rst.txt deleted file mode 100644 index ac63127bf7d..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/attrs.rst.txt +++ /dev/null @@ -1,5 +0,0 @@ -Parameter Attributes -======================= - -.. automodule:: paddle.trainer_config_helpers.attrs - :members: diff --git a/doc/_sources/api/v1/trainer_config_helpers/data_sources.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/data_sources.rst.txt deleted file mode 100644 index b9dd4dda01a..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/data_sources.rst.txt +++ /dev/null @@ -1,7 +0,0 @@ -.. _api_trainer_config_helpers_data_sources: - -DataSources -=========== - -.. automodule:: paddle.trainer_config_helpers.data_sources - :members: diff --git a/doc/_sources/api/v1/trainer_config_helpers/evaluators.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/evaluators.rst.txt deleted file mode 100644 index 11dc7351642..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/evaluators.rst.txt +++ /dev/null @@ -1,108 +0,0 @@ -.. _api_trainer_config_helpers_evaluators: - -========== -Evaluators -========== - -Base -==== -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: evaluator_base - :noindex: - -Classification -============== - -classification_error_evaluator ------------------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: classification_error_evaluator - :noindex: - -auc_evaluator -------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: auc_evaluator - :noindex: - -ctc_error_evaluator -------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: ctc_error_evaluator - :noindex: - -chunk_evaluator ---------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: chunk_evaluator - :noindex: - -precision_recall_evaluator --------------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: precision_recall_evaluator - :noindex: - -Rank -==== - -pnpair_evaluator ----------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: pnpair_evaluator - :noindex: - -Utils -===== - -sum_evaluator -------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: sum_evaluator - :noindex: - -column_sum_evaluator --------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: column_sum_evaluator - :noindex: - -Print -===== - -classification_error_printer_evaluator --------------------------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: classification_error_printer_evaluator - :noindex: - -gradient_printer_evaluator --------------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: gradient_printer_evaluator - :noindex: - -maxid_printer_evaluator ------------------------ -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: maxid_printer_evaluator - :noindex: - -maxframe_printer_evaluator ---------------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: maxframe_printer_evaluator - :noindex: - -seqtext_printer_evaluator -------------------------- -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: seqtext_printer_evaluator - :noindex: - -value_printer_evaluator ------------------------ -.. automodule:: paddle.trainer_config_helpers.evaluators - :members: value_printer_evaluator - :noindex: - diff --git a/doc/_sources/api/v1/trainer_config_helpers/layers.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/layers.rst.txt deleted file mode 100644 index 24389c2d857..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/layers.rst.txt +++ /dev/null @@ -1,508 +0,0 @@ -.. _api_trainer_config_helpers_layers: - -====== -Layers -====== - -Base -====== - -LayerType ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: LayerType - :noindex: - -LayerOutput ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: LayerOutput - :noindex: - -Data layer -=========== - -.. _api_trainer_config_helpers_layers_data_layer: - -data_layer ----------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: data_layer - :noindex: - -Fully Connected Layers -====================== - -.. _api_trainer_config_helpers_layers_fc_layer: - -fc_layer --------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: fc_layer - :noindex: - -selective_fc_layer ------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: selective_fc_layer - :noindex: - -Conv Layers -=========== - -conv_operator -------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: conv_operator - :noindex: - -conv_projection ---------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: conv_projection - :noindex: - -conv_shift_layer ------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: conv_shift_layer - :noindex: - -img_conv_layer --------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: img_conv_layer - :noindex: - -.. _api_trainer_config_helpers_layers_context_projection: - -context_projection ------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: context_projection - :noindex: - -Image Pooling Layer -=================== - -img_pool_layer --------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: img_pool_layer - :noindex: - -spp_layer --------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: spp_layer - :noindex: - -maxout_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: maxout_layer - :noindex: - -Norm Layer -========== - -img_cmrnorm_layer ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: img_cmrnorm_layer - :noindex: - -batch_norm_layer ---------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: batch_norm_layer - :noindex: - -sum_to_one_norm_layer ---------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: sum_to_one_norm_layer - :noindex: - -Recurrent Layers -================ - -recurrent_layer ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: recurrent_layer - :noindex: - -lstmemory ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: lstmemory - :noindex: - -grumemory ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: grumemory - :noindex: - -Recurrent Layer Group -===================== - -memory ------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: memory - :noindex: - -recurrent_group ---------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: recurrent_group - :noindex: - -lstm_step_layer ---------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: lstm_step_layer - :noindex: - -gru_step_layer ---------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: gru_step_layer - :noindex: - -beam_search ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: beam_search - :noindex: - -get_output_layer ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: get_output_layer - :noindex: - -Mixed Layer -=========== - -.. _api_trainer_config_helpers_layers_mixed_layer: - -mixed_layer ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: mixed_layer - :noindex: - -.. _api_trainer_config_helpers_layers_embedding_layer: - -embedding_layer ---------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: embedding_layer - :noindex: - -scaling_projection ------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: scaling_projection - :noindex: - -dotmul_projection ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: dotmul_projection - :noindex: - -dotmul_operator ---------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: dotmul_operator - :noindex: - -full_matrix_projection ----------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: full_matrix_projection - :noindex: - -identity_projection -------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: identity_projection - :noindex: - - -table_projection ----------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: table_projection - :noindex: - -trans_full_matrix_projection ----------------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: trans_full_matrix_projection - :noindex: - -Aggregate Layers -================ - -.. _api_trainer_config_helpers_layers_pooling_layer: - -pooling_layer -------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: pooling_layer - :noindex: - -.. _api_trainer_config_helpers_layers_last_seq: - -last_seq --------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: last_seq - :noindex: - -.. _api_trainer_config_helpers_layers_first_seq: - -first_seq ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: first_seq - :noindex: - -concat_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: concat_layer - :noindex: - -seq_concat_layer ----------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: seq_concat_layer - :noindex: - -Reshaping Layers -================ - -block_expand_layer ------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: block_expand_layer - :noindex: - -.. _api_trainer_config_helpers_layers_expand_layer: - -expand_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: expand_layer - :noindex: - -repeat_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: repeat_layer - :noindex: - -rotate_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: rotate_layer - :noindex: - -seq_reshape_layer ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: seq_reshape_layer - :noindex: - -Math Layers -=========== - -addto_layer ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: addto_layer - :noindex: - -linear_comb_layer ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: linear_comb_layer - :noindex: - -interpolation_layer -------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: interpolation_layer - :noindex: - -bilinear_interp_layer ----------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: bilinear_interp_layer - :noindex: - -power_layer ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: power_layer - :noindex: - -scaling_layer -------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: scaling_layer - :noindex: - -slope_intercept_layer ----------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: slope_intercept_layer - :noindex: - -tensor_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: tensor_layer - :noindex: - -.. _api_trainer_config_helpers_layers_cos_sim: - -cos_sim -------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: cos_sim - :noindex: - -trans_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: trans_layer - :noindex: - -Sampling Layers -=============== - -maxid_layer ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: maxid_layer - :noindex: - -sampling_id_layer ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: sampling_id_layer - :noindex: - -Slicing and Joining Layers -========================== - -pad_layer ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: pad_layer - :noindex: - -.. _api_trainer_config_helpers_layers_cost_layers: - -Cost Layers -=========== - -cross_entropy -------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: cross_entropy - :noindex: - -cross_entropy_with_selfnorm ---------------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: cross_entropy_with_selfnorm - :noindex: - -multi_binary_label_cross_entropy --------------------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: multi_binary_label_cross_entropy - :noindex: - -mse_cost ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: mse_cost - :noindex: - -huber_cost ----------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: huber_cost - :noindex: - -lambda_cost ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: lambda_cost - :noindex: - -rank_cost ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: rank_cost - :noindex: - -sum_cost ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: sum_cost - :noindex: - -crf_layer ------------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: crf_layer - :noindex: - -crf_decoding_layer -------------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: crf_decoding_layer - :noindex: - -ctc_layer ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: ctc_layer - :noindex: - -warp_ctc_layer --------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: warp_ctc_layer - :noindex: - -nce_layer ------------ -.. automodule:: paddle.trainer_config_helpers.layers - :members: nce_layer - :noindex: - -hsigmoid ---------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: hsigmoid - :noindex: - -Check Layer -============ - -eos_layer ------------- -.. automodule:: paddle.trainer_config_helpers.layers - :members: eos_layer - :noindex: diff --git a/doc/_sources/api/v1/trainer_config_helpers/networks.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/networks.rst.txt deleted file mode 100644 index edb53acbf0c..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/networks.rst.txt +++ /dev/null @@ -1,123 +0,0 @@ -======== -Networks -======== - -The networks module contains pieces of neural network that combine multiple layers. - -NLP -=== - -sequence_conv_pool ------------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: sequence_conv_pool - :noindex: - -.. _api_trainer_config_helpers_network_text_conv_pool: - -text_conv_pool --------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: text_conv_pool - :noindex: - -Images -====== - -img_conv_bn_pool ----------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: img_conv_bn_pool - :noindex: - -img_conv_group --------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: img_conv_group - :noindex: - -.. _api_trainer_config_helpers_network_simple_img_conv_pool: - -simple_img_conv_pool --------------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: simple_img_conv_pool - :noindex: - -vgg_16_network ---------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: vgg_16_network - :noindex: - -Recurrent -========= - -LSTM ----- - -lstmemory_unit -`````````````` -.. automodule:: paddle.trainer_config_helpers.networks - :members: lstmemory_unit - :noindex: - -lstmemory_group -``````````````` -.. automodule:: paddle.trainer_config_helpers.networks - :members: lstmemory_group - :noindex: - -simple_lstm -``````````` -.. automodule:: paddle.trainer_config_helpers.networks - :members: simple_lstm - :noindex: - -bidirectional_lstm -`````````````````` -.. automodule:: paddle.trainer_config_helpers.networks - :members: bidirectional_lstm - :noindex: - -GRU ---- - -gru_unit -```````` -.. automodule:: paddle.trainer_config_helpers.networks - :members: gru_unit - :noindex: - -gru_group -````````` -.. automodule:: paddle.trainer_config_helpers.networks - :members: gru_group - :noindex: - -simple_gru -`````````` -.. automodule:: paddle.trainer_config_helpers.networks - :members: simple_gru - :noindex: - -simple_attention ----------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: simple_attention - :noindex: - -Miscs -===== - -dropout_layer --------------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: dropout_layer - :noindex: - -outputs -------- -.. automodule:: paddle.trainer_config_helpers.networks - :members: outputs - :noindex: diff --git a/doc/_sources/api/v1/trainer_config_helpers/optimizers.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/optimizers.rst.txt deleted file mode 100644 index d2f4958c92b..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/optimizers.rst.txt +++ /dev/null @@ -1,61 +0,0 @@ -.. _api_trainer_config_helpers_optimizers: - -========== -Optimizers -========== - -BaseSGDOptimizer -================ -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: BaseSGDOptimizer - :noindex: - -MomentumOptimizer -================= -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: MomentumOptimizer - :noindex: - -AdamOptimizer -============= -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: AdamOptimizer - :noindex: - -AdamaxOptimizer -================ -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: AdamaxOptimizer - :noindex: - -AdaGradOptimizer -================ -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: AdaGradOptimizer - :noindex: - -DecayedAdaGradOptimizer -======================= -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: DecayedAdaGradOptimizer - :noindex: - -AdaDeltaOptimizer -================= -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: AdaDeltaOptimizer - :noindex: - -RMSPropOptimizer -================ -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: RMSPropOptimizer - :noindex: - -.. _api_trainer_config_helpers_optimizers_settings: - -settings -======== -.. automodule:: paddle.trainer_config_helpers.optimizers - :members: settings - :noindex: diff --git a/doc/_sources/api/v1/trainer_config_helpers/poolings.rst.txt b/doc/_sources/api/v1/trainer_config_helpers/poolings.rst.txt deleted file mode 100644 index 66566809d26..00000000000 --- a/doc/_sources/api/v1/trainer_config_helpers/poolings.rst.txt +++ /dev/null @@ -1,33 +0,0 @@ -======== -Poolings -======== - -BasePoolingType -=============== -.. automodule:: paddle.trainer_config_helpers.poolings - :members: BasePoolingType - :noindex: - -AvgPooling -========== -.. automodule:: paddle.trainer_config_helpers.poolings - :members: AvgPooling - :noindex: - -MaxPooling -========== -.. automodule:: paddle.trainer_config_helpers.poolings - :members: MaxPooling - :noindex: - -SumPooling -========== -.. automodule:: paddle.trainer_config_helpers.poolings - :members: SumPooling - :noindex: - -SquareRootNPooling -================== -.. automodule:: paddle.trainer_config_helpers.poolings - :members: SquareRootNPooling - :noindex: diff --git a/doc/_sources/api/v2/config/activation.rst.txt b/doc/_sources/api/v2/config/activation.rst.txt index eca3ce03bcd..5317e66b64b 100644 --- a/doc/_sources/api/v2/config/activation.rst.txt +++ b/doc/_sources/api/v2/config/activation.rst.txt @@ -99,3 +99,10 @@ STanh .. automodule:: paddle.v2.activation :members: STanh :noindex: + +SoftSign +======== + +.. automodule:: paddle.v2.activation + :members: SoftSign + :noindex: diff --git a/doc/_sources/api/v2/config/evaluators.rst.txt b/doc/_sources/api/v2/config/evaluators.rst.txt new file mode 100644 index 00000000000..9ac972fb193 --- /dev/null +++ b/doc/_sources/api/v2/config/evaluators.rst.txt @@ -0,0 +1,110 @@ +.. _api_v2: + +========== +Evaluators +========== + +Classification +============== + +classification_error +-------------------- +.. automodule:: paddle.v2.evaluator + :members: classification_error + :noindex: + +auc +--- +.. automodule:: paddle.v2.evaluator + :members: auc + :noindex: + +ctc_error +--------- +.. automodule:: paddle.v2.evaluator + :members: ctc_error + :noindex: + +chunk +----- +.. automodule:: paddle.v2.evaluator + :members: chunk + :noindex: + +precision_recall +---------------- +.. automodule:: paddle.v2.evaluator + :members: precision_recall + :noindex: + +Rank +==== + +pnpair +------ +.. automodule:: paddle.v2.evaluator + :members: pnpair + :noindex: + +Utils +===== + +sum +--- +.. automodule:: paddle.v2.evaluator + :members: sum + :noindex: + +column_sum +---------- +.. automodule:: paddle.v2.evaluator + :members: column_sum + :noindex: + +Print +===== + +classification_error_printer +---------------------------- +.. automodule:: paddle.v2.evaluator + :members: classification_error_printer + :noindex: + +gradient_printer +---------------- +.. automodule:: paddle.v2.evaluator + :members: gradient_printer + :noindex: + +maxid_printer +------------- +.. automodule:: paddle.v2.evaluator + :members: maxid_printer + :noindex: + +maxframe_printer +---------------- +.. automodule:: paddle.v2.evaluator + :members: maxframe_printer + :noindex: + +seqtext_printer +--------------- +.. automodule:: paddle.v2.evaluator + :members: seqtext_printer + :noindex: + +value_printer +------------- +.. automodule:: paddle.v2.evaluator + :members: value_printer + :noindex: + +Detection +===== + +detection_map +------------- +.. automodule:: paddle.v2.evaluator + :members: detection_map + :noindex: diff --git a/doc/_sources/api/v2/config/layer.rst.txt b/doc/_sources/api/v2/config/layer.rst.txt index 2a02baf17ba..c3f9c18d066 100644 --- a/doc/_sources/api/v2/config/layer.rst.txt +++ b/doc/_sources/api/v2/config/layer.rst.txt @@ -54,18 +54,23 @@ img_conv .. _api_v2.layer_context_projection: -context_projection +context_projection ------------------ .. autoclass:: paddle.v2.layer.context_projection :noindex: +row_conv +-------- +.. autoclass:: paddle.v2.layer.row_conv + :noindex: + Image Pooling Layer =================== img_pool -------- .. autoclass:: paddle.v2.layer.img_pool - :noindex: + :noindex: spp --- @@ -77,6 +82,11 @@ maxout .. autoclass:: paddle.v2.layer.maxout :noindex: +roi_pool +-------- +.. autoclass:: paddle.v2.layer.roi_pool + :noindex: + Norm Layer ========== @@ -94,12 +104,17 @@ sum_to_one_norm --------------- .. autoclass:: paddle.v2.layer.sum_to_one_norm :noindex: - + cross_channel_norm ------------------ .. autoclass:: paddle.v2.layer.cross_channel_norm :noindex: - + +row_l2_norm +----------- +.. autoclass:: paddle.v2.layer.row_l2_norm + :noindex: + Recurrent Layers ================ @@ -130,7 +145,7 @@ recurrent_group --------------- .. autoclass:: paddle.v2.layer.recurrent_group :noindex: - + lstm_step --------- .. autoclass:: paddle.v2.layer.lstm_step @@ -145,12 +160,12 @@ beam_search ------------ .. autoclass:: paddle.v2.layer.beam_search :noindex: - + get_output ---------- .. autoclass:: paddle.v2.layer.get_output :noindex: - + Mixed Layer =========== @@ -193,6 +208,10 @@ identity_projection .. autoclass:: paddle.v2.layer.identity_projection :noindex: +slice_projection +------------------- +.. autoclass:: paddle.v2.layer.slice_projection + :noindex: table_projection ---------------- @@ -203,10 +222,15 @@ trans_full_matrix_projection ---------------------------- .. autoclass:: paddle.v2.layer.trans_full_matrix_projection :noindex: - + Aggregate Layers ================ +AggregateLevel +-------------- +.. autoclass:: paddle.v2.layer.AggregateLevel + :noindex: + .. _api_v2.layer_pooling: pooling @@ -238,6 +262,21 @@ seq_concat .. autoclass:: paddle.v2.layer.seq_concat :noindex: +seq_slice +--------- +.. autoclass:: paddle.v2.layer.seq_slice + :noindex: + +kmax_sequence_score +------------------- +.. autoclass:: paddle.v2.layer.kmax_sequence_score + :noindex: + +sub_nested_seq +-------------- +.. autoclass:: paddle.v2.layer.sub_nested_seq + :noindex: + Reshaping Layers ================ @@ -248,6 +287,11 @@ block_expand .. _api_v2.layer_expand: +ExpandLevel +----------- +.. autoclass:: paddle.v2.layer.ExpandLevel + :noindex: + expand ------ .. autoclass:: paddle.v2.layer.expand @@ -291,6 +335,16 @@ bilinear_interp .. autoclass:: paddle.v2.layer.bilinear_interp :noindex: +dot_prod +--------- +.. autoclass:: paddle.v2.layer.dot_prod + :noindex: + +out_prod +-------- +.. autoclass:: paddle.v2.layer.out_prod + :noindex: + power ----- .. autoclass:: paddle.v2.layer.power @@ -301,6 +355,16 @@ scaling .. autoclass:: paddle.v2.layer.scaling :noindex: +clip +---- +.. autoclass:: paddle.v2.layer.clip + :noindex: + +resize +------ +.. autoclass:: paddle.v2.layer.resize + :noindex: + slope_intercept --------------- .. autoclass:: paddle.v2.layer.slope_intercept @@ -318,11 +382,21 @@ cos_sim .. autoclass:: paddle.v2.layer.cos_sim :noindex: +l2_distance +----------- +.. autoclass:: paddle.v2.layer.l2_distance + :noindex: + trans ----- .. autoclass:: paddle.v2.layer.trans :noindex: +scale_shift +----------- +.. autoclass:: paddle.v2.layer.scale_shift + :noindex: + Sampling Layers =============== @@ -336,6 +410,19 @@ sampling_id .. autoclass:: paddle.v2.layer.sampling_id :noindex: +multiplex +--------- +.. autoclass:: paddle.v2.layer.multiplex + :noindex: + +Factorization Machine Layer +============================ + +factorization_machine +--------------------- +.. autoclass:: paddle.v2.layer.factorization_machine + :noindex: + Slicing and Joining Layers ========================== @@ -364,9 +451,14 @@ multi_binary_label_cross_entropy_cost .. autoclass:: paddle.v2.layer.multi_binary_label_cross_entropy_cost :noindex: -huber_cost ----------- -.. autoclass:: paddle.v2.layer.huber_cost +huber_regression_cost +------------------------- +.. autoclass:: paddle.v2.layer.huber_regression_cost + :noindex: + +huber_classification_cost +------------------------- +.. autoclass:: paddle.v2.layer.huber_classification_cost :noindex: lambda_cost @@ -374,9 +466,9 @@ lambda_cost .. autoclass:: paddle.v2.layer.lambda_cost :noindex: -mse_cost +square_error_cost -------- -.. autoclass:: paddle.v2.layer.mse_cost +.. autoclass:: paddle.v2.layer.square_error_cost :noindex: rank_cost @@ -419,10 +511,49 @@ hsigmoid .. autoclass:: paddle.v2.layer.hsigmoid :noindex: -Check Layer +smooth_l1_cost +-------------- +.. autoclass:: paddle.v2.layer.smooth_l1_cost + :noindex: + +multibox_loss +-------------- +.. autoclass:: paddle.v2.layer.multibox_loss + :noindex: + +Check Layer ============ eos --- .. autoclass:: paddle.v2.layer.eos :noindex: + +Miscs +===== + +dropout +-------------- +.. autoclass:: paddle.v2.layer.dropout + :noindex: + +Activation with learnable parameter +=================================== + +prelu +-------- +.. autoclass:: paddle.v2.layer.prelu + :noindex: + +gated_unit +----------- +.. autoclass:: paddle.v2.layer.gated_unit + :noindex: + +Detection output Layer +====================== + +detection_output +---------------- +.. autoclass:: paddle.v2.layer.detection_output + :noindex: diff --git a/doc/_sources/api/v2/config/networks.rst.txt b/doc/_sources/api/v2/config/networks.rst.txt index 6f209bc95be..048379cf01f 100644 --- a/doc/_sources/api/v2/config/networks.rst.txt +++ b/doc/_sources/api/v2/config/networks.rst.txt @@ -44,6 +44,12 @@ simple_img_conv_pool :members: simple_img_conv_pool :noindex: +small_vgg +--------- +.. automodule:: paddle.v2.networks + :members: small_vgg + :noindex: + vgg_16_network --------------- .. automodule:: paddle.v2.networks @@ -101,17 +107,26 @@ simple_gru :members: simple_gru :noindex: +simple_gru2 +``````````` +.. automodule:: paddle.v2.networks + :members: simple_gru2 + :noindex: + +bidirectional_gru +`````````````````` +.. automodule:: paddle.v2.networks + :members: bidirectional_gru + :noindex: + simple_attention ---------------- .. automodule:: paddle.v2.networks :members: simple_attention :noindex: -Miscs -===== - -dropout_layer --------------- +dot_product_attention +--------------------- .. automodule:: paddle.v2.networks - :members: dropout_layer + :members: dot_product_attention :noindex: diff --git a/doc/_sources/api/v2/data.rst.txt b/doc/_sources/api/v2/data.rst.txt index fef87c4fbdb..b56c7332cc2 100644 --- a/doc/_sources/api/v2/data.rst.txt +++ b/doc/_sources/api/v2/data.rst.txt @@ -2,112 +2,9 @@ Data Reader Interface and DataSets ================================== +.. toctree:: + :maxdepth: 1 -DataTypes -========= - -.. automodule:: paddle.v2.data_type - :members: - :noindex: - -DataFeeder -========== - -.. automodule:: paddle.v2.data_feeder - :members: - :noindex: - -Reader -====== - -.. automodule:: paddle.v2.reader - :members: - :noindex: - -.. automodule:: paddle.v2.reader.creator - :members: - :noindex: - -minibatch -========= - -.. automodule:: paddle.v2.minibatch - :members: - :noindex: - -Dataset -======= - -.. automodule:: paddle.v2.dataset - :members: - :noindex: - -mnist -+++++ - -.. automodule:: paddle.v2.dataset.mnist - :members: - :noindex: - -cifar -+++++ - -.. automodule:: paddle.v2.dataset.cifar - :members: - :noindex: - -conll05 -+++++++ - -.. automodule:: paddle.v2.dataset.conll05 - :members: get_dict,get_embedding,test - :noindex: - -imdb -++++ - -.. automodule:: paddle.v2.dataset.imdb - :members: - :noindex: - -imikolov -++++++++ - -.. automodule:: paddle.v2.dataset.imikolov - :members: - :noindex: - -movielens -+++++++++ - -.. automodule:: paddle.v2.dataset.movielens - :members: - :noindex: - -.. autoclass:: paddle.v2.dataset.movielens.MovieInfo - :noindex: - -.. autoclass:: paddle.v2.dataset.movielens.UserInfo - :noindex: - -sentiment -+++++++++ - -.. automodule:: paddle.v2.dataset.sentiment - :members: - :noindex: - -uci_housing -+++++++++++ - -.. automodule:: paddle.v2.dataset.uci_housing - :members: - :noindex: - -wmt14 -+++++ - -.. automodule:: paddle.v2.dataset.wmt14 - :members: - :noindex: - + data/data_reader.rst + data/image.rst + data/dataset.rst diff --git a/doc/_sources/api/v2/data/data_reader.rst.txt b/doc/_sources/api/v2/data/data_reader.rst.txt new file mode 100644 index 00000000000..2ccfec9c284 --- /dev/null +++ b/doc/_sources/api/v2/data/data_reader.rst.txt @@ -0,0 +1,36 @@ +===================== +Data Reader Interface +===================== + + +DataTypes +========= + +.. automodule:: paddle.v2.data_type + :members: + :noindex: + +DataFeeder +========== + +.. automodule:: paddle.v2.data_feeder + :members: + :noindex: + +Reader +====== + +.. automodule:: paddle.v2.reader + :members: + :noindex: + +.. automodule:: paddle.v2.reader.creator + :members: + :noindex: + +minibatch +========= + +.. automodule:: paddle.v2.minibatch + :members: + :noindex: diff --git a/doc/_sources/api/v2/data/dataset.rst.txt b/doc/_sources/api/v2/data/dataset.rst.txt new file mode 100644 index 00000000000..6a8ecc5bb1d --- /dev/null +++ b/doc/_sources/api/v2/data/dataset.rst.txt @@ -0,0 +1,75 @@ +Dataset +======= + +.. automodule:: paddle.v2.dataset + :members: + :noindex: + +mnist ++++++ + +.. automodule:: paddle.v2.dataset.mnist + :members: + :noindex: + +cifar ++++++ + +.. automodule:: paddle.v2.dataset.cifar + :members: + :noindex: + +conll05 ++++++++ + +.. automodule:: paddle.v2.dataset.conll05 + :members: get_dict,get_embedding,test + :noindex: + +imdb +++++ + +.. automodule:: paddle.v2.dataset.imdb + :members: + :noindex: + +imikolov +++++++++ + +.. automodule:: paddle.v2.dataset.imikolov + :members: + :noindex: + +movielens ++++++++++ + +.. automodule:: paddle.v2.dataset.movielens + :members: + :noindex: + +.. autoclass:: paddle.v2.dataset.movielens.MovieInfo + :noindex: + +.. autoclass:: paddle.v2.dataset.movielens.UserInfo + :noindex: + +sentiment ++++++++++ + +.. automodule:: paddle.v2.dataset.sentiment + :members: + :noindex: + +uci_housing ++++++++++++ + +.. automodule:: paddle.v2.dataset.uci_housing + :members: + :noindex: + +wmt14 ++++++ + +.. automodule:: paddle.v2.dataset.wmt14 + :members: + :noindex: diff --git a/doc/_sources/api/v2/data/image.rst.txt b/doc/_sources/api/v2/data/image.rst.txt new file mode 100644 index 00000000000..97651ffa6be --- /dev/null +++ b/doc/_sources/api/v2/data/image.rst.txt @@ -0,0 +1,5 @@ +Image Interface +=============== + +.. automodule:: paddle.v2.image + :members: diff --git a/doc/_sources/api/v2/fluid.rst.txt b/doc/_sources/api/v2/fluid.rst.txt new file mode 100644 index 00000000000..43fc19dc492 --- /dev/null +++ b/doc/_sources/api/v2/fluid.rst.txt @@ -0,0 +1,18 @@ +====================== +Fluid +====================== + +.. toctree:: + :maxdepth: 1 + + fluid/layers.rst + fluid/data_feeder.rst + fluid/executor.rst + fluid/initializer.rst + fluid/evaluator.rst + fluid/nets.rst + fluid/optimizer.rst + fluid/param_attr.rst + fluid/profiler.rst + fluid/regularizer.rst + diff --git a/doc/_sources/api/v2/fluid/data_feeder.rst.txt b/doc/_sources/api/v2/fluid/data_feeder.rst.txt new file mode 100644 index 00000000000..0fa78f7dfb0 --- /dev/null +++ b/doc/_sources/api/v2/fluid/data_feeder.rst.txt @@ -0,0 +1,9 @@ +=========== +DataFeeder +=========== + +DataFeeder +----------- +.. automodule:: paddle.v2.fluid.data_feeder + :members: DataFeeder + :noindex: diff --git a/doc/_sources/api/v2/fluid/evaluator.rst.txt b/doc/_sources/api/v2/fluid/evaluator.rst.txt new file mode 100644 index 00000000000..a23f3301d03 --- /dev/null +++ b/doc/_sources/api/v2/fluid/evaluator.rst.txt @@ -0,0 +1,9 @@ +=========== +Evaluator +=========== + +Evaluator +----------- +.. automodule:: paddle.v2.fluid.evaluator + :members: Evaluator + :noindex: diff --git a/doc/_sources/api/v2/fluid/executor.rst.txt b/doc/_sources/api/v2/fluid/executor.rst.txt new file mode 100644 index 00000000000..3a283538c12 --- /dev/null +++ b/doc/_sources/api/v2/fluid/executor.rst.txt @@ -0,0 +1,9 @@ +=========== +Executor +=========== + +Executor +----------- +.. automodule:: paddle.v2.fluid.executor + :members: Executor + :noindex: diff --git a/doc/_sources/api/v2/fluid/initializer.rst.txt b/doc/_sources/api/v2/fluid/initializer.rst.txt new file mode 100644 index 00000000000..8f587837e98 --- /dev/null +++ b/doc/_sources/api/v2/fluid/initializer.rst.txt @@ -0,0 +1,50 @@ +=========== +Initializer +=========== + + + +Initializer +----------- +.. automodule:: paddle.v2.fluid.initializer + :members: Initializer + :noindex: + + + +ConstantInitializer +------------------- +.. automodule:: paddle.v2.fluid.initializer + :members: ConstantInitializer + :noindex: + + + +UniformInitializer +------------------ +.. automodule:: paddle.v2.fluid.initializer + :members: UniformInitializer + :noindex: + + + +NormalInitializer +----------------- +.. automodule:: paddle.v2.fluid.initializer + :members: NormalInitializer + :noindex: + + +XavierInitializer +----------------- +.. automodule:: paddle.v2.fluid.initializer + :members: XavierInitializer + :noindex: + + +MSRAInitializer +--------------- +.. automodule:: paddle.v2.fluid.initializer + :members: MSRAInitializer + :noindex: + diff --git a/doc/_sources/api/v2/fluid/layers.rst.txt b/doc/_sources/api/v2/fluid/layers.rst.txt new file mode 100644 index 00000000000..89e5fec13bf --- /dev/null +++ b/doc/_sources/api/v2/fluid/layers.rst.txt @@ -0,0 +1,302 @@ +========== +Layers +========== + + +fc +--- +.. autofunction:: paddle.v2.fluid.layers.fc + :noindex: + +embedding +--------- +.. autofunction:: paddle.v2.fluid.layers.embedding + :noindex: + +dynamic_lstm +------------ +.. autofunction:: paddle.v2.fluid.layers.dynamic_lstm + :noindex: + +data +--------- +.. autofunction:: paddle.v2.fluid.layers.data + :noindex: + +mean +--------- +.. autofunction:: paddle.v2.fluid.layers.mean + :noindex: + +mul +--------- +.. autofunction:: paddle.v2.fluid.layers.mul + :noindex: + +elementwise_add +--------------- +.. autofunction:: paddle.v2.fluid.layers.elementwise_add + :noindex: + +elementwise_div +--------------- +.. autofunction:: paddle.v2.fluid.layers.elementwise_div + :noindex: + + +dropout +--------- +.. autofunction:: paddle.v2.fluid.layers.dropout + :noindex: + + +reshape +--------- +.. autofunction:: paddle.v2.fluid.layers.reshape + :noindex: + + +sigmoid +--------- +.. autofunction:: paddle.v2.fluid.layers.sigmoid + :noindex: + + +scale +--------- +.. autofunction:: paddle.v2.fluid.layers.scale + :noindex: + + +reshape +--------- +.. autofunction:: paddle.v2.fluid.layers.reshape + :noindex: + + +transpose +--------- +.. autofunction:: paddle.v2.fluid.layers.transpose + :noindex: + + +sigmoid_cross_entropy_with_logits +--------- +.. autofunction:: paddle.v2.fluid.layers.esigmoid_cross_entropy_with_logits + :noindex: + + +cast +--------- +.. autofunction:: paddle.v2.fluid.layers.cast + :noindex: + + +concat +--------- +.. autofunction:: paddle.v2.fluid.layers.concat + :noindex: + + +sums +--------- +.. autofunction:: paddle.v2.fluid.layers.sums + :noindex: + + +linear_chain_crf +--------- +.. autofunction:: paddle.v2.fluid.layers.linear_chain_crf + :noindex: + + +assign +--------- +.. autofunction:: paddle.v2.fluid.layers.embedding + :noindex: + + +split_lod_tensor +--------- +.. autofunction:: paddle.v2.fluid.layers.split_lod_tensor + :noindex: + + +merge_lod_tensor +--------- +.. autofunction:: paddle.v2.fluid.layers.merge_lod_tensor + :noindex: + +cos_sim +--------- +.. autofunction:: paddle.v2.fluid.layers.cos_sim + :noindex: + + +cross_entropy +--------- +.. autofunction:: paddle.v2.fluid.layers.cross_entropy + :noindex: + + + +square_error_cost +--------- +.. autofunction:: paddle.v2.fluid.layers.square_error_cost + :noindex: + + +accuracy +--------- +.. autofunction:: paddle.v2.fluid.layers.accuracy + :noindex: + + +sequence_conv +--------- +.. autofunction:: paddle.v2.fluid.layers.sequence_conv + :noindex: + + +conv2d +--------- +.. autofunction:: paddle.v2.fluid.layers.conv2d + :noindex: + + +sequence_pool +--------- +.. autofunction:: paddle.v2.fluid.layers.sequence_pool + :noindex: + + +pool2d +--------- +.. autofunction:: paddle.v2.fluid.layers.pool2d + :noindex: + + +batch_norm +--------- +.. autofunction:: paddle.v2.fluid.layers.batch_norm + :noindex: + + +beam_search_decode +--------- +.. autofunction:: paddle.v2.fluid.layers.beam_search_decode + :noindex: + + +lstm +--------- +.. autofunction:: paddle.v2.fluid.layers.lstm + :noindex: + + +lod_rank_table +--------- +.. autofunction:: paddle.v2.fluid.layers.lod_rank_table + :noindex: + + +max_sequence_len +--------- +.. autofunction:: paddle.v2.fluid.layers.max_sequence_len + :noindex: + + +topk +--------- +.. autofunction:: paddle.v2.fluid.layers.topk + :noindex: + + +lod_tensor_to_array +--------- +.. autofunction:: paddle.v2.fluid.layers.lod_tensor_to_array + :noindex: + + + +array_to_lod_tensor +--------- +.. autofunction:: paddle.v2.fluid.layers.array_to_lod_tensor + :noindex: + + + + +fill_constant +--------- +.. autofunction:: paddle.v2.fluid.layers.fill_constant + :noindex: + + + +fill_constant_batch_size_like +--------- +.. autofunction:: paddle.v2.fluid.layers.fill_constant_batch_size_like + :noindex: + + +ones +--------- +.. autofunction:: paddle.v2.fluid.layers.ones + :noindex: + + +zeros +--------- +.. autofunction:: paddle.v2.fluid.layers.zeros + :noindex: + + +increment +--------- +.. autofunction:: paddle.v2.fluid.layers.increment + :noindex: + + +array_write +--------- +.. autofunction:: paddle.v2.fluid.layers.array_write + :noindex: + + + +create_array +--------- +.. autofunction:: paddle.v2.fluid.layers.create_array + :noindex: + + +less_than +--------- +.. autofunction:: paddle.v2.fluid.layers.less_than + :noindex: + + +array_read +--------- +.. autofunction:: paddle.v2.fluid.layers.array_read + :noindex: + + +shrink_memory +--------- +.. autofunction:: paddle.v2.fluid.layers.shrink_memory + :noindex: + + +array_length +--------- +.. autofunction:: paddle.v2.fluid.layers.array_length + :noindex: + + +conv2d_transpose +--------- +.. autofunction:: paddle.v2.fluid.layers.conv2d_transpose + :noindex: + diff --git a/doc/_sources/api/v2/fluid/nets.rst.txt b/doc/_sources/api/v2/fluid/nets.rst.txt new file mode 100644 index 00000000000..2c3d075422d --- /dev/null +++ b/doc/_sources/api/v2/fluid/nets.rst.txt @@ -0,0 +1,22 @@ +=========== +Nets +=========== + +simple_img_conv_pool +----------- +.. autofunction:: paddle.v2.fluid.nets.simple_img_conv_pool + :noindex: + + +img_conv_group +----------- +.. autofunction:: paddle.v2.fluid.nets.img_conv_group + :noindex: + + +sequence_conv_pool +----------- +.. autofunction:: paddle.v2.fluid.nets.sequence_conv_pool + :noindex: + + diff --git a/doc/_sources/api/v2/fluid/optimizer.rst.txt b/doc/_sources/api/v2/fluid/optimizer.rst.txt new file mode 100644 index 00000000000..233762fcdfb --- /dev/null +++ b/doc/_sources/api/v2/fluid/optimizer.rst.txt @@ -0,0 +1,54 @@ +=========== +Optimizer +=========== + +Optimizer +----------- +.. automodule:: paddle.v2.fluid.optimizer + :members: Optimizer + :noindex: + + +SGDOptimizer +----------- +.. automodule:: paddle.v2.fluid.optimizer + :members: SGDOptimizer + :noindex: + + + +MomentumOptimizer +----------- +.. automodule:: paddle.v2.fluid.optimizer + :members: MomentumOptimizer + :noindex: + + + +AdagradOptimizer +----------- +.. automodule:: paddle.v2.fluid.optimizer + :members: AdagradOptimizer + :noindex: + + +AdamOptimizer +----------- +.. automodule:: paddle.v2.fluid.optimizer + :members: AdamOptimizer + :noindex: + + +AdamaxOptimizer +----------- +.. automodule:: paddle.v2.fluid.optimizer + :members: AdamaxOptimizer + :noindex: + + +DecayedAdagradOptimizer +----------- +.. automodule:: paddle.v2.fluid.optimizer + :members: DecayedAdagradOptimizer + :noindex: + diff --git a/doc/_sources/api/v2/fluid/param_attr.rst.txt b/doc/_sources/api/v2/fluid/param_attr.rst.txt new file mode 100644 index 00000000000..ca0c8af9e8c --- /dev/null +++ b/doc/_sources/api/v2/fluid/param_attr.rst.txt @@ -0,0 +1,11 @@ +=========== +ParamAttr +=========== + + + +ParamAttr +----------- +.. automodule:: paddle.v2.fluid.param_attr + :members: ParamAttr + :noindex: diff --git a/doc/_sources/api/v2/fluid/profiler.rst.txt b/doc/_sources/api/v2/fluid/profiler.rst.txt new file mode 100644 index 00000000000..7d4042d1f41 --- /dev/null +++ b/doc/_sources/api/v2/fluid/profiler.rst.txt @@ -0,0 +1,10 @@ +=========== +Profiler +=========== + + + +Profiler +----------- +.. autofunction:: paddle.v2.fluid.profiler.cuda_profiler + :noindex: diff --git a/doc/_sources/api/v2/fluid/regularizer.rst.txt b/doc/_sources/api/v2/fluid/regularizer.rst.txt new file mode 100644 index 00000000000..3af2b07d2ae --- /dev/null +++ b/doc/_sources/api/v2/fluid/regularizer.rst.txt @@ -0,0 +1,25 @@ +=========== +Regularizer +=========== + +WeightDecayRegularizer +----------- +.. automodule:: paddle.v2.fluid.regularizer + :members: WeightDecayRegularizer + :noindex: + + +L2DecayRegularizer +----------- +.. automodule:: paddle.v2.fluid.regularizer + :members: L2DecayRegularizer + :noindex: + + + +L1DecayRegularizer +----------- +.. automodule:: paddle.v2.fluid.regularizer + :members: L1DecayRegularizer + + diff --git a/doc/_sources/api/v2/model_configs.rst.txt b/doc/_sources/api/v2/model_configs.rst.txt index a5fae7e29e5..992b559cbd8 100644 --- a/doc/_sources/api/v2/model_configs.rst.txt +++ b/doc/_sources/api/v2/model_configs.rst.txt @@ -6,6 +6,7 @@ Model Configuration config/activation.rst config/layer.rst + config/evaluators.rst config/optimizer.rst config/pooling.rst config/networks.rst diff --git a/doc/_sources/design/api.md.txt b/doc/_sources/design/api.md.txt index 8185d2af0ea..e6a4638d910 100644 --- a/doc/_sources/design/api.md.txt +++ b/doc/_sources/design/api.md.txt @@ -3,7 +3,7 @@ ## Ingredients As our design principle is starting from the essence: how could we -allow users to express and solve their problems at neural networks. +allow users to express and solve their problems as neural networks. Some essential concepts that our API have to provide include: 1. A *topology* is an expression of *layers*. @@ -233,7 +233,7 @@ paddle.dist_train(model, num_parameter_servers=15) ``` -The pseudo code if `paddle.dist_train` is as follows: +The pseudo code of `paddle.dist_train` is as follows: ```python def dist_train(topology, parameters, trainer, reader, ...): diff --git a/doc/_sources/design/auto_gradient_check.md.txt b/doc/_sources/design/auto_gradient_check.md.txt new file mode 100644 index 00000000000..f9991541bc5 --- /dev/null +++ b/doc/_sources/design/auto_gradient_check.md.txt @@ -0,0 +1,146 @@ +## Auto Gradient Checker Design + +## Backgraound: +- Generally, it is easy to check whether the forward computation of an Operator is correct or not. However, backpropagation is a notoriously difficult algorithm to debug and get right: + 1. you should get the right backpropagation formula according to the forward computation. + 2. you should implement it right in CPP. + 3. it's difficult to prepare test data. + +- Auto gradient checking gets a numerical gradient by forward Operator and use it as a reference of the backward Operator's result. It has several advantages: + 1. numerical gradient checker only need forward operator. + 2. user only need to prepare the input data for forward Operator. + +## Mathematical Theory +The following two document from Stanford has a detailed explanation of how to get numerical gradient and why it's useful. + +- [Gradient checking and advanced optimization(en)](http://deeplearning.stanford.edu/wiki/index.php/Gradient_checking_and_advanced_optimization) +- [Gradient checking and advanced optimization(cn)](http://ufldl.stanford.edu/wiki/index.php/%E6%A2%AF%E5%BA%A6%E6%A3%80%E9%AA%8C%E4%B8%8E%E9%AB%98%E7%BA%A7%E4%BC%98%E5%8C%96) + + +## Numeric Gradient Implementation +### Python Interface +```python +def get_numerical_gradient(op, + input_values, + output_name, + input_to_check, + delta=0.005, + local_scope=None): + """ + Get Numeric Gradient for an operator's input. + + :param op: C++ operator instance, could be an network + :param input_values: The input variables. Should be an dictionary, whose key is + variable name, and value is numpy array. + :param output_name: The final output variable name. + :param input_to_check: The input variable with respect to which to compute the gradient. + :param delta: The perturbation value for numeric gradient method. The + smaller delta is, the more accurate result will get. But if that delta is + too small, it will suffer from numerical stability problem. + :param local_scope: The local scope used for get_numeric_gradient. + :return: The gradient array in numpy format. + """ +``` + +### Explaination: + +- Why need `output_name` + - An Operator may have multiple Output, one can get independent gradient from each Output. So caller should specify the name of the output variable. + +- Why need `input_to_check` + - One operator may have multiple inputs. Gradient Op can calculate the gradient of these inputs at the same time. But Numeric Gradient needs to calculate them one by one. So `get_numeric_gradient` is designed to calculate the gradient for one input. If you need to compute multiple inputs, you can call `get_numeric_gradient` multiple times. + + +### Core Algorithm Implementation + + +```python + # we only compute gradient of one element a time. + # we use a for loop to compute the gradient of each element. + for i in xrange(tensor_size): + # get one input element by its index i. + origin = tensor_to_check.get_float_element(i) + + # add delta to it, run op and then get the new value of the result tensor. + x_pos = origin + delta + tensor_to_check.set_float_element(i, x_pos) + y_pos = get_output() + + # plus delta to this element, run op and get the new value of the result tensor. + x_neg = origin - delta + tensor_to_check.set_float_element(i, x_neg) + y_neg = get_output() + + # restore old value + tensor_to_check.set_float_element(i, origin) + + # compute the gradient of this element and store it into a numpy array. + gradient_flat[i] = (y_pos - y_neg) / delta / 2 + + # reshape the gradient result to the shape of the source tensor. + return gradient_flat.reshape(tensor_to_check.get_dims()) +``` + +## Auto Graident Checker Framework + +Each Operator Kernel has three kinds of Gradient: + +1. Numerical gradient +2. CPU kernel gradient +3. GPU kernel gradient (if supported) + +The numerical gradient only relies on forward Operator. So we use the numerical gradient as the reference value. And the gradient checking is performed in the following three steps: + +1. calculate the numerical gradient +2. calculate CPU kernel gradient with the backward Operator and compare it with the numerical gradient +3. calculate GPU kernel gradient with the backward Operator and compare it with the numeric gradient (if supported) + +#### Python Interface + +```python + def check_grad(self, + forward_op, + input_vars, + inputs_to_check, + output_name, + no_grad_set=None, + only_cpu=False, + max_relative_error=0.005): + """ + :param forward_op: used to create backward_op + :param input_vars: numpy value of input variable. The following + computation will use these variables. + :param inputs_to_check: the input variable with respect to which to compute the gradient. + :param output_name: The final output variable name. + :param max_relative_error: The relative tolerance parameter. + :param no_grad_set: used when create backward ops + :param only_cpu: only compute and check gradient on cpu kernel. + :return: + """ +``` + +### How to check if two numpy array is close enough? +if `abs_numerical_grad` is nearly zero, then use abs error for numerical_grad + +```python +numerical_grad = ... +operator_grad = numpy.array(scope.find_var(grad_var_name(name)).get_tensor()) + +abs_numerical_grad = numpy.abs(numerical_grad) +# if abs_numerical_grad is nearly zero, then use abs error for numeric_grad, not relative +# error. +abs_numerical_grad[abs_numerical_grad < 1e-3] = 1 + +diff_mat = numpy.abs(abs_numerical_grad - operator_grad) / abs_numerical_grad +max_diff = numpy.max(diff_mat) +``` + + +#### Notes: +The Input data for auto gradient checker should be reasonable to avoid numerical stability problem. + + +#### Refs: + +- [Gradient checking and advanced optimization(en)](http://deeplearning.stanford.edu/wiki/index.php/Gradient_checking_and_advanced_optimization) +- [Gradient checking and advanced optimization(cn)](http://ufldl.stanford.edu/wiki/index.php/%E6%A2%AF%E5%BA%A6%E6%A3%80%E9%AA%8C%E4%B8%8E%E9%AB%98%E7%BA%A7%E4%BC%98%E5%8C%96) diff --git a/doc/_sources/design/block.md.txt b/doc/_sources/design/block.md.txt new file mode 100644 index 00000000000..4066122c0e8 --- /dev/null +++ b/doc/_sources/design/block.md.txt @@ -0,0 +1,336 @@ +# Design Doc: Block and Scope + +## The Representation of Computation + +Both deep learning systems and programming languages help users describe computation procedures. These systems use various representations of computation: + +- Caffe, Torch, and Paddle: sequences of layers. +- TensorFlow, Caffe2, Mxnet: graph of operators. +- PaddlePaddle: nested blocks, like C++ and Java programs. + +## Block in Programming Languages and Deep Learning + +In programming languages, a block is a pair of curly braces that includes local variables definitions and a sequence of instructions or operators. + +Blocks work with control flow structures like `if`, `else`, and `for`, which have equivalents in deep learning: + +| programming languages | PaddlePaddle | +|-----------------------|-----------------------| +| for, while loop | RNN, WhileOp | +| if, if-else, switch | IfElseOp, SwitchOp | +| sequential execution | a sequence of layers | + +A key difference is that a C++ program describes a one pass computation, whereas a deep learning program describes both the forward and backward passes. + +## Stack Frames and the Scope Hierarchy + +The existence of the backward pass makes the execution of a block of PaddlePaddle different from traditional programs: + +| programming languages | PaddlePaddle | +|-----------------------|---------------------------------| +| stack | scope hierarchy | +| stack frame | scope | +| push at entering block| push at entering block | +| pop at leaving block | destroy when minibatch completes| + +1. In traditional programs: + + - When the execution enters the left curly brace of a block, the runtime pushes a frame into the stack, where it realizes local variables. + - After the execution leaves the right curly brace, the runtime pops the frame. + - The maximum number of frames in the stack is the maximum depth of nested blocks. + +1. In PaddlePaddle + + - When the execution enters a block, PaddlePaddle adds a new scope, where it realizes variables. + - PaddlePaddle doesn't pop a scope after the execution of the block because variables therein are used by the backward pass. So it has a stack forest known as a *scope hierarchy*. + - The height of the highest tree is the maximum depth of nested blocks. + - After the processing of a minibatch, PaddlePaddle destroys the scope hierarchy. + +## Use Blocks in C++ and PaddlePaddle Programs + +Let us consolidate the discussion by presenting some examples. + +### Blocks with `if-else` and `IfElseOp` + +The following C++ programs shows how blocks are used with the `if-else` structure: + +```c++ +namespace pd = paddle; + +int x = 10; +int y = 1; +int z = 10; +bool cond = false; +int o1, o2; +if (cond) { + int z = x + y; + o1 = z; + o2 = pd::layer::softmax(z); +} else { + int d = pd::layer::fc(z); + o1 = d; + o2 = d+1; +} + +``` + +An equivalent PaddlePaddle program from the design doc of the [IfElseOp operator](./if_else_op.md) is as follows: + +```python +import paddle as pd + +x = minibatch([10, 20, 30]) # shape=[None, 1] +y = var(1) # shape=[1], value=1 +z = minibatch([10, 20, 30]) # shape=[None, 1] +cond = larger_than(x, 15) # [false, true, true] + +ie = pd.ifelse() +with ie.true_block(): + d = pd.layer.add_scalar(x, y) + ie.output(d, pd.layer.softmax(d)) +with ie.false_block(): + d = pd.layer.fc(z) + ie.output(d, d+1) +o1, o2 = ie(cond) +``` + +In both examples, the left branch computes `x+y` and `softmax(x+y)`, the right branch computes `fc(x)` and `x+1` . + +The difference is that variables in the C++ program contain scalar values, whereas those in the PaddlePaddle programs are mini-batches of instances. + + +### Blocks with `for` and `RNNOp` + +The following RNN model in PaddlePaddle from the [RNN design doc](./rnn.md) : + +```python +x = sequence([10, 20, 30]) # shape=[None, 1] +m = var(0) # shape=[1] +W = var(0.314, param=true) # shape=[1] +U = var(0.375, param=true) # shape=[1] + +rnn = pd.rnn() +with rnn.step(): + h = rnn.memory(init = m) + h_prev = rnn.previous_memory(h) + a = layer.fc(W, x) + b = layer.fc(U, h_prev) + s = pd.add(a, b) + act = pd.sigmoid(s) + rnn.update_memory(h, act) + rnn.output(a, b) +o1, o2 = rnn() +``` +has its equivalent C++ program as follows + +```c++ +int* x = {10, 20, 30}; +int* m = {0}; +int* W = {0.314}; +int* U = {0.375}; + +int mem[sizeof(x) / sizeof(x[0]) + 1]; +int o1[sizeof(x) / sizeof(x[0]) + 1]; +int o2[sizeof(x) / sizeof(x[0]) + 1]; +for (int i = 1; i <= sizeof(x)/sizeof(x[0]); ++i) { + int x = x[i-1]; + if (i == 1) mem[0] = m; + int a = W * x; + int b = Y * mem[i-1]; + int s = fc_out + hidden_out; + int act = sigmoid(sum); + mem[i] = act; + o1[i] = act; + o2[i] = hidden_out; +} +``` + +## Compilation and Execution + +Like TensorFlow, a PaddlePaddle program is written in Python. The first part describes a neural network as a protobuf message, and the rest executes the message for training or inference. + +The generation of this protobuf message is similar to how a compiler generates a binary executable file. The execution of the message is similar to how the OS executes the binary file. + +## The "Binary Executable File Format" + +The definition of the protobuf message is as follows: + +```protobuf +message BlockDesc { + repeated VarDesc vars = 1; + repeated OpDesc ops = 2; +} +``` + +The step net in above RNN example would look like + +``` +BlockDesc { + vars = { + VarDesc {...} // x + VarDesc {...} // h + VarDesc {...} // fc_out + VarDesc {...} // hidden_out + VarDesc {...} // sum + VarDesc {...} // act + } + ops = { + OpDesc {...} // matmul + OpDesc {...} // add_two + OpDesc {...} // sigmoid + } +}; +``` + +Also, the RNN operator in above example is serialized into a protobuf message of type `OpDesc` and would look like: + +``` +OpDesc { + inputs = {0} // the index of x in vars of BlockDesc above + outputs = {5, 3} // indices of act and hidden_out in vars of BlockDesc above + attrs { + "states" : {1} // the index of h + "step_net" : + } +}; +``` + +This `OpDesc` value is in the `ops` field of the `BlockDesc` value representing the global block. + + +## The Compilation of Blocks + +During the generation of the Protobuf message, the Block should store VarDesc (the Protobuf message which describes Variable) and OpDesc (the Protobuf message which describes Operator). + +VarDesc in a block should have its name scope to avoid local variables affect parent block's name scope. +Child block's name scopes should inherit the parent's so that OpDesc in child block can reference a VarDesc that stored in parent block. For example: + +```python +a = pd.Variable(shape=[20, 20]) +b = pd.fc(a, params=["fc.w", "fc.b"]) + +rnn = pd.create_rnn() +with rnn.stepnet(): + x = a.as_step_input() + # reuse fc's parameter + fc_without_b = pd.get_variable("fc.w") + rnn.output(fc_without_b) + +out = rnn() +``` +The method `pd.get_variable` can help retrieve a Variable by the name. The Variable may be stored in a parent block, but might be retrieved in a child block, so block should have a variable scope that supports inheritance. + +In compiler design, the symbol table is a data structure created and maintained by compilers to store information about the occurrence of various entities such as variable names, function names, classes, etc. + +To store the definition of variables and operators, we define a C++ class `SymbolTable`, like the one used in compilers. + +`SymbolTable` can do the following: + +- store the definitions (some names and attributes) of variables and operators, +- verify if a variable was declared, +- make it possible to implement type checking (offer Protobuf message pointers to `InferShape` handlers). + + +```c++ +// Information in SymbolTable is enough to trace the dependency graph. So maybe +// the Eval() interface takes a SymbolTable is enough. +class SymbolTable { + public: + SymbolTable(SymbolTable* parent) : parent_(parent) {} + + OpDesc* NewOp(const string& name=""); + + // TODO determine whether name is generated by python or C++. + // Currently assume that a unique name will be generated by C++ if the + // argument name is left default. + VarDesc* Var(const string& name=""); + + // find a VarDesc by name, if recursive is true, find parent's SymbolTable + // recursively. + // this interface is introduced to support InferShape, find protobuf messages + // of variables and operators, pass pointers into InferShape. + // + // NOTE maybe some C++ classes such as VarDescBuilder and OpDescBuilder should + // be proposed and embedded into pybind to enable python operation on C++ pointers. + VarDesc* FindVar(const string& name, bool recursive=true); + + OpDesc* FindOp(const string& name); + + BlockDesc Compile() const; + + private: + SymbolTable* parent_; + + map ops_; + map vars_; +}; +``` + +After all the description of variables and operators is added into SymbolTable, +the block has enough information to run. + +The `Block` class takes a `BlockDesc` as input, and provides `Run` and `InferShape` functions. + + +```c++ +namespace { + +class Block : OperatorBase { +public: + Block(const BlockDesc& desc) desc_(desc) {} + + void InferShape(const framework::Scope& scope) const override { + if (!symbols_ready_) { + CreateVariables(scope); + CreateOperators(); + } + // should run InferShape first. + for (auto& op : runtime_table_.ops()) { + op->InferShape(scope); + } + } + + void Run(const framework::Scope& scope, + const platform::DeviceContext& dev_ctx) const override { + PADDLE_ENFORCE(symbols_ready_, "operators and variables should be created first."); + for (auto& op : runtime_table_.ops()) { + op->Run(scope, dev_ctx); + } + } + + void CreateVariables(const framework::Scope& scope); + void CreateOperators(); + + // some other necessary interfaces of NetOp are listed below + // ... + +private: + BlockDesc desc_; + bool symbols_ready_{false}; +}; +``` + +## The Execution of Blocks + +Block inherits from OperatorBase, which has a Run method. +Block's Run method will run its operators sequentially. + +There is another important interface called `Eval`, which takes some arguments called targets and generates a minimal graph which treats targets as the end points and creates a new Block. After `Run`, `Eval` will get the latest value and return the targets. + +The definition of Eval is as follows: + +```c++ +// clean a block description by targets using the corresponding dependency graph. +// return a new BlockDesc with minimal number of operators. +// NOTE: The return type is not a Block but the block's description so that this can be distributed +// to a cluster. +BlockDesc Prune(const BlockDesc& desc, vector targets); + +void Block::Eval(const vector& targets, + const framework::Scope& scope, + const platform::DeviceContext& dev_ctx) { + BlockDesc min_desc = Prune(desc_, targets); + Block min_block(min_desc); + min_block.Run(scope, dev_ctx); +} +``` diff --git a/doc/_sources/design/build_system/README.md.txt b/doc/_sources/design/build_system/README.md.txt new file mode 100644 index 00000000000..bf0e4dddc1b --- /dev/null +++ b/doc/_sources/design/build_system/README.md.txt @@ -0,0 +1,152 @@ +A few months ago when we were trying to replace CMake with Bazel, @emailweixu suggested that we rewrite those handy Bazel functions using CMake. Now it seems that it's the right time to get this done, as we are facing problems from the porting of Majel and the development of new the parameter server using Go and C++. + +Here are some initial thoughts. Your comments are welcome! + +### Required CMake Function + +I think we need only the following few CMake functions to make a project description mean and clean: + +| C++ | CUDA C++ | Go | +|---|---|---| +| cc_library | nv_library | go_library | +| cc_binary | nv_binary | go_binary | +| cc_test | nv_test | go_test | + +- The `_library` functions generate .a files from source code. +- The `_binary` functions generate executable binary files. +- The `_test` functions generate executable unit test files. They work like `_binary` but links `-lgtest` and `-lgtest_main`. + +The difference between `nv_` functions and `cc_` functions is that the former use `nvcc` instead of the system-default C++ compiler. + +Both `nv_` and `cc_` functions enables C++11 (-std=c++11). + +Also, + +- to describe external dependencies, we need `external_library`. +- to build shared libraries, we need `shared_library`. + +### An Example Project + +Suppose that we have aforementioned functions defined in our `/cmake` directory. The following example `CMakeLists.txt` describes a project including the following source files: + +- tensor.h +- tensor.cc +- tensor_test.cc +- ops.h +- ops.cu +- ops_test.cu +- api.go +- api_test.go + +Suppose that ops.cu depends on CUDNN. + +```cmake +# cc_binary parses tensor.cc and figures out that target also depend +# on tensor.h. +cc_binary(tensor + SRCS + tensor.cc) + +# The dependency to target tensor implies that if any of +# tensor{.h,.cc,_test.cc} is changed, tensor_test need to be re-built. +cc_test(tensor_test + SRCS + tensor_test.cc + DEPS + tensor) + +# I don't have a clear idea what parameters external_library need to +# have. @gangliao as a CMake expert would have better ideas. +external_library(cudnn + ....) + +# Suppose that ops.cu depends on external target CUDNN. Also, ops.cu +# include global functions that take Tensor as their parameters, so +# ops depend on tensor. This implies that if any of tensor.{h.cc}, +# ops.{h,cu} is changed, ops need to be re-built. +nv_library(ops + SRCS + ops.cu + DEPS + tensor + cudnn) # cudnn is defined later. + +nv_test(ops_test + SRCS + ops_test.cu + DEPS + ops) + +# Because api.go defines a GO wrapper to ops and tensor, it depends on +# both. This implies that if any of tensor.{h,cc}, ops.{h,cu}, or +# api.go is changed, api need to be re-built. +go_library(api + SRCS + api.go + DEPS + tensor # Because ops depend on tensor, this line is optional. + ops) + +go_test(api_test + SRCS + api_test.go + DEPS + api) + + +# This builds libapi.so. shared_library might use CMake target +# api_shared so to distinguish it from above target api. +shared_library(api + DEPS + api) + +``` + +### Implementation + +As above example CMakeLists.txt executes, each function invocation adds "nodes" to a dependency graph. It also use this graph to generate CMake commands including `add_executable`, `add_dependencies`, `target_link_libraries`, and `add_test`. + +### Using Package Manager For Go + +Building Go binaries and libraries need to satisfy their dependencies, generally +we can do `go get ./...` to download and compile all external dependencies. The +problems are: + +1. `go get` will always get the latest code from the default branch of the + remote repo, so changes of dependents might break the build. This is very + different with what we already have in `cmake/external` which download a + specific version or commit id of the dependency. +1. Some locations can not access external dependencies through the internet, as mentioned + in https://github.com/PaddlePaddle/Paddle/issues/2605. Using package management + tools can package the dependencies as a "vendor" package, which can be mirrored + at many cloud file hosting, so users what to compile paddle by themselves can + download this "vendor" package from a mirror site. + +#### Choose A Suitable Tool + +As mentioned by @wangkuiyi, [Here](https://github.com/golang/go/wiki/PackageManagementTools) +list dozens of Go package managers. We choose the tool using following principles: + +- Most "active" projects with more stars, more pull requests or commits +- Widely used project + +After comparing all these projects, we shall choose between the most popular +tools: Godep and Glide. + +Here's a brief comparison between Godep and Glide +: https://github.com/Masterminds/glide/wiki/Go-Package-Manager-Comparison. There are +also many complaints about using `Godep`. There's also a new "official" pakcage +management tool has been started at: https://github.com/golang/dep to resolve +such problems, but it's currently at Alpha stage. So the best choice now is +glide obviously. + +#### Manage Go Packages + +- Dependencies: `go/glide.yaml` will store the dependencies and their versions which + is directly imported by paddle. `go/glide.lock` will store all dependencies recursively + with their commit id. Builds will "lock" to these packages if we don't `glide up` + them +- Vendor package: `go/vendor` directory will generated when running `cmake` command. `cmake` + will download the code corresponding to `go/glide.lock`. If we put a vendor folder + under `go/`, cmake will just check the commit id to the packages under the folder, + if commit id matches, there will be no download at all. diff --git a/doc_cn/_sources/design/dist/README.md.txt b/doc/_sources/design/cluster_train/README.md.txt similarity index 62% rename from doc_cn/_sources/design/dist/README.md.txt rename to doc/_sources/design/cluster_train/README.md.txt index 1788208bcab..177a5f5d54b 100644 --- a/doc_cn/_sources/design/dist/README.md.txt +++ b/doc/_sources/design/cluster_train/README.md.txt @@ -15,33 +15,37 @@ This poses technical challenges to PaddlePaddle: A training job will be created once user asks Paddle cloud to train a model. The training job is made up of different processes that collaboratively consume data and produce a trained model. There are three kinds of processes: -1. the *master process*, which dispatches tasks to +1. the *master server process*, which dispatches tasks to 1. one or more *trainer processes*, which run distributed training and synchronize gradients/models via -1. one or more *parameter server processes*, where each holds a shard of the global model. +1. one or more *parameter server processes*, where each holds a shard of the global model, and receive the uploaded gradients from every *trainer process*, so they can run the optimize functions to update their parameters. Their relation is illustrated in the following graph: -### Master Process +By coordinating these processes, PaddlePaddle supports use both Synchronize Stochastic Gradient Descent (sync SGD) and Asynchronous Stochastic Gradient Descent (async SGD) to train user-defined neural network topologies. -The master process will: +When training with sync SGD, parameter servers wait for all trainers to finish gradients update and then send the updated parameters to trainers, training can not proceed until the trainer received the updated parameters. This creates a synchronization point between trainers. When training with async SGD, each trainer upload gradient and download new parameters individually, without the synchronization with other trainers. Using asyc SGD will be faster in terms of time per pass, but have more noise in gradient since trainers are likely to have a stale model. + +### Master Server Process + +The master server process will: - Partition a dataset into [tasks](#task) and dispatch tasks to trainers. - Keep track of training progress on the dataset with [task queue](#task-queue). A training job will iterate on the dataset for a full pass until it goes into next pass. -#### Task +#### Task A task is a data shard to be trained. The total number of tasks will be much bigger than the total number of trainers. The number of data instances inside a task will be much bigger than the mini-batch size. #### Task Queue -The master process has three task queues to track training progress. As illustrated in the graph below, Job A and Job B both have one master process. Each master process has three task queues. +The master server has three task queues to track training progress. As illustrated in the graph below, Job A and Job B both have one master server. Each master server process has three task queues. -- The todo queue holds tasks to be dispatched. When a job starts, the master process fills in the todo queue with all tasks. +- The todo queue holds tasks to be dispatched. When a job starts, the master server fills in the todo queue with all tasks. - The pending queue holds tasks that are currently training by trainers. - the done queue holds tasks that are already trained. @@ -50,17 +54,18 @@ The life cycle of a single task is illustrated below: 1. When a new pass of training starts, all tasks will be placed in the todo queue. -1. The master process will dispatch few tasks to each trainer at a time, puts them in the pending queue and waits for completion. -1. The trainer will work on its tasks and tell the master process once a task is completed. The master process will dispatch a new task to that trainer. -1. If a task timeout. the master process will move it back to the todo queue. The timeout count will increase by one. If the timeout count is above a threshold, the task is likely to cause a trainer to crash, so it will be discarded. -1. The master process will move completed task to the done queue. When the todo queue is empty, the master process will start a new pass by moving all tasks in the done queue to todo queue and reset the timeout counter of all tasks to zero. +1. Upon trainer requests for new task, the master server will dispatch a task from todo queue to it, put the task in the pending queue and wait for completion. +1. The trainer will work on its task and tell the master server once the task is completed and ask for new task. The master server will dispatch a new task to that trainer. +1. If a task fails for any reason in trainer, or takes longer than a specific period of time, the master server will move the task back to the todo queue. The timeout count for that task will increase by one. If the timeout count is above a threshold, the task is likely to cause a trainer to crash, then it will be discarded. +1. The master server will move completed task to the done queue. When the todo queue is empty, the master server will start a new pass by moving all tasks in the done queue to todo queue and reset the timeout counter of all tasks to zero. ### Trainer Process The trainer process will: -- Receive tasks from the master. -- Work on the tasks: calculate and upload gradient to parameter servers, and update local model by downloading new parameters from parameter servers. +- Request tasks from the master. +- Work on the tasks +- Upload gradient to parameter servers, and update local model by downloading new parameters from parameter servers. ### Parameter Server Process @@ -78,7 +83,7 @@ The communication pattern between the trainers and the parameter servers depends - Synchronous Stochastic Gradient Descent (sync-SGD) Parameter server will wait for all trainer finish n-th mini-batch calculation and send their gradients before broadcasting new parameters to every trainer. Every trainer will wait for the new parameters before starting n+1-th mini-batch. - + - Asynchronous Stochastic Gradient Descent (async-SGD) There will no synchronization between different trainers, and parameter server updates its parameter as soon as it receives new gradient: @@ -89,7 +94,7 @@ The communication pattern between the trainers and the parameter servers depends ## Fault Tolerant -The training job will pause if the master processes is dead, or any of the parameter server process is dead. They will be started by [Kubernetes](https://kubernetes.io/) and recover in few minutes. Please refer to [fault recovery](#fault-recovery). +The training job will pause if the master server processes is dead, or any of the parameter server process is dead. They will be started by [Kubernetes](https://kubernetes.io/) and recover in few minutes. Please refer to [fault recovery](#fault-recovery). The training job will continue to make progress if there is at least one training process running. The strategy depends on the type of optimization algorithm: @@ -109,28 +114,26 @@ Now we will introduce how each process recovers from a failure, the graph below -### Master Process +### Master Server Process When the master is started by the Kubernetes, it executes the following steps at startup: 1. Grabs a unique *master* lock in etcd, which prevents concurrent master instantiations. 1. Recovers the task queues from etcd if they already exist, otherwise, the master will create them. -1. Watches the trainer prefix keys `/trainer/` on etcd to find the live trainers. -1. Starts dispatching the tasks to the trainers, and updates task queue using an etcd transaction to ensure lock is held during the update. +1. Write its ip address to */master/addr* so that trainers can discover it. +1. Listens to trainers' request of task, dispatch one upon request, and updates task queue using an etcd transaction to ensure lock is held during the update. -The master process will kill itself if its etcd lease expires. - -When the master process is dead for any reason, Kubernetes will restart it. It will be online again with all states recovered from etcd in few minutes. +When the master server process is dead for any reason, Kubernetes will restart it. It will be online again with all states recovered from etcd in few minutes. ### Trainer Process When the trainer is started by the Kubernetes, it executes the following steps at startup: -1. Watches the available parameter server prefix keys `/ps/` on etcd and waits until the count of parameter servers reaches the desired count. -1. Generates a unique ID, and sets key `/trainer/` with its contact address as value. The key will be deleted when the lease expires, so the master will be aware of the trainer being online and offline. -1. Waits for tasks from the master to start training. +1. Watches the available parameter server prefix keys `/ps/` on etcd and waits until the count of parameter servers reaches the desired count */ps_desired*. +1. Finds and watches */master/addr* to get master's address. +1. Requests for tasks from the master to start training. -If trainer's etcd lease expires, it will try set key `/trainer/` again so that the master process can discover the trainer again. +When a trainer fails, Kuberentes would try to restart it. The recovered trainer would fetch tasks from master and go on training. ### Parameter Server Process @@ -140,11 +143,11 @@ When the parameter server is started by Kubernetes, it executes the following st 1. Search through etcd keys `/ps/` (`/ps/0`, `/ps/1`, ...) to find the first non-existant key whose index is smaller than the total number of parameter servers. Set the key using a transaction to avoid concurrent writes. The parameter server's index is inferred from the key name. The desired number of parameter servers is 3: - + - + The third parameter server joined: - + 1. The parameter server can load parameters if there are already saved parameters in the save path (inferred from its index). @@ -153,6 +156,13 @@ When the parameter server is started by Kubernetes, it executes the following st If the parameter server's etcd lease expires, the parameter server will kill itself. +## Parameter Server Checkpointing +See [here](./checkpointing.md) + +## Store and dispatching trainning data +See [here](./data_dispatch.md) + + ## Dynamic Scaling ### Trainer Scaling diff --git a/doc/_sources/design/cluster_train/checkpointing.md.txt b/doc/_sources/design/cluster_train/checkpointing.md.txt new file mode 100644 index 00000000000..c87ef2c7d26 --- /dev/null +++ b/doc/_sources/design/cluster_train/checkpointing.md.txt @@ -0,0 +1,44 @@ +## 模型参数检查点(Checkpointing) +模型数据检查点的实现,可以有效的避免parameter server的单点或多点同时故障。模型参数检查点通过定期向磁盘上保存一份存储在parameter server内存中的模型数据的完整镜像,来保证训练过程可以从中间状态重新启动。在一个不可中断并缺少备份的训练任务中,可以通过阶段性的保存每个parameter server的数据快照(snapshot)到 ***分布式存储服务*** 达到容灾的目的,比如每隔10分钟最新的快照,并删除更早的快照。在出现单点故障时,只需要恢复这台节点,或者将这台节点迁移到另一个节点并启动即可恢复训练任务。 + + + +### 快照保存的设计如下: + +说明: + +* parameter server在集群中启动后,自动挂载分布式存储目录,并把快照保存到这个目录下。 +* ***注:每个parameter server的检查点各自独立保存,暂时不考虑多个parameter server同步的保存一个特定时间点的全局检查点,因为这样做也没法保证消除随机性。*** + +检查点保存程序流程: + +1. 如果满足条件"每隔10分钟"时,parameter server会获取parameters内存的`read_lock`,启动一个新的线程开始保存检查点。如果已经正在执行保存检查点的线程,则忽略。由于对parameters的更新需要获取parameters内存的`write_lock`,所以在写入快照的过程中,parameter server会暂停参数更新并等待。 +2. parameter server生成一个UUID,向指定的目录中一个新的文件(文件名为此UUID)写入快照数据。在快照写入完成后,计算这个文件的MD5 sum。然后在etcd的`/checkpoints/[pserver_id]`中写入json内容:`{"uuid": [UUID], "md5", "MD5 sum", "timestamp": xxxx}`。 +3. 删除磁盘目录中不是当前uuid的快照文件。 +4. 释放对paramters内存的锁定,停止保存检查点的线程。 + +这里需要用户额外注意,在您的实际环境中,训练任务的运行可能会占满trainer和parameter server之间的网络带宽,如果parameter server此时还需要通过网络访问分布式存储以保存快照,可能会造成网络拥塞,而出现阶段性的运行停滞。 + +### 从快照恢复 + +在parameter server第一次启动或任意时间parameter server故障后被Kubernetes重新启动,则需要回滚到上一个检查点: + + 1. 从etcd中读取节点:`/checkpoints/[pserver_id]`获取最新的检查点的文件uuid + 1. 从磁盘文件中加载uuid文件名的检查点快照文件,并加载其中的参数 + 1. 如果上面两步出现错误,则使用启动参数定义的初始化方法初始化参数 + 1. 开始提供服务 + +## TODO List +### 推测执行/加速执行(TODO) +在异构集群中,如果存在某些trainer执行速度过慢会影响整体集群的速度(如图中Trainer 1),此时master将负责启动一个新的Trainer(Accelerate Trainer 2),使用同样的训练数据block。哪个trainer先完成block的训练,则把另一个慢速的kill掉。 + +### 动态扩容/缩容 +目前只考虑动态扩容trainer数量,可以减小系统复杂性。 + +## 术语 +* model: 指深度学习训练之后得到的所有参数,使用这个神经网络可以完成对新数据的预测 +* parameters: 神经网络中的参数,包括权重w和偏置b。一个神经网络的模型由大量的参数组成 +* shard: 分片,通常指将一个整体拆分成多份的其中的一份。 +* model shard: 将一个神经网络参数拆分成多份,每个shard分别存储在其中一台parameter server之上 +* parameter block: 多个parameter block构成一个model shard +* 单点故障: 任意时刻只可能同时有一台服务器故障。由于集群中同时存在两台机器故障的概率极低((平均故障率*平均故障修复时间)^2)只对特殊在线系统考虑两台以上同时故障的容灾。 diff --git a/doc/_sources/design/cluster_train/data_dispatch.md.txt b/doc/_sources/design/cluster_train/data_dispatch.md.txt new file mode 100644 index 00000000000..1f5d22ff5e6 --- /dev/null +++ b/doc/_sources/design/cluster_train/data_dispatch.md.txt @@ -0,0 +1,160 @@ +## 训练数据的存储和分发 + +### 概念解释 + +### 流程介绍 +生产环境中的训练数据集通常体积很大,并被存储在诸如Hadoop HDFS,Ceph,AWS S3之类的分布式存储之上。这些分布式存储服务通常会把数据切割成多个分片分布式的存储在多个节点之上。这样就可以在云端执行多种数据类计算任务,包括: + +* 数据预处理任务 +* Paddle训练任务 +* 在线模型预测服务 +

+ +在上图中显示了在一个实际生产环境中的应用(人脸识别)的数据流图。生产环境的日志数据会通过实时流的方式(Kafka)和离线数据的方式(HDFS)存储,并在集群中运行多个分布式数据处理任务,比如流式数据处理(online data process),离线批处理(offline data process)完成数据的预处理,提供给paddle作为训练数据。用户也可以上传labeled data到分布式存储补充训练数据。在paddle之上运行的深度学习训练输出的模型会提供给在线人脸识别的应用使用。 + +### 训练数据存储 +我们选择[CephFS](http://docs.ceph.com/docs/master/cephfs/)作为存储系统。 + +- 无论是从[PFSClient](../file_manager/README.md)的角度,还是从[Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/)中运行任务的角度,统一用`/pfs/$DATACENTER/home/$USER`来访问用户自己的数据。 +- `/pfs/$DATACENTER/common`下存放公共数据集合 + - 做只读挂载 + +
+ +
+ +### 文件预处理 + + +在开始训练之前, 数据集需要预先被转换成PaddlePaddle分布式训练使用的存储格[RecordIO](https://github.com/PaddlePaddle/Paddle/issues/1947)。我们提供两个转换方式: + +1. 用户在本地转换好再上传 +1. 用户上传数据后,在机群上运行转换程序 + +转换生成的文件名会是以下格式: + +```text +name_prefix-aaaaa-of-bbbbb +``` + +"aaaaa"和"bbbbb"都是五位的数字,每一个文件是数据集的一个shard,"aaaaa"代表shard的index,"bbbbb"代表这个shard的最大index。 + +比如ImageNet这个数据集可能被分成1000个shard,它们的文件名是: +```text +imagenet-00000-of-00999 +imagenet-00001-of-00999 +... +imagenet-00999-of-00999 +``` + +#### 转换库 + +无论是在本地或是云端转换,我们都提供Python的转换库,接口是: +```python +def convert(output_path, reader, num_shards, name_prefix) +``` + +- `output_path`: directory in which output files will be saved. +- `reader`: a [data reader](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/reader/README.md#data-reader-interface), from which the convert program will read data instances. +- `num_shards`: the number of shards that the dataset will be partitioned into. +- `name_prefix`: the name prefix of generated files. + +`reader`每次输出一个data instance,这个instance可以是单个值,或者用tuple表示的多个值: + +```python +yield 1 # 单个值 +yield numpy.random.uniform(-1, 1, size=28*28) # 单个值 +yield numpy.random.uniform(-1, 1, size=28*28), 0 # 多个值 +``` + +每个值的类型可以是整形、浮点型数据、字符串,或者由它们组成的list,以及numpy.ndarray。如果是其它类型,会被Pickle序列化成字符串。 + +### 示例程序 + +#### 使用转换库 + +以下`reader_creator`生成的`reader`每次输出一个data instance,每个data instance包涵两个值:numpy.ndarray类型的值和整型的值: +```python +def reader_creator(): + def reader(): + for i in range(1000): + yield numpy.random.uniform(-1, 1, size=28*28), 0 # 多个值 + return reader +``` + +把`reader_creator`生成的`reader`传入`convert`函数即可完成转换: +```python +convert("./", reader_creator(), 100, random_images) +``` + +以上命令会在当前目录下生成100个文件: +```text +random_images-00000-of-00099 +random_images-00001-of-00099 +... +random_images-00099-of-00099 +``` + +#### 进行训练 + + +PaddlePaddle提供专用的[data reader creator](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/reader/README.md#python-data-reader-design-doc),生成给定`RecordIO`文件对应的data reader。**无论在本地还是在云端,reader的使用方式都是一致的**: + +```python +# ... +reader = paddle.reader.creator.RecordIO("/pfs/datacenter_name/home/user_name/random_images-*-of-*") +batch_reader = paddle.batch(paddle.dataset.mnist.train(), 128) +trainer.train(batch_reader, ...) +``` + +以上代码的reader输出的data instance与生成数据集时,reader输出的data instance是一模一样的。 + +### 上传训练文件 + +使用下面命令,可以把本地的数据上传到存储集群中。 + +```bash +paddle pfs cp filename /pfs/$DATACENTER/home/$USER/folder/ +``` + +比如,把之前示例中转换完毕的random_images数据集上传到云端的`/home/`可以用以下指令: + +```bash +paddle pfs cp random_images-*-of-* /pfs/$DATACENTER/home/$USER/folder/ +``` + +需要`$DATACENTER`的配置写到配置文件中,例如 + +``` +# config file +[datacenter_1] +username=user +usercert=user.pem +userkey=user-key.pem +endpoint=datacenter1.paddlepaddle.org + +[datacenter_2] +username=user +usercert=user.pem +userkey=user-key.pem +endpoint=datacenter2.paddlepaddle.org +``` +## TODO +### 文件访问的权限 +控制用户权限 + +- 用户可以把自己的数据分享给别人 + +### 文件访问方式 +不用mount的方式来访问数据,而是直接用API的接口远程访问 + +例如: + +``` +f = open('/pfs/datacenter_name/home/user_name/test1.dat') +``` + + +### 支持用户自定义的数据预处理job diff --git a/doc/_sources/design/cluster_train/large_model_dist_train.md.txt b/doc/_sources/design/cluster_train/large_model_dist_train.md.txt new file mode 100644 index 00000000000..0c4b5bc24c8 --- /dev/null +++ b/doc/_sources/design/cluster_train/large_model_dist_train.md.txt @@ -0,0 +1,101 @@ +# Alalysis of large model distributed training in Paddle + +***NOTE: This is only some note for how we implemeted this scheme in V1, not a new design.*** + +## What is it + +We often encounter cases that the embedding layer parameters(sparse) are so large that we can not store it in the trainer's memory when training. So we need to put them to several servers, and fetch them row by row instead of fetch all of the parameters. + +## How to use + +Specify command-line argument like `--loadsave_parameters_in_pserver=true --ports_num_for_sparse=1 --use_old_updater=1` when starting the paddle trainer. And also add something like `--ports_num_for_sparse=1 --pserver_num_threads=5` when starting pserver processes. + +Accrodingly, configure your embedding layers like: + +```python +SPARSE_REMOTE=True + +w1 = data_layer(name="w1", size=dict_size) +emb1 = embedding_layer(input=w1, size=32, param_attr=ParameterAttribute(sparse_update=SPARSE_REMOTE)) +w2 = data_layer(name="w2", size=dict_size) +emb2 = embedding_layer(input=w2, size=32, param_attr=ParameterAttribute(sparse_update=SPARSE_REMOTE)) +... +``` + +## Implementation details + +```c++ +enum MatType { + MAT_NORMAL, + MAT_NORMAL_SHARED, + MAT_VALUE_SHARED, + MAT_SPARSE_ROW_IDS, + MAT_SPARSE_ROW_AUTO_GROW, + MAT_CACHE_ROW, + MAT_SPARSE_ROW, + MAT_SPARSE_ROW_PREFETCH, + MAT_SPARSE_ROW_PREFETCH_FULL_SIZE, +}; +``` + +`MAT_SPARSE_ROW_PREFETCH` is what we use when configured to fetch only row of matrix when training. + +In `trainer_internal.cpp:L93 trainOneBatch`: + +```c++ + if (config_->getOptConfig().use_sparse_remote_updater()) { + REGISTER_TIMER("prefetch"); + gradientMachine_->prefetch(inArgs); + parameterUpdater_->getParametersRemote(); + } +``` + +When doing actual network forward and backward, at the beginning of each batch, the trainer will try to download one row of data from pserver. + +In `trainer/RemoteParameterUpdater.cpp`: `parameterUpdater_->getParametersRemote();`: + +```c++ +if (fullSize) { + ... +} else { +getParams = [&] { + parameterClient_->getParameterSparse( + /* recvParameterType= */ PARAMETER_VALUE, sendBackParameterType); +}; +applyL1 = [](Parameter& para, real decayRate) { + para.getMat(PARAMETER_VALUE)->applyL1(/*lr=*/1.0f, decayRate); +}; +} +``` + +Calling `parameterClient_->getParameterSparse` will do remote call to pserver's `getParameterSparse`: + +```c++ +void ParameterServer2::getParameterSparse(const SendParameterRequest& request, + std::vector& inputBuffers, + SendParameterResponse* response, + std::vector* outputBuffers) { + (void)inputBuffers; + auto& buffer = *readWriteBuffer_; + size_t numReals = 0; + for (const auto& block : request.blocks()) { + numReals += getParameterConfig(block).dims(1); + } + buffer.resize(numReals); + + VLOG(3) << "pserver: getParameterSparse, numReals=" << numReals; + + ReadLockGuard guard(parameterMutex_); + size_t offset = 0; + for (const auto& block : request.blocks()) { + size_t width = getParameterConfig(block).dims(1); + Buffer buf = {buffer.data() + offset, width}; + int type = request.send_back_parameter_type(); + sendBackParameterSparse(block, type, response, &buf, width, outputBuffers); + offset += width; + } +} +``` + +`getParameterConfig(block).dims(1)` returns the width of the current "parameter block"(a shard of parameter object), +then `getParameterSparse` remote call returns only one row of data to the client. diff --git a/doc/_sources/design/cluster_train/master_server.md.txt b/doc/_sources/design/cluster_train/master_server.md.txt new file mode 100644 index 00000000000..4bf3c506f10 --- /dev/null +++ b/doc/_sources/design/cluster_train/master_server.md.txt @@ -0,0 +1,91 @@ +# Design Doc: Master Server + +For an overview of master server's role, please refer to [distributed training design doc](./README.md). In this design doc we will discuss the master server in more details. The master will be implemented in [Go](https://golang.org/). + +## Dataset + + + +A dataset is a list of files in *RecordIO* format. A RecordIO file consists of chunks, whereas each chunk consists some records. + +## Task Queue + +As mentioned in [distributed training design doc](./README.md), a *task* is a data shard that the master server assigns to the trainer process to train on. A task consists of one or multiple *chunks* from one or multiple files. The master server maintains *task queues* to track the training progress. + +### Task Queue Creation + +1. Each trainer will make an RPC call (using Go's [rpc](https://golang.org/pkg/net/rpc/) package) to the master server, telling it the RecordIO files representing the dataset specified by the user. Since every trainer will tell the master server the same dataset, only the first RPC call will be honored. + + The RPC interface is: + ```go + func (m *RPCServer) ReportDataset(Paths []string, dummy *int) error { + } + ``` +1. The master server will scan through each RecordIO file to generate the *chunk index* and know how many chunks does each file have. A chunk can be referenced by the file path and the index of the chunk within the file. The chunk index is in memory data structure that enables fast access to each chunk, and the index of the chunk with the file is an integer start from 0, representing the n-th chunk within the file. + + The definition of the chunk is: + ```go + type Chunk struct { + Idx int // index of the chunk within the file + Path string + Index recordio.Index // chunk index + } + ``` +1. Chunks are grouped into tasks, and tasks are filled into the todo queue. The pending queue and the done queue are initialized with no element. + + The definition of the task is: + ```go + type Task struct { + Index int + Chunks []Chunk + } + ``` + + The elements in the tasks queues is of type `TaskEntry`, containing a timeout counter (described in [task retry logic](#task-retry-logic)), and a task: + ```go + type TaskEntry struct { + NumTimeout int + Task Task + } + ``` + + The definition of task queues is: + ```go + type TaskQueues struct { + Todo []TaskEntry + Pending map[int]TaskEntry // map from task index to task entry + Done []TaskEntry + } + ``` + +### Task Queue Persistence + +The task queues need to be persisted on [etcd](https://github.com/coreos/etcd) for fault recovery. Since the task queues only change once a task is completed or timed out, which is not very frequent, we can afford to synchronize with etcd every time the task queues change. + +We will serialize the task queues data structure with [gob encoding](https://golang.org/pkg/encoding/gob/), compress with gzip, and save into etcd synchronously under key `/task_queues`. + +### Task Dispatch + +The trainer will make an RPC call to master to get a new task when: + +- the trainer first started, or +- the trainer finishes a task. + +The RPC interface is: +```go +func (m *RPCServer) GetTask(finished *Task, result *Task) error { +} +``` +Argument `finished` will be `nil` when the trainer is just started. + +During the RPC call the master will do the following: + +- Make a copy of the task queues, and update the copy reflecting the finished tasks and the new pending tasks. +- Synchronize the copy of task queues with etcd using a transaction conditioned on holding the master lock. +- Replace the task queues with the copy and report to the trainer with the new tasks if succeeded, or discard the copy and report the error to the trainer if failed. + +### Task Retry Logic + +When a task is dispatched to the trainer, the master will schedule a function for execution after the timeout duration (based on the moving average of task completion time). If the task entry in still in the pending queue, its timeout counter will increase by one, and the task will be moved to todo queue. If the timeout counter is above the threshold, the master will log the error and discard the task. + +Please note that since a timed out task could be completed after it has been dispatched for retry, so it is possible for a task to be processed multiple times. We do not try to prevent it from happening since it's fine to train on the same task multiple times due to the stochastic nature of the stochastic gradient decent algorithm. diff --git a/doc/_sources/design/cluster_train/pserver_client.md.txt b/doc/_sources/design/cluster_train/pserver_client.md.txt new file mode 100644 index 00000000000..474b8c572cd --- /dev/null +++ b/doc/_sources/design/cluster_train/pserver_client.md.txt @@ -0,0 +1,171 @@ +# Design Doc: The Client Library of Parameter Server + +For an overview of trainer's role, please refer to [distributed training design doc](README.md). In this design doc, we will discuss the parameter server's client library, which will manage communication with parameter servers. The library will be implemented in [Go](https://golang.org/) and made available as a static or dynamic library with a C header file. + +## Parameter Partition + +Each parameter will be partitioned into parameter blocks to make the parameters evenly distributed on parameter servers. The partition is done automatically by the client library. The *sparse parameter* require a little different treatment: + +### Sparse Parameter + +The sparse parameter is a parameter that is updated sparsely. The name is somewhat misleading, it does not have a sparse representation, it has the same representation as a dense vector. + +Because a sparse parameter is updated sparsely, the trainer will have to partition the sparse parameter. Because the parameter server will merge all sparse parameter shard into the same file when saving the parameter. It needs special naming convention: + +If a sparse parameter is partitioned into n shards, they should be named as: + +```text +name:sparse-0 +name:sparse-1 +... +name:sparse-n-1 +``` + +The library is unaware of the partition, and treat each parameter independently. Only when saving parameters, the parameter servers will merge the sparse parameters according to the naming convention. + +## Model Optimization Using Gradients + +There are two ways to perform model optimization using gradients: + +- On Client + + The client does multiple steps of forward and backward update. In each step, the gradients are calculated and a new model is generated. After some steps, the client will calculate the difference between the newest model and the old model at step 0. The difference will be updated to parameter servers. Parameter servers will just update parameters using the difference without any optimization using gradients (such as Adam and L1 regularization). + +- On Parameter Server + + The client will send accumulated gradients to parameter servers, the parameter server will do the optimization using gradients. + +## L1 and L2 Regularization + +PaddlePaddle allows L1 or L2 regularizations to be specified per parameter, so when the trainer initializes the parameter it needs include a parameter configuration when L1 or L2 regularization is necessary. + +## Parameter Initialization + +The parameters on parameter servers need to be initialized. To provide maximum flexibility, the trainer will initialize the parameters. Only one trainer will do the initialization, the other trainers will wait for the completion of initialization and get the parameters from the parameter servers. + +### Trainer Selection + +To select the trainer for initialization, every trainer will try to get a distributed lock, whoever owns the lock will do the initialization. As illustrated below: + + + +### Trainer Selection Process + +The trainer select process is encapsulated in the C API function: +```c +int paddle_begin_init_params(paddle_pserver_client* client, const char* config_proto); +``` +The selected trainer's call to `paddle_begin_init_params` will return with 1, and the other trainers' call to `paddle_begin_init_params` will return 0. `paddle_get_params` will be blocked until initialization is completed. As illustrated below: + + + +## C Interface + +```c +typedef enum { + PADDLE_ELEMENT_TYPE_INT32 = 0, + PADDLE_ELEMENT_TYPE_UINT32 = 1, + PADDLE_ELEMENT_TYPE_INT64 = 2, + PADDLE_ELEMENT_TYPE_UINT64 = 3, + PADDLE_ELEMENT_TYPE_FLOAT32 = 4, + PADDLE_ELEMENT_TYPE_FLOAT64 = 5, +} paddle_element_type; + +typedef struct { + char* name; + paddle_element_type element_type; + unsigned char* content; + int content_len; +} paddle_parameter, paddle_gradient; + +typedef int paddle_pserver_client; + +/** + * @brief creates a pserver client that talks to etcd for coordination. + */ +paddle_pserver_client paddle_new_etcd_pserver_client(char* etcd_addr); + +/** + * @brief creates a pserver client given pserver addresses. + * + * @param pserver_addrs comma-separated pserver addresses. + * @param selected if current pserver client is selected to initialize all parameter servers. + */ +paddle_pserver_client paddle_new_pserver_client(char* pserver_addrs, int selected); +void paddle_pserver_client_release(paddle_pserver_client c); + +/** + * @brief paddle_begin_init_params begins to initialize parameters on + * parameter servers. + * + * paddle_begin_init_params will be called from multiple trainers, + * only one trainer will be selected to initialize the parameters on + * parameter servers. Other trainers need to get the initialized + * parameters from parameter servers using @paddle_get_params. + * + * @return 1 if the trainer is selected to initialize parameter + * servers, otherwise 0. + */ +int paddle_begin_init_params(paddle_pserver_client client); + +/** + * @brief paddle_init_param initializes the parameter on parameter + * servers. + * + * @param param the parameter to initialize. + * @param param_config_proto the configuration for the parameter. + * @param config_len the length of param_config_proto + * @return 0 if successful, otherwise -1. On failure, the trainer + * needs to restart the entire initialization process (starting from + * @paddle_begin_init_param). Or simply exit the program and wait for + * the cluster management system to restart the trainer. + */ +int paddle_init_param(paddle_pserver_client client, paddle_parameter param, const unsigned char* param_config_proto, int config_len); + +/** + * @brief paddle_finish_init_params tells parameter servers client has + * sent all parameters to parameter servers as initialization. + * + * @return 0 if successful, otherwise -1. On failure, the trainer + * needs to restart the entire initialization process (starting from + * @paddle_begin_init_param). Or simply exit the program and wait for + * the cluster management system to restart the trainer. + */ +int paddle_finish_init_params(paddle_pserver_client client); + +/** + * @brief paddle_send_grads sends gradients to parameter servers for + * updating parameters. + * + * @param grads the array of gradients to send. + * @param len the length of the gradient array. + * @param learning_rate the learning rate for the gradients. + * @return 0 if successful, otherwise -1. + */ +int paddle_send_grads(paddle_pserver_client client, const paddle_gradient* grads, int len); + +/** + * @brief paddle_get_params gets parameters from parameter servers. + * + * paddle_get_params will block until parameters are initialized on + * the parameter servers. + * + * @param dst the destination array of parameter pointers to save to. + * The parameter pointer must be pre-popullated with required parameter name, + * and the content of parameter must be pre-allocated of the size of required + * parameter on pserver. + * @param len the length of the names array and the paddle_parameter + * array. + * @return 0 if successful, otherwise -1. + */ +int paddle_get_params(paddle_pserver_client client, paddle_parameter** dst, int len); + +/** + * @brief paddle_save_model indicates parameters to save the parameter + * to the given path + * + * @param path the path to save parameters. + * @return 0 if successful, otherwise -1. + */ +int paddle_save_model(paddle_pserver_client client, const char* path); +``` diff --git a/doc/_sources/design/cluster_train/remote_parameter_updater.md.txt b/doc/_sources/design/cluster_train/remote_parameter_updater.md.txt new file mode 100644 index 00000000000..6e8e5938455 --- /dev/null +++ b/doc/_sources/design/cluster_train/remote_parameter_updater.md.txt @@ -0,0 +1,21 @@ +# Design Doc: Remote Parameter Updater for Cluster Train + +For an overview of distribute training, please refer to [distributed training design doc](README.md). In this design doc, we will discuss the parameter updater that will use parameter server cclient [The Client Library of Parameter Server Design Doc](pserver_client.md) to manage and update parameters. + +## Parameter Updater + +Parameter Updater is used by trainer to manage and update parameter, there are mainly two kind of parameter updater: local and remote, since this design is for cluster train, we will only discuss remote parameter updater here. + +### Remote Parameter Updater + +Remote Parameter Updater manage parameters through remote parameter server with the client that communicate with pserver([The Client Library of Parameter Server Design Doc](pserver_client.md)) + +In PaddlePaddle Python V2 API, trainer is implemented in python, and the trainer will hold a instance of parameter updater and call it's functions directly. In this design, we will also expose the api of RemoteParameterUpdater to python with swig. + +#### Sparse Remote Parameter Updater + +Since we will only implement dense parameter management new, the mechanism for sparse parameter will be discussed in next stage. + +### Interface Design + +TBD diff --git a/doc/_sources/design/cluster_train/save_model.md.txt b/doc/_sources/design/cluster_train/save_model.md.txt new file mode 100644 index 00000000000..b755185c81a --- /dev/null +++ b/doc/_sources/design/cluster_train/save_model.md.txt @@ -0,0 +1,111 @@ +# Design Doc: Save Model + +## Overview + +The model is the output of the training process. There are two +ways from which user can obtain a model: + +- Save model triggered by user code: user code asks PaddlePaddle to + save a model. +- Convert model from the checkpoint: model being converted from + pservers' periodic checkpoint. In this way, the user can cancel a + job at any time, and still have a relatively fresh model (we + checkpoint around every 5 minutes). + +### Trainer Saving Model vs. Pservers Saving Model + +Both trainers and pservers have access to the model. So the model can +be saved from a trainer or pservers. We need to decide where the model +is saved from. + +#### Dense Update vs. Sparse Update + +There are two types of model update methods: dense update and sparse +update (when the model parameter is configured to be sparse). + +- Dense update + + Every trainer has it's own full copy of the model. Every model + update will update the entire model. + +- Sparse update + + The training input is sparse, and the trainer does not have the + entire model. It will only download the sub-model necessary related + to the input. When updating the model, only the sub-model related to + the training input is updated. + + +#### Pservers Saving Model + +The benefit of letting pservers save model is they have the entire +model all the time. However, since pservers are on different nodes, it +requires a merging process to merge model shards into the same +model. Thus requires the pservers to write models to a distributed +filesystem, making the checkpoint shards visible to the merge program. + +#### Trainer Saving Model + +The benefit of letting one trainer to save the model is it does not +require a distributed filesystem. And it's reusing the same save model +logic when training locally - except when doing sparse update, the +trainer needs to download the entire model during the saving process. + +#### Conclusion + +Given trainer saving model does not require a distributed filesystem, +and is an intuitive extension to trainer saving model when training +locally, we decide to let the trainer save the model when doing +distributed training. + + +### Convert Model from Checkpoint + +TODO + + +## Timeline + +We first implement trainer save the model. Converting the latest +snapshot to a model will be a TODO for future. + + +## Trainer Save Model + +### Trainer Election + +One trainer will be elected as the one to save the model. When using +etcd, trainer ID is a randomly generated UUID, the trainer will +contact the master server requesting to save the model, and find out +if itself is elected. When the master server is not used, unique +trainer IDs will be given by the administrator, the trainer whose ID +is "0" is elected to save the model. + +### Model Save Path + +Each trainer will be given the directory to save the model. The +elected trainer will save the model to +`given-directory/trainerID`. Since the trainer ID is unique, this +would prevent concurrent save to the same file when multiple trainers +are elected to save the model when split-brain problem happens. + +### What Happens When Model Is Saving + +It takes some time to save model, we need to define what will happen +when save model is taking place. + +When doing dense update, the trainer uses the local model. Pservers +does not need to pause model update. + +When doing sparse update. The trainer needs to download the entire +model while saving. To get the most accurate model, the model update +needs to be paused before the download starts and resumed after the +download finishes. Otherwise, the trainer gets a model that is +"polluted": some part of the model is old, some part of the model is +new. + +It's unclear that the "polluted" model will be inferior due to the +stochastic nature of deep learning, and pausing the model update will +add more complexity to the system. Since supporting sparse update is a +TODO item. We defer the evaluation of pause the model update or not +during saving model to the future. diff --git a/doc/_sources/design/cluster_train/submit-job.md.txt b/doc/_sources/design/cluster_train/submit-job.md.txt new file mode 100644 index 00000000000..8377d5489dc --- /dev/null +++ b/doc/_sources/design/cluster_train/submit-job.md.txt @@ -0,0 +1,127 @@ +# Submit a Distributed Training Job + +The user can submit a distributed training job with Python code, rather than with a command-line interface. + +## Runtime Environment On Kubernetes + +For a distributed training job, there is two Docker image called *runtime Docker image* and *base Docker image*. The runtime Docker image is the Docker image that gets scheduled by Kubernetes to run during training. The base Docker image is for building the runtime Docker image. + +### Base Docker Image + +Usually, the base Docker image is PaddlePaddle product Docker image including paddle binary files and python package. And of course, users can specify any image name hosted on any docker registry which users have the access right. + +### Runtime Docker Image + +The trainer package which user upload and some Python dependencies are packaged into a runtime Docker image based on base Docker image. + +- Handle Python Dependencies + + You need to provide requirements.txt file in your `trainer-package` folder. Example: + + ```txt + pillow + protobuf==3.1.0 + ``` + More [details](https://pip.readthedocs.io/en/1.1/requirements.html) about requirements, an example project looks like: + ```bash + paddle_example + |-quick_start + |-trainer.py + |-dataset.py + |-requirements.txt + ``` + +## Submit Distributed Training Job With Python Code + + +- `paddle.job.dist_train()` will call the Job Server API `/v1/packages` to upload the trainer package and save them on CephFS, and then call `/v1/trainer/job` to submit the PaddlePaddle distributed job. +- `/v1/trainer/job` will start a building job for preparing the runtime Docker image. When the building job is finished, Job Server will submit the PaddlePaddle distributed job to Kubernetes. +- *NOTE*: For the first version, we will not prepare the runtime Docker image, instead, the package is uploaded to Paddle Cloud, and Paddle Cloud will mount the package in a temporary folder into the base Docker image. We will not support custom Python dependencies in the first version as well. + +You can call `paddle.job.dist_train` and provide distributed training configuration as the parameters: +```python +paddle.job.dist_train( + trainer=dist_trainer(), + paddle_job=PaddleJob( + job_name = "paddle-cloud", + entry_point = "python %s"%__file__, + trainer_package = "/example/word2vec", + image = "yancey1989/paddle-job", + trainers = 10, + pservers = 3, + trainer_cpu = 1, + trainer_gpu = 1, + trainer_mem = "10G", + pserver_cpu = 1, + pserver_mem = "2G" + )) +``` + +The parameter `trainer` of `paddle.job.dist_train` is a function and you can implement it as follows: +```python +def dist_trainer(): + def trainer_creator(): + trainer = paddle.v2.trainer.SGD(...) + trainer.train(...) + return trainer_creator +``` + +The pseudo code of `paddle.job.dist_train` is as follows: +```python +def dist_train(trainer, paddle_job): + # if the code is running on cloud, set PADDLE_ON_CLOUD=YES + if os.getenv("RUNNING_ON_CLOUD", "NO") == "NO": + #submit the paddle job + paddle_job.submit() + else: + #start the training + trainer() +``` +### PaddleJob Parameters +parameter | type | explanation + --- | --- | --- +job_name | str | the unique name for the training job +entry_point | str | entry point for startup trainer process +trainer_package | str | trainer package file path which user have the access right +image|str|the [base image](#base-docker-image) for building the [runtime image](#runtime-docker-image) +pservers|int| Parameter Server process count +trainers|int| Trainer process count +pserver_cpu|int| CPU count for each Parameter Server process +pserver_mem|str| memory allocated for each Parameter Server process, a plain integer using one of these suffixes: E, P, T, G, M, K +trainer_cpu|int| CPU count for each Trainer process +trainer_mem|str| memory allocated for each Trainer process, a plain integer using one of these suffixes: E, P, T, G, M, K +trainer_gpu|int| GPU count for each Trainer process, if you only want CPU, do not set this parameter + +### Deploy Parameter Server, Trainer and Master Process + - Deploy PaddlePaddle Parameter Server processes, it's a Kubernetes ReplicaSet. + - Deploy PaddlePaddle Trainer processes, it's a Kubernetes Job. + - Deploy PaddlePaddle Master processes, it's a Kubernetes ReplicaSet. + +## Job Server + +- RESTful API + + Job server provides RESTful HTTP API for receiving the trainer package and displaying + PaddlePaddle job related informations. + - `POST /v1/package` receive the trainer package and save them on CephFS + - `POST /v1/trainer/job` submit a trainer job + - `GET /v1/jobs/` list all jobs + - `GET /v1/jobs/` the status of a job + - `DELETE /v1/jobs/` delete a job + - `GET /v1/version` job server version + +- Build Runtime Docker Image on Kubernetes + + `paddle.job.dist_train` will upload the trainer package to Job Server, save them on the distributed filesystem, and then start up a job for building the runtime Docker image that gets scheduled by Kubernetes to run during training. + + There are some benefits for building runtime Docker image on JobServer: + - On Paddle Cloud, users will run the trainer code in a Jupyter Notebook which is a Kubernetes Pod, if we want to execute `docker build` in the Pod, we should mount the host's `docker.sock` to the Pod, user's code will connect the host's Docker Engine directly, it's not safe. + - Users only need to upload the training package files, does not need to install docker engine, docker registry as dependencies. + - If we want to change another image type, such as RKT, users do not need to care about it. + +- Deploy Parameter Server, Trainer and Master Processes + + `POST /v1/trainer/job` receives the distributed training parameters, and deploy the job as follows: + - Deploy PaddlePaddle Parameter Server processes, it's a Kubernetes ReplicaSet. + - Deploy PaddlePaddle Trainer processes, it's a Kubernetes Job. + - Deploy PaddlePaddle Master processes, it's a Kubernetes ReplicaSet. diff --git a/doc/_sources/design/evaluator.md.txt b/doc/_sources/design/evaluator.md.txt new file mode 100644 index 00000000000..11cc129d569 --- /dev/null +++ b/doc/_sources/design/evaluator.md.txt @@ -0,0 +1,58 @@ +## Evaluator Design + +### Problem Statement + +During training or inference, we provide an evaluation function to measure the model performance, for example, accuracy, precision, etc. In the operator based framework design, the data passes through the network pipeline batch by batch. As a result, inside the operator, we only calculate the metrics for one minibatch. Thus, we need to provide a mechanism to calculate the metrics for each N pass/batch the user wants. + +### Evaluator Design +Currently, every operation is expressed in the graph. We divide the evaluator process into three steps. + +1. Initialize the metric state and add it into the block. + +2. Calculate the concerned metrics for every mini-batch. The single evaluator operator is only responsible for calculating the necessary statistics for one mini-batch. For example, the accuracy operator only calculates the accuracy for a minibatch data if run once. + + +3. Merge the mini-batch statistics to form the evaluation result for multiple mini-batches. When it comes to distributed training/Multi-GPU training, aggregate the value from different devices. + +### Implementation +This design is shown in the Python API. +Each metric operator needs to caculate the metric statistic and return the batch-aware states. Python side is responsible for accumulating the states for each pass. + + +```python +class Evaluator(object): + """ + Evaluator Base class. + """ + def __init__(self, name, **kwargs): + """ + Different evaluator may has different metric states. E.g, Accuracy need two variables, total and right sample counts. + Auc need four variables, `true_positives`, + `true_negatives`, `false_positives` and `false_negatives`. So every evaluator should create its needed variables and append to main_program + + The initialization of Evaluator should be responsible for: + create metric states and append to the main_program + """ + pass + + def _update_ops(self, input, label, **kwargs) + """ + Add mini-batch evaluator caculate operators to the main_program. + Add increment operator to accumulate the metric states. + """ + + + def reset(self, executor, reset_program=None): + """ + Reset metric states at the begin of each pass/user specified batch number. + Execute the reset_program to reset the states. + """ + + + def eval(self, executor, eval_program=None): + """ + Merge the mini-batch statistics to form the evaluation result for multiple mini-batches. + Execute the eval_program and return the result. + """ + return eval_result +``` diff --git a/doc/_sources/design/executor.md.txt b/doc/_sources/design/executor.md.txt new file mode 100644 index 00000000000..b5fb6c5c3c1 --- /dev/null +++ b/doc/_sources/design/executor.md.txt @@ -0,0 +1,23 @@ +# Executor Design Doc + +## Motivation + +We use executor to do the runtime evaluation of a `ProgramDesc`. + +## Overview + +An executor takes a `ProgramDesc`, a `block_id` and a `Scope`. The `ProgramDesc` is a list of blocks and each block contains the protobuf definition of all the parameters and operators. The `block_id` specifies the entrance block. And the `Scope` is the container of all the variable instance, which is persistent throughout different runs. + +### What does executor do? + +It evaluates all the operators in the `block_id`th block of a `ProgramDesc`. + +### What does executor NOT do? + +It does not do runtime optimization, meaning intelligently parse the dependency of each op a choose which one to be run and in which order they should be run. + +It does not do graph partitioning, meaning dividing the `ProgramDesc` into several small pieces and executing them on different devices. + +## Implementation + +`Executor` evaluates a `ProgramDesc`. Essentially, it instantiates Variables and Operators, then run all the operators in sequence. [[code]](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/executor.cc) diff --git a/doc/_sources/design/file_manager/README.md.txt b/doc/_sources/design/file_manager/README.md.txt new file mode 100644 index 00000000000..3df10d801e5 --- /dev/null +++ b/doc/_sources/design/file_manager/README.md.txt @@ -0,0 +1,87 @@ +# FileManager设计文档 +## 目标 +在本文档中,我们设计说明了名为FileManager系统,方便用户上传自己的训练数据以进行分布式训练 + +主要功能包括: + +- 提供常用的命令行管理命令管理文件和目录 +- 支持大文件的断点上传、下载 + +## 名词解释 +- PFS:是`Paddlepaddle cloud File System`的缩写,是对用户文件存储空间的抽象,与之相对的是local filesystem。目前我们用CephFS来搭建。 +- [CephFS](http://docs.ceph.com/docs/master/cephfs/):一个POSIX兼容的文件系统。 +- Chunk:逻辑划上文件分块的单位。 + +## 模块 +### 架构图 + + +### PFSClient +- 功能: 详细设计[link](./pfs/pfsclient.md) + - 提供用户管理文件的命令 + - 需要可以跨平台执行 + +- 双向验证 + PFSClient需要和Ingress之间做双向验证[tls](#tls),所以用户需要首先在`cloud.paddlepaddle.org`上注册一下,申请用户空间,并且把系统生成的CA(certificate authority)、Key、CRT(CA signed certificate)下载到本地,然后才能使用PFSClient。 + +### [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) +- 功能: + 提供七层协议的反向代理、基于粘性会话的负载均衡功能。 + +- 透传用户身份的办法 + Ingress需要把PFSClient的身份信息传给PFSServer,配置的方法参考[link](http://www.integralist.co.uk/posts/clientcertauth.html#3) + +### PFSServer +PFSServer提供RESTful API接口,接收处理PFSClient端的文件管理请求,并且把结果返回PFSClient端。 + +RESTful API + +- /api/v1/files + - `GET /api/v1/files`: Get metadata of files or directories. + - `POST /api/v1/files`: Create files or directories. + - `PATCH /api/v1/files`: Update files or directories. + - `DELETE /api/v1/files`: Delete files or directories. + +- /api/v1/file/chunks + - `GET /api/v1/storage/file/chunks`: Get chunks's metadata of a file. + +- /api/v1/storage/files + - `GET /api/v1/storage/files`: Download files or directories. + - `POST /api/v1/storage/files`: Upload files or directories. + +- /api/v1/storage/file/chunks + - `GET /api/v1/storage/file/chunks`: Download chunks's data. + - `POST /api/v1/storage/file/chunks`: Upload chunks's data. + +## 文件传输优化 + +### 分块文件传输 +用户文件可能是比较大的,上传到Cloud或者下载到本地的时间可能比较长,而且在传输的过程中也可能出现网络不稳定的情况。为了应对以上的问题,我们提出了Chunk的概念,一个Chunk由所在的文件偏移、数据、数据长度及校验值组成。文件的上传和下载都是通过对Chunk的操作来实现的。由于Chunk比较小(默认256K),完成一个传输动作完成的时间也比较短,不容易出错。PFSClient需要在传输完毕最后一个Chunk的时候检查destination文件的MD5值是否和source文件一致。 + +一个典型的Chunk如下所示: + +``` +type Chunk struct { + fileOffset int64 + checksum uint32 + len uint32 + data []byte +} +``` + +### 生成sparse文件 +当destination文件不存在或者大小和source文件不一致时,可以用[Fallocate](https://Go.org/pkg/syscall/#Fallocate)生成sparse文件,然后就可以并发写入多个Chunk。 + +### 覆盖不一致的部分 +文件传输的的关键在于需要PFSClient端对比source和destination的文件Chunks的checksum是否保持一致,不一致的由PFSClient下载或者传输Chunk完成。这样已经传输成功的部分就不用重新传输了。 + +## 用户使用流程 +参考[link](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/cluster_train/data_dispatch.md) + +## 框架生成 +用[swagger](https://github.com/swagger-api/swagger-codegen)生成PFSClient和PFSServer的框架部分,以便我们可以把更多的精力放到逻辑本身上。 + +## 参考文档 +-
[TLS complete guide](https://github.com/k8sp/tls/blob/master/tls.md) +- [aws.s3](http://docs.aws.amazon.com/cli/latest/reference/s3/) +- [linux man document](https://linux.die.net/man/) diff --git a/doc/_sources/design/file_manager/pfs/pfsclient.md.txt b/doc/_sources/design/file_manager/pfs/pfsclient.md.txt new file mode 100644 index 00000000000..56bc70c54bb --- /dev/null +++ b/doc/_sources/design/file_manager/pfs/pfsclient.md.txt @@ -0,0 +1,129 @@ +# PFSClient + +## Description +The `pfs` command is a Command Line Interface to manage your files on PaddlePaddle Cloud + +## Synopsis +``` +paddle [options] pfs [parameters] +``` + +## Options +``` +--profile (string) + Use a specific profile from your credential file. + +--help (string) + Display more information about command + +--version + Output version information and exit + +--debug + Show detailed debugging log + +--only-show-errors (boolean) + Only errors and warnings are displayed. All other output is suppressed. +``` + +## Path Arguments +When using a command, we need to specify path arguments. There are two path argument type: `localpath` and `pfspath`. + +A `pfspath` begin with `/pfs`, eg: `/pfs/$DATACENTER/home/$USER/folder`. + +[Here](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/cluster_train/data_dispatch.md#上传训练文件) is how to config datacenters. + +## order of Path Arguments +Commonly, if there are two path arguments, the first is the source, and the second is the destination. + +## Subcommonds +- rm - remove files or directories + +``` +Synopsis: + rm [-r] [-v] ... + +Options: + -r + Remove directories and their contents recursively + -v + Cause rm to be verbose, showing files after they are removed. + +Examples: + paddle pfs rm /pfs/$DATACENTER/home/$USER/file + paddle pfs rm -r /pfs/$DATACENTER/home/$USER/folder +``` +- mv - move (rename) files + +``` +Synopsis: + mv [-f | -n] [-v] + mv [-f | -n] [-v] ... + mv [-f | -n] [-v] + mv [-f | -n] [-v] ... + mv [-f | -n] [-v] + mv [-f | -n] [-v] ... + +Options: + -f + Do not prompt for confirmation before overwriting the destination path. (The -f option overrides previous -n options.) + -n + Do not overwrite an existing file. (The -n option overrides previous -f options.) + -v + Cause mv to be verbose, showing files after they are moved. + +Examples: + paddle pfs mv ./text1.txt /pfs/$DATACENTER/home/$USER/text1.txt +``` +- cp - copy files or directories + +``` +Synopsis: + cp [-r] [-f | -n] [-v] [--preserve--links] + cp [-r] [-f | -n] [-v] [--preserve--links] ... + cp [-r] [-f | -n] [-v] [--preserve--links] + cp [-r] [-f | -n] [-v] [--preserve--links] ... + cp [-r] [-f | -n] [-v] [--preserve--links] + cp [-r] [-f | -n] [-v] [--preserve--links] ... + +Options: + -r + Copy directories recursively + -f + Do not prompt for confirmation before overwriting the destination path. (The -f option overrides previous -n options.) + -n + Do not overwrite an existing file. (The -n option overrides previous -f options.) + -v + Cause cp to be verbose, showing files after they are copied. + --preserve--links + Reserve links when copy links + +Examples: + paddle pfs cp ./file /pfs/$DATACENTER/home/$USER/file + paddle pfs cp /pfs/$DATACENTER/home/$USER/file ./file +``` +- ls- list files + +``` +Synopsis: + ls [-r] ... + +Options: + -R + List directory(ies) recursively + +Examples: + paddle pfs ls /pfs/$DATACENTER/home/$USER/file + paddle pfs ls /pfs/$DATACENTER/home/$USER/folder +``` + +- mkdir - mkdir directory(ies) +Create intermediate directory(ies) as required. + +``` +Synopsis: + mkdir ... + +Examples: + paddle pfs mkdir /pfs/$DATACENTER/home/$USER/folder +``` diff --git a/doc/_sources/design/float16.md.txt b/doc/_sources/design/float16.md.txt new file mode 100644 index 00000000000..1ea95ed6b5d --- /dev/null +++ b/doc/_sources/design/float16.md.txt @@ -0,0 +1,105 @@ +# Design Doc: float16 + +## Why float16 +Half precision (float16) is a binary floating-point format that occupies 16 bits in memory. float16 is half the size of traditional 32-bit single precision format (float) and has lower precision and smaller range. + +When high precision computation is not required, using float16 data type could potentially + +- reduce storage space, memory bandwidth, and power usages; +- increase the chance of data fitting into a smaller cache of lower latency; +- provide arithmetic speed up if supported by hardware. + +## Survey of current float16 support +A brief survey of float16 support on different compilers, hardwares, and libraries can be found below. Interested readers can refer to [link1](https://github.com/PaddlePaddle/Paddle/issues/4853) and [link2](https://github.com/Xreki/Xreki.github.io/blob/master/multi_data_types_in_dl_framework/ppt/float16_and_quantized_type.md) for more info. + +The goal of float16 is to serve as a key for the executor to find and run the correct version of compute method specialized for float16 in operator kernel. It should be compatible with various natively supported float16 implementations including `__half` for cuda, `float16_t` for ARM, and `Eigen::half` for Eigen to make writing customized float16 kernels easier. + +### Compiler +- nvcc supports `__half` data type after CUDA 7.5. +- `__fp16` or `float16_t` is supported as storage type for gcc >= 6.1 and clang >= 3.4. +- `__fp16` or `float16_t` is supported as arithmetic type for gcc >= 7.1 and clang >= 3.9. + +### Hardware +- `__half` is supported on GPU with compute capability >= 5.3. +- `__fp16` is supported as storage type for ARMv7-A, ARMv8-A, and above. +- `__fp16` is supported as arithmetic type after ARMv8.2-A (currently, the only microarchitecture implementing ARMv8.2-A is ARM Cortex-A75, which is announced in May 2017. There seems to be no application processors currently available on market that adopts this architecture. It is reported that Qualcomm Snapdragon 845 uses Cortex-A75 design and will be available in mobile devices in early 2018). + +### Libraries +- [Eigen](https://github.com/RLovelett/eigen) >= 3.3 supports float16 calculation on both GPU and CPU using the `Eigen::half` class. It is mostly useful for Nvidia GPUs because of the overloaded arithmetic operators using cuda intrinsics. It falls back to using software emulation on CPU for calculation and there is no special treatment to ARM processors. +- [ARM compute library](https://github.com/ARM-software/ComputeLibrary) >= 17.02.01 supports NEON FP16 kernels (requires ARMv8.2-A CPU). + +### CUDA version issue +There are currently three versions of CUDA that supports `__half` data type, namely, CUDA 7.5, 8.0, and 9.0. +CUDA 7.5 and 8.0 define `__half` as a simple struct that has a `uint16_t` data (see [`cuda_fp16.h`](https://github.com/ptillet/isaac/blob/9212ab5a3ddbe48f30ef373f9c1fb546804c7a8c/include/isaac/external/CUDA/cuda_fp16.h)) as follows: +``` +typedef struct __align__(2) { + unsigned short x; +} __half; + +typedef __half half; +``` +This struct does not define any overloaded arithmetic operators. So you have to directly use `__hadd` instead of `+` to correctly add two half types: +``` +__global__ void Add() { + half a, b, c; + c = __hadd(a, b); // correct + c = a + b; // compiler error: no operator "+" matches these operands +} +``` +CUDA 9.0 provides a major update to the half data type. The related code can be found in the updated [`cuda_fp16.h`](https://github.com/ptillet/isaac/blob/master/include/isaac/external/CUDA/cuda_fp16.h) and the newly added [`cuda_fp16.hpp`](https://github.com/ptillet/isaac/blob/master/include/isaac/external/CUDA/cuda_fp16.hpp). + +Essentially, CUDA 9.0 renames the original `__half` type in 7.5 and 8.0 as `__half_raw`, and defines a new `__half` class type that has constructors, conversion operators, and also provides overloaded arithmetic operators such as follows: +``` +typedef struct __CUDA_ALIGN__(2) { + unsigned short x; +} __half_raw; + + +struct __CUDA_ALIGN__(2) __half { +protected: + unsigned short __x; +public: + // constructors and conversion operators from/to + // __half_raw and other built-in data types +} + +typedef __half half; + +__device__ __forceinline__ +__half operator+(const __half &lh, const __half &rh) { + return __hadd(lh, rh); +} + +// Other overloaded operators +``` +This new design makes `c = a + b` work correctly for CUDA half data type. + +## Implementation +The float16 class holds a 16-bit `uint16_t` data internally. +``` +struct float16 { + uint16_t x; +}; +``` + +float16 supports the following features: + - constructors / assignment operators that take input from primitive data types including bool, integers of various length, float, and double. + - constructors / assignment operators that take input from `__half` on cuda, `float16_t` on ARM, and `Eigen::half` on Eigen. + - conversion operators to primitive data types and half precision data types on cuda, ARM and Eigen. + - overloaded arithmetic operators for cuda, arm, and non-arm cpu, respectively. These operators will take advantage of the cuda and ARM intrinsics on the corresponding hardware. + +To support the above features, two fundamental conversion functions are provided: +``` +float16 float_to_half_rn(float f); // convert to half precision in round-to-nearest-even mode +float half_to_float(float16 h); +``` +which provides one-to-one conversion between float32 and float16. These twos functions will do different conversion routines based on the current hardware. CUDA/ARM instrinsics will be used when the corresonding hardware is available. If the hardware or compiler level does not support float32 to float16 conversion, software emulation will be performed to do the conversion. + +## To do +After float16 class is available, some of the future items are below: + +- Update pybind/tensor_py.h to bind c++ float16 with numpy float16. + +- Modify `GetKernelType()` method in `framework/operator.h` to make it compatible with float16. + +- Create a type-casting operator that can convert the data type in tensor between float16 and other types. diff --git a/doc/_sources/design/functions_operators_layers.md.txt b/doc/_sources/design/functions_operators_layers.md.txt new file mode 100644 index 00000000000..984b59f4c69 --- /dev/null +++ b/doc/_sources/design/functions_operators_layers.md.txt @@ -0,0 +1,100 @@ +# Design Doc: Functions, Operators, and Layers + +In a DL system, we can compose one or more fine grained operators into a coarse grained one. For example, the FC layer can be composed of a multiplication operator and an add operator. + +Historically, some fine grained operations are known as operators, and some coarse level ones are known as layers. But we need a well-defined separation. + +In general, operators are those very fine grained operations, e.g., mul and add. In the implementation, we can write them as C++ functions: + +```c++ +template T add(T x, T y) { return x + y; } +template T mul(T x, T y) { return x * y; } +``` + +Then we can wrap them into operators which are C++ classes and can be created from Python bindings by name. A C macro can do this. For example, the following macro invocation + +```c++ +#define MAKE_FUNCTION_OPERATOR(mul); +``` + +generates + +```c++ +template class mulOp : public OperatorBase {...}; +REGISTER_OP(mulOp, "mul"); +``` + +so that in Python we can create operator mul by: + +```python +X1 = Var() +X2 = Var() +Y = Var() +paddle.cpp.create_operator("mul", input=[X1, X2], output=Y) +``` + +Also, at the same time, we can compose a coarse level C++ operator class by composing functions `mul` and `add`: + +```c++ +template +class FCOp : public OperatorBase { + public: + void Run(...) { + add(mul(Input("X"), Input("W")), Input("b"); + } +}; +REGISTER_OP(FCOp, "fc"); +``` + +We need to support such composition in Python as well. To do so, we need a higher level Python wrapping of operator creation than `paddle.cpp.create_operator`. This higher level operator API should be compatible with the layer API. + +Let's explain using an example. Suppose that we are going to compose the FC using mul and add in Python, we'd like to have Python functions `mul` and `add` defined in module `operator`: + +```python +def operator.mul(X1, X2): + O = Var() + paddle.cpp.create_operator("mul", input={X1, Y1}, output=O) + return O + +def operator.add(X1, X2): + O = Var() + paddle.cpp.create_operator("add", input={X1, X2}, output=O) + return O +``` + +Above code snippets are automatically generated. Given them, users can define + +```python +def layer.fc(X): + W = Var() + b = Var() + return operator.add(operator.mul(X, W), b) +``` + +If we don't have `operator.mul` and `operator.add`, the definiton of `layer.fc` would be complicated: + +```python +def layer.fc(X): + W = Var() + b = Var() + O1 = Var() + paddle.cpp.create_operator("mul", input=[X, W], output=O1) + O2 = Var() + paddle.cpp.create_operator("add", input=[O1, b], output=O2) + return O2 +``` + +We'd like to have Python bindings to operators in package `paddle.operator`, and Python compositions of operators in package `paddle.layer`. So we have the following concepts in above illustrative example: + + +| C++ functions/functors | mul | add | | | +|------------------------|--------------|--------------|-------------|----------| +| C++ operator class | mulOp | addOp | FCOp | | +| Python binding | operator.mul | operator.add | operator.fc | | +| Python function | | | | layer.fc | + + +This is how we differentiate layer and operators in PaddlePaddle: + +- those defined in C++ and have a lightweighted Python wrapper in module `operators` are operators; whereas +- those who don't have C++ implementations but a Python implementation that compose C++ operators are known as layers. diff --git a/doc/_sources/design/gan_api.md.txt b/doc/_sources/design/gan_api.md.txt new file mode 100644 index 00000000000..fb41df8615f --- /dev/null +++ b/doc/_sources/design/gan_api.md.txt @@ -0,0 +1,253 @@ +# Design for GAN + +GAN (General Adversarial Net [https://arxiv.org/abs/1406.2661]) is an important model for unsupervised learning and widely used in many areas. + +It applies several important concepts in machine learning system design, including building and running subgraphs, dependency tracing, different optimizers in one executor and so forth. + +In our GAN design, we wrap it as a user-friendly easily customized python API to design different models. We take the conditional DC-GAN (Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks [https://arxiv.org/abs/1511.06434]) as an example due to its good performance on image generation. + +

+
+Figure 1. The overall running logic of GAN. The black solid arrows indicate the forward pass; the green dashed arrows indicate the backward pass of generator training; the red dashed arrows indicate the backward pass of the discriminator training. The BP pass of the green (red) arrow should only update the parameters in the green (red) boxes. The diamonds indicate the data providers. d\_loss and g\_loss marked in red and green are the two targets we would like to run. +

+ +The operators, layers and functions required/optional to build a GAN demo is summarized in https://github.com/PaddlePaddle/Paddle/issues/4563. + +

+
+Figure 2. Photo borrowed from the original DC-GAN paper. +

+ +## The Conditional-GAN might be a class. +This design we adopt the popular open source design in https://github.com/carpedm20/DCGAN-tensorflow and https://github.com/rajathkmp/DCGAN. It contains following data structure: + +- DCGAN(object): which contains everything required to build a GAN model. It provides following member functions methods as API: + +- __init__(...): Initialize hyper-parameters (like conv dimension and so forth), and declare model parameters of discriminator and generator as well. + +- generator(z, y=None): Generate a fake image from input noise z. If the label y is provided, the conditional GAN model will be chosen. +Returns a generated image. + +- discriminator(image): +Given an image, decide if it is from a real source or a fake one. +Returns a 0/1 binary label. + +- build_model(self): +build the whole GAN model, define training loss for both generator and discrimator. + +## Discussion on Engine Functions required to build GAN +- Trace the tensor and variable dependency in the engine executor. (Very critical, otherwise GAN can'be be trained correctly) +- Different optimizers responsible for optimizing different loss. + +To be more detailed, we introduce our design of DCGAN as following: + +### Class member Function: Initializer +- Set up hyper-parameters, including condtional dimension, noise dimension, batch size and so forth. +- Declare and define all the model variables. All the discriminator parameters are included in the list self.theta_D and all the generator parameters are included in the list self.theta_G. +```python +class DCGAN(object): + def __init__(self, y_dim=None): + + # hyper parameters + self.y_dim = y_dim # conditional gan or not + self.batch_size = 100 + self.z_dim = z_dim # input noise dimension + + # define parameters of discriminators + self.D_W0 = pd.Variable(shape=[3,3, 1, 128], data=pd.gaussian_normal_randomizer()) + self.D_b0 = pd.Variable(np.zeros(128)) # variable also support initialization using a numpy data + self.D_W1 = pd.Variable(shape=[784, 128], data=pd.gaussian_normal_randomizer()) + self.D_b1 = pd.Variable(np.zeros(128)) # variable also support initialization using a numpy data + self.D_W2 = pd.Varialble(np.random.rand(128, 1)) + self.D_b2 = pd.Variable(np.zeros(128)) + self.theta_D = [self.D_W0, self.D_b0, self.D_W1, self.D_b1, self.D_W2, self.D_b2] + + # define parameters of generators + self.G_W0 = pd.Variable(shape=[784, 128], data=pd.gaussian_normal_randomizer()) + self.G_b0 = pd.Variable(np.zeros(128)) # variable also support initialization using a numpy data + self.G_W1 = pd.Variable(shape=[784, 128], data=pd.gaussian_normal_randomizer()) + self.G_b1 = pd.Variable(np.zeros(128)) # variable also support initialization using a numpy data + self.G_W2 = pd.Varialble(np.random.rand(128, 1)) + self.G_b2 = pd.Variable(np.zeros(128)) + self.theta_G = [self.G_W0, self.G_b0, self.G_W1, self.G_b1, self.G_W2, self.G_b2] +``` + +### Class member Function: Generator +- Given a noisy input z, returns a fake image. +- Concatenation, batch-norm, FC operations required; +- Deconv layer required, which is missing now... +```python +class DCGAN(object): + def generator(self, z, y = None): + # input z: the random noise + # input y: input data label (optional) + # output G_im: generated fake images + + if not self.y_dim: + z = pd.layer.concat(1, [z, y]) + + G_h0 = pd.layer.fc(z, self.G_w0, self.G_b0) + G_h0_bn = pd.layer.batch_norm(G_h0) + G_h0_relu = pd.layer.relu(G_h0_bn) + + G_h1 = pd.layer.deconv(G_h0_relu, self.G_w1, self.G_b1) + G_h1_bn = pd.layer.batch_norm(G_h1) + G_h1_relu = pd.layer.relu(G_h1_bn) + + G_h2 = pd.layer.deconv(G_h1_relu, self.G_W2, self.G_b2)) + G_im = pd.layer.tanh(G_im) + return G_im +``` + +### Class member function: Discriminator +- Given a noisy input z, returns a fake image. +- Concatenation, Convolution, batch-norm, FC, Leaky-ReLU operations required; +```python +class DCGAN(object): + def discriminator(self, image): + # input image: either generated images or real ones + # output D_h2: binary logit of the label + + D_h0 = pd.layer.conv2d(image, w=self.D_w0, b=self.D_b0) + D_h0_bn = pd.layer.batchnorm(h0) + D_h0_relu = pd.layer.lrelu(h0_bn) + + D_h1 = pd.layer.conv2d(D_h0_relu, w=self.D_w1, b=self.D_b1) + D_h1_bn = pd.layer.batchnorm(D_h1) + D_h1_relu = pd.layer.lrelu(D_h1_bn) + + D_h2 = pd.layer.fc(D_h1_relu, w=self.D_w2, b=self.D_b2) + return D_h2 +``` + +### Class member function: Build the model +- Define data readers as placeholders to hold the data; +- Build generator and discriminators; +- Define two training losses for discriminator and generator, respectively. +If we have execution dependency engine to back-trace all tensors, the module building our GAN model will be like this: +```python +class DCGAN(object): + def build_model(self): + if self.y_dim: + self.y = pd.data(pd.float32, [self.batch_size, self.y_dim]) + self.images = pd.data(pd.float32, [self.batch_size, self.im_size, self.im_size]) + self.faked_images = pd.data(pd.float32, [self.batch_size, self.im_size, self.im_size]) + self.z = pd.data(tf.float32, [None, self.z_size]) + + # step 1: generate images by generator, classify real/fake images with discriminator + if self.y_dim: # if conditional GAN, includes label + self.G = self.generator(self.z, self.y) + self.D_t = self.discriminator(self.images) + # generated fake images + self.sampled = self.sampler(self.z, self.y) + self.D_f = self.discriminator(self.G) + else: # original version of GAN + self.G = self.generator(self.z) + self.D_t = self.discriminator(self.images) + # generate fake images + self.sampled = self.sampler(self.z) + self.D_f = self.discriminator(self.images) + + # step 2: define the two losses + self.d_loss_real = pd.reduce_mean(pd.cross_entropy(self.D_t, np.ones(self.batch_size)) + self.d_loss_fake = pd.reduce_mean(pd.cross_entropy(self.D_f, np.zeros(self.batch_size)) + self.d_loss = self.d_loss_real + self.d_loss_fake + + self.g_loss = pd.reduce_mean(pd.cross_entropy(self.D_f, np.ones(self.batch_szie)) +``` + +If we do not have dependency engine but blocks, the module building our GAN model will be like this: +```python +class DCGAN(object): + def build_model(self, default_block): + # input data in the default block + if self.y_dim: + self.y = pd.data(pd.float32, [self.batch_size, self.y_dim]) + self.images = pd.data(pd.float32, [self.batch_size, self.im_size, self.im_size]) + # self.faked_images = pd.data(pd.float32, [self.batch_size, self.im_size, self.im_size]) + self.z = pd.data(tf.float32, [None, self.z_size]) + + # step 1: generate images by generator, classify real/fake images with discriminator + with pd.default_block().g_block(): + if self.y_dim: # if conditional GAN, includes label + self.G = self.generator(self.z, self.y) + self.D_g = self.discriminator(self.G, self.y) + else: # original version of GAN + self.G = self.generator(self.z) + self.D_g = self.discriminator(self.G, self.y) + self.g_loss = pd.reduce_mean(pd.cross_entropy(self.D_g, np.ones(self.batch_szie)) + + with pd.default_block().d_block(): + if self.y_dim: # if conditional GAN, includes label + self.D_t = self.discriminator(self.images, self.y) + self.D_f = self.discriminator(self.G, self.y) + else: # original version of GAN + self.D_t = self.discriminator(self.images) + self.D_f = self.discriminator(self.G) + + # step 2: define the two losses + self.d_loss_real = pd.reduce_mean(pd.cross_entropy(self.D_t, np.ones(self.batch_size)) + self.d_loss_fake = pd.reduce_mean(pd.cross_entropy(self.D_f, np.zeros(self.batch_size)) + self.d_loss = self.d_loss_real + self.d_loss_fake +``` +Some small confusion and problems with this design: +- D\_g and D\_f are actually the same thing, but has to be written twice; i.e., if we want to run two sub-graphs conceptually, the same codes have to be written twice if they are shared by the graph. +- Requires ability to create a block anytime, rather than in if-else or rnn only; + +## Main function for the demo: +Generally, the user of GAN just need to the following things: +- Define an object as DCGAN class; +- Build the DCGAN model; +- Specify two optimizers for two different losses with respect to different parameters. +```python +# pd for short, should be more concise. +from paddle.v2 as pd +import numpy as np +import logging + +if __name__ == "__main__": + # dcgan class in the default graph/block + # if we use dependency engine as tensorflow + # the codes, will be slightly different like: + # dcgan = DCGAN() + # dcgan.build_model() + with pd.block() as def_block: + dcgan = DCGAN() + dcgan.build_model(def_block) + + # load mnist data + data_X, data_y = self.load_mnist() + + # Two subgraphs required!!! + with pd.block().d_block(): + d_optim = pd.train.Adam(lr = .001, beta= .1) + d_step = d_optim.minimize(dcgan.d_loss, dcgan.theta_D) + with pd.block.g_block(): + g_optim = pd.train.Adam(lr = .001, beta= .1) + g_step = pd.minimize(dcgan.g_loss, dcgan.theta_G) + + # executor + sess = pd.executor() + + # training + for epoch in xrange(10000): + for batch_id in range(N / batch_size): + idx = ... + # sample a batch + batch_im, batch_label = data_X[idx:idx+batch_size], data_y[idx:idx+batch_size] + # sample z + batch_z = np.random.uniform(-1., 1., [batch_size, z_dim]) + + if batch_id % 2 == 0: + sess.run(d_step, + feed_dict = {dcgan.images: batch_im, + dcgan.y: batch_label, + dcgan.z: batch_z}) + else: + sess.run(g_step, + feed_dict = {dcgan.z: batch_z}) +``` + +# More thinking about dependency engine v.s. block design: +- What if we just want to run an intermediate result? Do we need to run the whole block/graph? +- Should we call eval() to get the fake images in the first stage? And then train the discriminator in the second stage? diff --git a/doc/_sources/design/graph.md.txt b/doc/_sources/design/graph.md.txt new file mode 100644 index 00000000000..7519a65df83 --- /dev/null +++ b/doc/_sources/design/graph.md.txt @@ -0,0 +1,70 @@ +# Design Doc: Computations as a Graph + +A primary goal of the refactorization of PaddlePaddle is a more flexible representation of deep learning computation, in particular, a graph of operators and variables, instead of sequences of layers as before. + +This document explains that the construction of a graph as three steps: + +- construct the forward part +- construct the backward part +- construct the optimization part + +## The Construction of a Graph + +Let us take the problem of image classification as a simple example. The application program that trains the model looks like: + +```python +x = layer.data("images") +l = layer.data("label") +y = layer.fc(x) +cost = layer.mse(y, l) +optimize(cost) +train(cost, reader=mnist.train()) +``` + +### Forward Part + +The first four lines of above program build the forward part of the graph. + +![](images/graph_construction_example_forward_only.png) + +In particular, the first line `x = layer.data("images")` creates variable x and a Feed operator that copies a column from the minibatch to x. `y = layer.fc(x)` creates not only the FC operator and output variable y, but also two parameters, W and b, and the initialization operators. + +Initialization operators are kind of "run-once" operators -- the `Run` method increments a class data member counter so to run at most once. By doing so, a parameter wouldn't be initialized repeatedly, say, in every minibatch. + +In this example, all operators are created as `OpDesc` protobuf messages, and all variables are `VarDesc`. These protobuf messages are saved in a `BlockDesc` protobuf message. + +### Backward Part + +The fifth line `optimize(cost)` calls two functions, `ConstructBackwardGraph` and `ConstructOptimizationGraph`. + +`ConstructBackwardGraph` traverses the forward graph in the `BlockDesc` protobuf message and builds the backward part. + +![](images/graph_construction_example_forward_backward.png) + +According to the chain rule of gradient computation, `ConstructBackwardGraph` would + +1. create a gradient operator G for each operator F, +1. make all inputs, outputs, and outputs' gradient of F as inputs of G, +1. create gradients for all inputs of F, except for those who don't have gradients, like x and l, and +1. make all these gradients as outputs of G. + +### Optimization Part + +For each parameter, like W and b created by `layer.fc`, marked as double circles in above graphs, `ConstructOptimizationGraph` creates an optimization operator to apply its gradient. Here results in the complete graph: + +![](images/graph_construction_example_all.png) + +## Block and Graph + +The word block and graph are interchangable in the desgin of PaddlePaddle. A [Block](https://github.com/PaddlePaddle/Paddle/pull/3708) is a metaphore of the code and local variables in a pair of curly braces in programming languages, where operators are like statements or instructions. A graph of operators and variables is a representation of the block. + +A Block keeps operators in an array `BlockDesc::ops` + +```protobuf +message BlockDesc { + repeated OpDesc ops = 1; + repeated VarDesc vars = 2; +} +``` + +in the order that they appear in user programs, like the Python program at the beginning of this article. We can imagine that in `ops`, we have some forward operators, followed by some gradient operators, and then some optimization operators. diff --git a/doc/_sources/design/graph_survey.md.txt b/doc/_sources/design/graph_survey.md.txt new file mode 100644 index 00000000000..6c6db08f463 --- /dev/null +++ b/doc/_sources/design/graph_survey.md.txt @@ -0,0 +1,232 @@ +## Survey on Graph + +Neural network framework often provides symbolic API for users to write network topology conveniently. This doc manily focus on symbolic API in most popular neural network frameworks, and try to find out how to parse symbolic configuration to a portable file, such as protobuf or json. + +### Mxnet + +The core concept of symbolic API is `Symbol`. Mxnet implements `Symbol` class in C++, and export to Python using C-API. Please refer to the comments in Mxnet: + + +`Symbol` is help class used to represent the operator node in Graph. +`Symbol` acts as an interface for building graphs from different components like Variable, Functor and Group. `Symbol` is also exported to python front-end (while Graph is not) to enable quick test and deployment. Conceptually, symbol is the final operation of a graph and thus including all the information required (the graph) to evaluate its output value. + + +A simple network topology wrote by Symbol is as follows: + +```python +def get_symbol(num_classes=10, **kwargs): + data = mx.symbol.Variable('data') + data = mx.symbol.Flatten(data=data) + fc1 = mx.symbol.FullyConnected(data = data, name='fc1', num_hidden=128) + act1 = mx.symbol.Activation(data = fc1, name='relu1', act_type="relu") + fc2 = mx.symbol.FullyConnected(data = act1, name = 'fc2', num_hidden = 64) + act2 = mx.symbol.Activation(data = fc2, name='relu2', act_type="relu") + fc3 = mx.symbol.FullyConnected(data = act2, name='fc3', num_hidden=num_classes) + mlp = mx.symbol.SoftmaxOutput(data = fc3, name = 'softmax') + return mlp +``` + + + +Varible here is actually a Symbol. Every basic Symbol will correspond to one Node, and every Node has its own NodeAttr. There is a op field in NodeAttr class, when a Symbol represents Variable(often input data), the op field is null. + +Symbol contains a data member, std::vector outputs, and NodeEntry cantains a poniter to Node. We can follow the Node pointer to get all the Graph. + +And Symbol can be saved to a Json file. + +Here is a detailed example: + +``` +>>> import mxnet as mx +>>> data = mx.symbol.Variable('data') +>>> print data.debug_str() +Variable:data + +>>> data = mx.symbol.Flatten(data=data) +>>> print data.debug_str() +Symbol Outputs: + output[0]=flatten0(0) +Variable:data +-------------------- +Op:Flatten, Name=flatten0 +Inputs: + arg[0]=data(0) version=0 + +>>> fc1 = mx.symbol.FullyConnected(data = data, name='fc1', num_hidden=128) +>>> print fc1.debug_str() +Symbol Outputs: + output[0]=fc1(0) +Variable:data +-------------------- +Op:Flatten, Name=flatten0 +Inputs: + arg[0]=data(0) version=0 +Variable:fc1_weight +Variable:fc1_bias +-------------------- +Op:FullyConnected, Name=fc1 +Inputs: + arg[0]=flatten0(0) + arg[1]=fc1_weight(0) version=0 + arg[2]=fc1_bias(0) version=0 +Attrs: + num_hidden=128 + +``` + + +### TensorFlow + + +The core concept of symbolic API is `Tensor`. Tensorflow defines `Tensor` in Python. Please refer to the comments in TensorFlow: + +A `Tensor` is a symbolic handle to one of the outputs of an `Operation`. It does not hold the values of that operation's output, but instead provides a means of computing those values in a TensorFlow [Session](https://www.tensorflow.org/api_docs/python/tf/Session). + +A simple example is as follows: + +```python + # Build a dataflow graph. + c = tf.constant([[1.0, 2.0], [3.0, 4.0]]) + d = tf.constant([[1.0, 1.0], [0.0, 1.0]]) + e = tf.matmul(c, d) + + # Construct a `Session` to execute the graph. + sess = tf.Session() + + # Execute the graph and store the value that `e` represents in `result`. + result = sess.run(e) +``` + + +The main method of `Tensor` is as follows: + + +```python +@property +def op(self): + """The `Operation` that produces this tensor as an output.""" + return self._op + +@property +def dtype(self): + """The `DType` of elements in this tensor.""" + return self._dtype + +@property +def graph(self): + """The `Graph` that contains this tensor.""" + return self._op.graph + +@property +def name(self): + """The string name of this tensor.""" + if not self._op.name: + raise ValueError("Operation was not named: %s" % self._op) + return "%s:%d" % (self._op.name, self._value_index) + +@property +def device(self): + """The name of the device on which this tensor will be produced, or None.""" + return self._op.device +``` + + +Tensor can be taken as target to run by session. Tensor contains all the information of Graph, and tracks data dependency. + + +Here is a detailed example: + + +``` +>>> import tensorflow as tf +>>> c = tf.constant([[1.0, 2.0], [3.0, 4.0]]) +>>> print c.graph + +>>> d = tf.constant([[1.0, 1.0], [0.0, 1.0]]) +>>> print d.graph + +>>> e = tf.matmul(c, d) +>>> print e.graph + +``` + +### Dynet + + +The core concept of symbolic API is `Expression`, and Dynet defines `Expression` class in C++. + + +A simple example is as follows: + +```cpp +ComputationGraph cg; +Expression W = parameter(cg, pW); + +Expression in = input(cg, xs[i]); +Expression label = input(cg, ys[i]); +Expression pred = W * in; +Expression loss = square(pred - label); +``` + +The input data and parameter are also represented by Expression. Every basci Expression corresponds to a Node. And input data is also a Node. + +Expression has a data member ComputationGraph, and ComputationGraph will be modified in users' configuring process. Expression can be a running target, beacuse Expression contains all dependency. + + +Here is a detailed example: + +write topology in C++ + +``` +ComputationGraph cg; +Expression W = parameter(cg, pW); +cg.print_graphviz(); + +Expression pred = W * xs[i]; +cg.print_graphviz(); + +Expression loss = square(pred - ys[i]); +cg.print_graphviz(); +``` + +compile and print + +``` +# first print +digraph G { + rankdir=LR; + nodesep=.05; + N0 [label="v0 = parameters({1}) @ 0x7ffe4de00110"]; +} +# second print +digraph G { + rankdir=LR; + nodesep=.05; + N0 [label="v0 = parameters({1}) @ 0x7ffe4de00110"]; + N1 [label="v1 = v0 * -0.98"]; + N0 -> N1; +} +# third print +digraph G { + rankdir=LR; + nodesep=.05; + N0 [label="v0 = parameters({1}) @ 0x7ffe4de00110"]; + N1 [label="v1 = v0 * -0.98"]; + N0 -> N1; + N2 [label="v2 = -1.88387 - v1"]; + N1 -> N2; + N3 [label="v3 = -v2"]; + N2 -> N3; + N4 [label="v4 = square(v3)"]; + N3 -> N4; +} +``` + +### Conclusion + + +Actually, Symbol/Tensor/Expression in Mxnet/TensorFlow/Dynet are the same level concepts. We use a unified name Expression here, this level concept has following features: + +- Users wirte topoloy with symbolic API, and all return value is Expression, including input data and parameter. +- Expression corresponds with a global Graph, and Expression can also be composed. +- Expression tracks all dependency and can be taken as a run target diff --git a/doc/_sources/design/if_else_op.md.txt b/doc/_sources/design/if_else_op.md.txt new file mode 100644 index 00000000000..26d140f06db --- /dev/null +++ b/doc/_sources/design/if_else_op.md.txt @@ -0,0 +1,51 @@ +# The `IfElse` Operator + +PaddlePaddle's `IfElse` operator differs from TensorFlow's: + +- the TensorFlow version takes a scalar boolean value as the condition so that the whole mini-batch goes to either the true or the false branch, whereas +- the PaddlePaddle version takes a vector of boolean value as the condition, and instances corresponding to true values go to the true branch, those corresponding to false values go to the false branch. + +## Example + +The following PaddlePaddle program shows the usage of the IfElse operator: + +```python +import paddle as pd + +x = minibatch([10, 20, 30]) # shape=[None, 1] +y = var(1) # shape=[1], value=1 +z = minibatch([10, 20, 30]) # shape=[None, 1] +cond = larger_than(x, 15) # [false, true, true] + +ie = pd.ifelse() +with ie.true_block(): + d = pd.layer.add(x, y) + ie.output(d, pd.layer.softmax(d)) +with ie.false_block(): + d = pd.layer.fc(z) + ie.output(d, d+1) +o1, o2 = ie(cond) +``` + +A challenge to implement the `IfElse` operator is to infer those variables to be split, or, say, to identify the variable of the mini-batch or those derived from the mini-batch. + +An equivalent C++ program is as follows: + +```c++ +namespace pd = paddle; + +int x = 10; +int y = 1; +int z = 10; +bool cond = false; +int o1, o2; +if (cond) { + int d = x + y; + o1 = z; + o2 = pd::layer::softmax(z); +} else { + int d = pd::layer::fc(z); + o1 = d; + o2 = d+1; +} +``` diff --git a/doc/_sources/design/infer_var_type.md.txt b/doc/_sources/design/infer_var_type.md.txt new file mode 100644 index 00000000000..d9d5397becb --- /dev/null +++ b/doc/_sources/design/infer_var_type.md.txt @@ -0,0 +1,78 @@ +# Design Doc: InferVarType + +## The Problem Posed + +The variable in our design can hold variant types. Such as `LoDTensor` and `SelectedRows`. An operator should be able to inference the variable types of its output. + +For example, a `lookup table` operator takes two `LoDTensor`; one is a float tensor as the embedding table, the other is an int tensor as word ID. The gradient operator of `lookup table` will generate a `SelectedRows` as its output. A `sum` operator can take both `LoDTensor` and `SelectedRows` as its inputs and will generate a `LoDTensor` if any of its inputs is `LoDTensor`, otherwise, the `sum` operator will generate `SelectedRows` as its output. + +The variable type will be constant at runtime. Every variable's type can either be set by the user (input data and parameter) or be inferred by the operator in compile time. + +## Proposed Solution + +The `InferVarType` is a compile-time function which is registered to each operator. The inferface of that function is: + + +```c++ +using InferVarTypeFN = std::function< + void (const OpDescBind& /*op_desc*/, BlockDescBind* /*block*/)>; +``` + +It takes an operator description as its input and will write the output variable type and store them in block description. + +The `InferVarTypeFN` will be registered in `OpInfo`, to replace `infer_var_type_` field. The `OpInfo` should be + +```cpp +struct OpInfo { + InferVarTypeFN infer_var_type_; + ... +}; +``` + +The default `InferVarType` will set output type as `LoDTensor`. It can be done by `GetInferVarType()`. + +```cpp +void DefaultInferVarType(const OpDescBind& op_desc, BlockDescBind* block) { + // set the output type of variable as `LoDTensor`. + // ... +} + +struct OpInfo { + InferVarTypeFN infer_var_type_; + InferVarTypeFN GetInferVarType() const { + if (infer_var_type_) { + return infer_var_type_; + } else { + return DefaultInferVarType; + } + } +}; +``` + +## Register InferVarType + +We provide a thin base class for registering an `InferVarTypeFN`. To use a base class will ease the implementation of registry since we can detect the registry entry is an `InferVarTypeFN` or not. + +```cpp +class VarTypeInferer { +public: + virtual void operator()(const OpDescBind& op_desc, BlockDescBind* block) const = 0; +} +``` + +Operator developers can write the specialize `VarTypeInferer` as follow. + +```cpp +class SpecialVarTypeInferer : public VarTypeInferer { +public: + virtual void operator()(const OpDescBind& op_desc, BlockDescBind* block) const { + // .. own logic + } +} +``` + +Then user can register the `InferVarType` just like `GradOpDescMaker` and `OpInfoMaker`. + +``` +REGISTER_OPERATOR(some_op, OpType, SpecialVarTypeInferer, ...); +``` diff --git a/doc/_sources/design/model_format.md.txt b/doc/_sources/design/model_format.md.txt new file mode 100644 index 00000000000..e29129fddf7 --- /dev/null +++ b/doc/_sources/design/model_format.md.txt @@ -0,0 +1,36 @@ +# Design Doc: Model Format + +## Motivation + +A model is an output of the training process. One complete model consists of two parts, the **topology** and the **parameters**. In order to support industrial deployment, the model format must be self-complete and must not expose any training source code. + +As a result, In PaddlePaddle, the **topology** is represented as a [ProgramDesc](https://github.com/PaddlePaddle/Paddle/blob/1c0a4c901c9fc881d120249c703b15d1c50dae7d/doc/design/program.md), which describes the model structure. The **parameters** contain all the trainable weights in the model. We must support large size parameters and efficient serialization/deserialization of parameters. + +## Implementation + +The topology is saved as a plain text in a detailed self-contain protobuf file. + +The parameters are saved as a binary file. As we all know, the protobuf message has a limit of [64M size](https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream#CodedInputStream.SetTotalBytesLimit.details). We have done a [benchmark experiment](https://github.com/PaddlePaddle/Paddle/pull/4610), which shows that protobuf is not fit for the task. + +As a result, we design a particular format for tensor serialization. By default, an arbitrary tensor in Paddle is a [LoDTensor](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/lod_tensor.md), and has a description information proto of [LoDTensorDesc](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/framework.proto#L99). We save the DescProto as the byte string header. It contains all the necessary information, such as the `dims`, and the `LoD` information in [LoDTensor](https://github.com/PaddlePaddle/Paddle/blob/1c0a4c901c9fc881d120249c703b15d1c50dae7d/paddle/framework/lod_tensor.md). A tensor stores values in a continuous memory buffer. For speed we dump the raw memory to disk and save it as the byte string content. So, the binary format of one tensor is, + +The table below shows a tensor's byte view in detail. Note that all the signed values are written in the little-endian format. + +|field name | type | description | +| --- | --- | --- | +| version | uint32_t | Version of saved file. Always 0 now. | +| tensor desc length | uint32_t | TensorDesc(Protobuf message) length in bytes. | +| tensor desc | void* | TensorDesc protobuf binary message | +| tensor data | void* | Tensor's data in binary format. The length of `tensor_data` is decided by `TensorDesc.dims()` and `TensorDesc.data_type()` | +| lod_level | uint64_t | Level of LoD | +| length of lod[0] | uint64_t | [Optional] length of lod[0] in bytes. | +| data of lod[0] | uint64_t* | [Optional] lod[0].data() | +| ... | ... | ... | + + + +## Summary + +- We introduce a model format. +- The model represented by its forward-pass computation procedure is saved in a **ProgramDesc** protobuf message. +- A bunch of specified format binary tensors describe the **parameters**. diff --git a/doc_cn/_sources/design/multi_language_interface/why_plain_c.md.txt b/doc/_sources/design/multi_language_interface/00.why_plain_c.md.txt similarity index 94% rename from doc_cn/_sources/design/multi_language_interface/why_plain_c.md.txt rename to doc/_sources/design/multi_language_interface/00.why_plain_c.md.txt index a3f41ca7b93..a1443093342 100644 --- a/doc_cn/_sources/design/multi_language_interface/why_plain_c.md.txt +++ b/doc/_sources/design/multi_language_interface/00.why_plain_c.md.txt @@ -58,32 +58,32 @@ typedef void* paddle_matrix; typedef int paddle_error; extern "C" -paddle_error paddle_matrix_shape(paddle_matrix matrix, - uint64_t* width, - uint64_t* height); +paddle_error paddle_matrix_get_shape(paddle_matrix matrix, + uint64_t* width, + uint64_t* height); ``` 而在CPP里面实现这个C的接口,文件 `paddle_matrix.cpp` ```cpp -#include "paddle/math/matrix.hpp" +#include "paddle/math/matrix.h" extern "C" paddle_error paddle_matrix_shape(paddle_matrix matrix, uint64_t *width, uint64_t *height) { - auto m = (paddle::math::matrix*)(matrix); + auto m = (paddle::capi::CMatrix*)(matrix); *width = m->width(); *height = m->height(); } ``` -其中`paddle/math/matrix.hpp`文件内容为: +其中`paddle/capi/CMatrix.hpp`文件内容为: ```cpp namespace paddle { namespace math { -class Matrix { - //... +class CMatrix { + std::shared_ptr mat; }; } // namespace math @@ -113,6 +113,6 @@ class Matrix { | 手写多语言绑定 | 不使用SWIG | 使用SWIG需要多语言绑定的开发人员熟练掌握SWIG配置,社区参与困难。SWIG生成的代码不能保证多语言代码风格的一致性 | -## 简单实现 +## 实现 -TBD +参考[Inference implementation](01.inference_implementation.md) diff --git a/doc/_sources/design/multi_language_interface/01.inference_implementation.md.txt b/doc/_sources/design/multi_language_interface/01.inference_implementation.md.txt new file mode 100644 index 00000000000..98202845232 --- /dev/null +++ b/doc/_sources/design/multi_language_interface/01.inference_implementation.md.txt @@ -0,0 +1,131 @@ +# C-API 模型推断实现文档 + +本文档描述Paddle C-API的实现细节。Paddle C-API是多语言API的基础部分。Paddle需要暴露的API很多。先实现模型推断的API,通过模型推断API的实现作为一个样例,来进行讨论。至于为什么需要C-API,请参考[Why Plain C](./00.why_plain_c.md)。 + +## Table of Contents + * [C-API 模型推断实现文档](#c-api-模型推断实现文档) + * [暴露接口原则](#暴露接口原则) + * [目录结构](#目录结构) + * [实现方式](#实现方式) + * [capi.h](#capih) + * [具体某种类型的头文件](#具体某种类型的头文件) + * [capi_private.h](#capi_privateh) + * [具体某种类型的实现文件](#具体某种类型的实现文件) + * [libpaddle_capi_shared.{so, dylib}](#libpaddle_capi_sharedso-dylib) + * [libpaddle_capi_whole.a](#libpaddle_capi_wholea) + * [examples](#examples) + * [编译选项](#编译选项) + + +## 暴露接口原则 + +1. 所有的接口均为C接口。即使用`extern "C"` +2. 除构造某种类型的函数(`paddle_matrix_create`等),其他函数均返回`paddle_error`。且调用时不能抛出异常或出现运行时错误。 +3. 所有类型名为`paddle_类型名`,所有与类型相关的函数,函数名为`paddle_类型名_函数名` +4. 如果某一个Paddle Core概念(GradientMachine/Matrix)需要被暴露到其他语言,那么 + * 为了暴露的接口尽量简单。只暴露概念的接口,而不暴露概念的实现。即暴露`GradientMachine`或者`Matrix`但不暴露`RecurrentGradientMachine`和`CpuSparseMatrix`。 + * 暴露这个概念必要函数。`必要`是指,即完成某一个任务的最少函数。 +5. 不在`capi`接口层做过多封装。 + * 如果某一个Paddle概念必须要暴露,但是又过于琐碎。不在`capi`这一层进行封装,而是直接修改Paddle Core。让Paddle核心中,这一概念不再琐碎。 + + +## 目录结构 + +```text +Paddle + `-- paddle + `-- capi + `-- examples # The example project for C-API. + `-- tests # unittests for C-API + `-- capi.h # C-API header file. + `-- capi_private.h # The shared header file between implementation sources. + `-- matrix.{h, cpp} + `-- gradient_machine.{h, cpp} + `-- ... +``` + + +Paddle的C-API目录结构如上图表所示。这个目录中除了`capi_private.h`之外的所有头文件,均会被安装到include/paddle路径下。C-API生成的二进制文件会被安装到`lib`目录下。即,安装后的目录结构为 + +```text +`-- include + `-- paddle + `-- capi.h + `-- matrix.h + `-- gradient_machine.h + `-- ... +`-- lib + `-- libpaddle_capi_shared.{so, dylib} # In mac, dynamic libary's file name extention is `dylib` + `-- libpaddle_capi_whole.a # static library for all symbols of Paddle. +``` + +## 实现方式 + +下面分别介绍某一类文件的实现方式。 + +### capi.h + +`capi.h`是用户使用C-API时所唯一需要引入的头文件。在`capi.h`中,引入了类型的头文件,`matrix.h`, `gradient_machine.h`。在引入其他类型的头文件时,使用相对路径的引用方式。即`#include "matrix.h"` + +### 具体某种类型的头文件 + +具体某种类型的头文件,即例如`matrix.h`,`gradient_machine.h`等。在这些头文件中,包含了某种类型的类型定义和暴露的全部函数。 + +这个头文件不假设其他文件的引用顺序,即使用户直接引用某种类型的头文件,也不应该报错(虽然不鼓励这样)。如果某一个类型需要引用另一个类型,例如`gradient_machine`需要引用`matrix`,则直接引入另一种类型的头文件,即`#include "matrix.h"`。 + +### capi_private.h + +`capi_prviate.h`是各个实现中共享的头文件,他主要包含了实际暴露的类型结构。在用户使用C-API时,Paddle的类型全部退化成`void *`,即`typedef paddle_matrix void*`。但,对于每种C-API暴露的类型,均是在`capi_private.h`中实现的结构体。 + +```cpp +struct CMatrix { + int type = MatrixType; + std::shared_ptr mat; +}; +``` + +通常,这个结构体包含两个项目。 + +* `type`是一个类型的标志。对于每种类型,type字段均不尽相同。这样,即使C-API接受的类型全是`void *`,我们也可以确定每一个参数的类型。 + + ```cpp + void some_c_api_function(void* some_instance) { + int* type = (int *) some_instance; + switch (*type) { + case MatrixType: + CMatrix* mat = (CMatrix *) some_instance; + ... + ... + } + } + ``` +* 这个结构体中的另一个项目是,Paddle Core中这一类型接口的智能指针(shared_ptr)。 + * 使用智能指针的原因是: 用户可以安全的释放某个C-API的实例,而不必在意Paddle Core是否还在使用这个实例。 + * 例如,用户通过C-API获得了神经网络的参数实例。当用户使用完这个参数后,直接删除这个参数即可。即便Paddle Core中的模型还在使用这个参数,这个参数也不会一并删除。 + +### 具体某种类型的实现文件 + +具体某种类型的实现文件,即`matrix.cpp`, `gradient_machine.cpp`等文件。在这些文件中,使用C++ 11实现了C-API的接口,并且使用`extern "C"`导出这些接口。在实现过程中,对输入参数的安全性进行了必要的判断,并将C-API接口的参数转发给`Paddle Core`。 + +### libpaddle\_capi_shared.{so, dylib} + +`libpaddle_capi_shared`是C-API导出的动态库。这个动态库的连接参数与Paddle的其他二进制(例如`paddle_trainer`)类似。用户可以直接使用这个动态库来引入Paddle C-API。具体使用方法为`-lpaddle_capi_shared`。 + +### libpaddle\_capi_whole.a + +`libpaddle_capi_whole`是C-API导出的静态库。这个静态库包含了Paddle的全部符号。他是将`libpaddle_gserver.a`, `libpaddle_math.a`, `libpaddle_capi.a`等全部静态库中的目标文件全部打包后产生的文件。具体使用方法为`--whole-archive -lpaddle_capi_whole --no-whole-archive`。 + + +### examples + +在样例中,使用`C99`开发了模型预测的样例代码。具体请参考[example/README.md](../../../paddle/capi/examples/README.md)。 + +## 编译选项 + +C-API的编译选项默认关闭,打开这个编译选项,需要在cmake的时候,设置 + +```bash +cmake ${YOUR_SOURCE_ROOT} -DWITH_C_API=ON -DWITH_PYTHON=OFF -DWITH_SWIG_PY=OFF +``` + +编译C-API的时候推荐Paddle不嵌入Python解释器,也不生成`SWIG`接口,具体原因参考[Why Plain C](./00.why_plain_c.md)。 diff --git a/doc/_sources/design/ops/rnn.md.txt b/doc/_sources/design/ops/rnn.md.txt new file mode 100644 index 00000000000..2f4854793fa --- /dev/null +++ b/doc/_sources/design/ops/rnn.md.txt @@ -0,0 +1,153 @@ +# RNNOp design + +This document describes the RNN (Recurrent Neural Network) operator and how it is implemented in PaddlePaddle. The RNN op requires that all instances in a mini-batch have the same length. We will have a more flexible dynamic RNN operator in the future. + +## RNN Algorithm Implementation + +

+ +

+ +The above diagram shows an RNN unrolled into a full network. + +There are several important concepts here: + +- *step-net*: the sub-graph that runs at each step. +- *memory*, $h_t$, the state of the current step. +- *ex-memory*, $h_{t-1}$, the state of the previous step. +- *initial memory value*, the memory of the first (initial) step. + +### Step-scope + +There could be local variables defined in each step-net. PaddlePaddle runtime realizes these variables in *step-scopes* which are created for each step. + +

+
+Figure 2 illustrates the RNN's data flow +

+ +Please be aware that every step runs the same step-net. Each step does the following: + +1. Creates the step-scope. +2. Initializes the local variables including step-outputs, in the step-scope. +3. Runs the step-net, which uses the above mentioned variables. + +The RNN operator will compose its output from step outputs in each of the step scopes. + +### Memory and Ex-memory + +Let's give more details about memory and ex-memory using a simple example: + +$$ +h_t = U h_{t-1} + W x_t +$$, + +where $h_t$ and $h_{t-1}$ are the memory and ex-memory (previous memory) of step $t$ respectively. + +In the implementation, we can make an ex-memory variable either "refer to" the memory variable of the previous step, +or copy the memory value of the previous step to the current ex-memory variable. + +### Usage in Python + +For more information on Block, please refer to the [design doc](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/block.md). + +We can define an RNN's step-net using a Block: + +```python +import paddle as pd + +X = some_op() # x is some operator's output and is a LoDTensor +a = some_op() + +# declare parameters +W = pd.Variable(shape=[20, 30]) +U = pd.Variable(shape=[20, 30]) + +rnn = pd.create_rnn_op(output_num=1) +with rnn.stepnet(): + x = rnn.add_input(X) + # declare a memory (rnn's step) + h = rnn.add_memory(init=a) + # h.pre_state(), the previous memory of rnn + new_state = pd.add_two( pd.matmul(W, x) + pd.matmul(U, h.pre_state())) + # update current memory + h.update(new_state) + # indicate that h variables in all step scopes should be merged + rnn.add_outputs(h) + +out = rnn() +``` + +Python API functions in above example: + +- `rnn.add_input`: indicates that the parameter is a variable that will be segmented into step-inputs. +- `rnn.add_memory`: creates a variable used as the memory. +- `rnn.add_outputs`: marks the variables that will be concatenated across steps into the RNN output. + +### Nested RNN and LoDTensor + +An RNN whose step-net includes other RNN operators is known as an *nested RNN*. + +For example, we could have a 2-level RNN, where the top level corresponds to paragraphs, and the lower level corresponds to sentences. Each step of the higher level RNN also receives an input from the corresponding step of the lower level, and additionally the output from the previous time step at the same level. + +The following figure illustrates feeding in text into the lower level, one sentence at a step, and the feeding in step outputs to the top level. The final top level output is about the whole text. + +

+ +

+ +```python +import paddle as pd + +W = pd.Variable(shape=[20, 30]) +U = pd.Variable(shape=[20, 30]) + +W0 = pd.Variable(shape=[20, 30]) +U0 = pd.Variable(shape=[20, 30]) + +# a is output of some op +a = some_op() + +# chapter_data is a set of 128-dim word vectors +# the first level of LoD is sentence +# the second level of LoD is a chapter +chapter_data = pd.Variable(shape=[None, 128], type=pd.lod_tensor, level=2) + +def lower_level_rnn(paragraph): + ''' + x: the input + ''' + rnn = pd.create_rnn_op(output_num=1) + with rnn.stepnet(): + sentence = rnn.add_input(paragraph, level=0) + h = rnn.add_memory(shape=[20, 30]) + h.update( + pd.matmul(W, sentence) + pd.matmul(U, h.pre_state())) + # get the last state as sentence's info + rnn.add_outputs(h) + return rnn + +top_level_rnn = pd.create_rnn_op(output_num=1) +with top_level_rnn.stepnet(): + paragraph_data = rnn.add_input(chapter_data, level=1) + low_rnn = lower_level_rnn(paragraph_data) + paragraph_out = low_rnn() + + h = rnn.add_memory(init=a) + h.update( + pd.matmul(W0, paragraph_data) + pd.matmul(U0, h.pre_state())) + top_level_rnn.add_outputs(h) + +# output the last step +chapter_out = top_level_rnn(output_all_steps=False) +``` + +In the above example, the construction of the `top_level_rnn` calls `lower_level_rnn`. The input is an LoD Tensor. The top level RNN segments input text data into paragraphs, and the lower level RNN segments each paragraph into sentences. + +By default, the `RNNOp` will concatenate the outputs from all the time steps. +If the `output_all_steps` is set to False, it will only output the final time step. + + +

+ +

diff --git a/doc/_sources/design/ops/sequence_decoder.md.txt b/doc/_sources/design/ops/sequence_decoder.md.txt new file mode 100644 index 00000000000..9db5fb8e9a9 --- /dev/null +++ b/doc/_sources/design/ops/sequence_decoder.md.txt @@ -0,0 +1,229 @@ +# Design: Sequence Decoder Generating LoDTensors +In tasks such as machine translation and visual captioning, +a [sequence decoder](https://github.com/PaddlePaddle/book/blob/develop/08.machine_translation/README.md) is necessary to generate sequences, one word at a time. + +This documentation describes how to implement the sequence decoder as an operator. + +## Beam Search based Decoder +The [beam search algorithm](https://en.wikipedia.org/wiki/Beam_search) is necessary when generating sequences. It is a heuristic search algorithm that explores the paths by expanding the most promising node in a limited set. + +In the old version of PaddlePaddle, the C++ class `RecurrentGradientMachine` implements the general sequence decoder based on beam search, due to the complexity involved, the implementation relies on a lot of special data structures that are quite trivial and hard to be customized by users. + +There are a lot of heuristic tricks in the sequence generation tasks, so the flexibility of sequence decoder is very important to users. + +During the refactoring of PaddlePaddle, some new concepts are proposed such as: [LoDTensor](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/lod_tensor.md) and [TensorArray](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/tensor_array.md) that can better support the sequence usage, and they can also help make the implementation of beam search based sequence decoder **more transparent and modular** . + +For example, the RNN states, candidates IDs and probabilities of beam search can be represented all as `LoDTensors`; +the selected candidate's IDs in each time step can be stored in a `TensorArray`, and `Packed` to the sentences translated. + +## Changing LoD's absolute offset to relative offsets +The current `LoDTensor` is designed to store levels of variable-length sequences. It stores several arrays of integers where each represents a level. + +The integers in each level represent the begin and end (not inclusive) offset of a sequence **in the underlying tensor**, +let's call this format the **absolute-offset LoD** for clarity. + +The relative-offset LoD can retrieve any sequence very quickly but fails to represent empty sequences, for example, a two-level LoD is as follows +```python +[[0, 3, 9] + [0, 2, 3, 3, 3, 9]] +``` +The first level tells that there are two sequences: +- the first's offset is `[0, 3)` +- the second's offset is `[3, 9)` + +while on the second level, there are several empty sequences that both begin and end at `3`. +It is impossible to tell how many empty second-level sequences exist in the first-level sequences. + +There are many scenarios that rely on empty sequence representation, for example in machine translation or visual captioning, one instance has no translation or the empty candidate set for a prefix. + +So let's introduce another format of LoD, +it stores **the offsets of the lower level sequences** and is called **relative-offset** LoD. + +For example, to represent the same sequences of the above data + +```python +[[0, 3, 6] + [0, 2, 3, 3, 3, 9]] +``` + +the first level represents that there are two sequences, +their offsets in the second-level LoD is `[0, 3)` and `[3, 5)`. + +The second level is the same with the relative offset example because the lower level is a tensor. +It is easy to find out the second sequence in the first-level LoD has two empty sequences. + +The following examples are based on relative-offset LoD. + +## Usage in a simple machine translation model +Let's start from a simple machine translation model that is simplified from the [machine translation chapter](https://github.com/PaddlePaddle/book/tree/develop/08.machine_translation) to draw a blueprint of what a sequence decoder can do and how to use it. + +The model has an encoder that learns the semantic vector from a sequence, and a decoder which uses the sequence encoder to generate new sentences. + +**Encoder** +```python +import paddle as pd + +dict_size = 8000 +source_dict_size = dict_size +target_dict_size = dict_size +word_vector_dim = 128 +encoder_dim = 128 +decoder_dim = 128 +beam_size = 5 +max_length = 120 + +# encoder +src_word_id = pd.data( + name='source_language_word', + type=pd.data.integer_value_sequence(source_dict_dim)) +src_embedding = pd.embedding(size=source_dict_size, size=word_vector_dim) + +src_word_vec = pd.lookup(src_embedding, src_word_id) + +encoder_out_seq = pd.gru(input=src_word_vec, size=encoder_dim) + +encoder_ctx = pd.last_seq(encoder_out_seq) +# encoder_ctx_proj is the learned semantic vector +encoder_ctx_proj = pd.fc( + encoder_ctx, size=decoder_dim, act=pd.activation.Tanh(), bias=None) +``` + +**Decoder** + +```python +def generate(): + decoder = pd.while_loop() + with decoder.step(): + decoder_mem = decoder.memory(init=encoder_ctx) # mark the memory + generated_ids = decoder.memory() # TODO init to batch_size s + generated_scores = decoder.memory() # TODO init to batch_size 1s or 0s + + target_word = pd.lookup(trg_embedding, gendrated_ids) + # expand encoder_ctx's batch to fit target_word's lod + # for example + # decoder_mem.lod is + # [[0 1 3], + # [0 1 3 6]] + # its tensor content is [a1 a2 a3 a4 a5] + # which means there are 2 sentences to translate + # - the first sentence has 1 translation prefixes, the offsets are [0, 1) + # - the second sentence has 2 translation prefixes, the offsets are [1, 3) and [3, 6) + # the target_word.lod is + # [[0, 1, 6] + # [0, 2, 4, 7, 9 12]] + # which means 2 sentences to translate, each has 1 and 5 prefixes + # the first prefix has 2 candidates + # the following has 2, 3, 2, 3 candidates + # the encoder_ctx_expanded's content will be + # [a1 a1 a2 a2 a3 a3 a3 a4 a4 a5 a5 a5] + encoder_ctx_expanded = pd.lod_expand(encoder_ctx, target_word) + decoder_input = pd.fc( + act=pd.activation.Linear(), + input=[target_word, encoder_ctx], + size=3 * decoder_dim) + gru_out, cur_mem = pd.gru_step( + decoder_input, mem=decoder_mem, size=decoder_dim) + scores = pd.fc( + gru_out, + size=trg_dic_size, + bias=None, + act=pd.activation.Softmax()) + # K is an config + topk_scores, topk_ids = pd.top_k(scores, K) + topk_generated_scores = pd.add_scalar(topk_scores, generated_scores) + + selected_ids, selected_generation_scores = decoder.beam_search( + topk_ids, topk_generated_scores) + + # update the states + decoder_mem.update(cur_mem) # tells how to update state + generated_ids.update(selected_ids) + generated_scores.update(selected_generation_scores) + + decoder.output(selected_ids) + decoder.output(selected_generation_scores) + +translation_ids, translation_scores = decoder() +``` +The `decoder.beam_search` is an operator that, given the candidates and the scores of translations including the candidates, +returns the result of the beam search algorithm. + +In this way, users can customize anything on the input or output of beam search, for example: + +1. Make the corresponding elements in `topk_generated_scores` zero or some small values, beam_search will discard this candidate. +2. Remove some specific candidate in `selected_ids`. +3. Get the final `translation_ids`, remove the translation sequence in it. + +The implementation of sequence decoder can reuse the C++ class: [RNNAlgorithm](https://github.com/Superjom/Paddle/blob/68cac3c0f8451fe62a4cdf156747d6dc0ee000b3/paddle/operators/dynamic_recurrent_op.h#L30), +so the python syntax is quite similar to that of an [RNN](https://github.com/Superjom/Paddle/blob/68cac3c0f8451fe62a4cdf156747d6dc0ee000b3/doc/design/block.md#blocks-with-for-and-rnnop). + +Both of them are two-level `LoDTensors`: + +- The first level represents `batch_size` of (source) sentences. +- The second level represents the candidate ID sets for translation prefix. + +For example, 3 source sentences to translate, and has 2, 3, 1 candidates. + +Unlike an RNN, in sequence decoder, the previous state and the current state have different LoD and shape, and an `lod_expand` operator is used to expand the LoD of the previous state to fit the current state. + +For example, the previous state: + +* LoD is `[0, 1, 3][0, 2, 5, 6]` +* content of tensor is `a1 a2 b1 b2 b3 c1` + +the current state is stored in `encoder_ctx_expanded`: + +* LoD is `[0, 2, 7][0 3 5 8 9 11 11]` +* the content is + - a1 a1 a1 (a1 has 3 candidates, so the state should be copied 3 times for each candidates) + - a2 a2 + - b1 b1 b1 + - b2 + - b3 b3 + - None (c1 has 0 candidates, so c1 is dropped) + +The benefit from the relative offset LoD is that the empty candidate set can be represented naturally. + +The status in each time step can be stored in `TensorArray`, and `Pack`ed to a final LoDTensor. The corresponding syntax is: + +```python +decoder.output(selected_ids) +decoder.output(selected_generation_scores) +``` + +The `selected_ids` are the candidate ids for the prefixes, and will be `Packed` by `TensorArray` to a two-level `LoDTensor`, where the first level represents the source sequences and the second level represents generated sequences. + +Packing the `selected_scores` will get a `LoDTensor` that stores scores of each translation candidate. + +Packing the `selected_generation_scores` will get a `LoDTensor`, and each tail is the probability of the translation. + +## LoD and shape changes during decoding +

+ +

+ +According to the image above, the only phase that changes the LoD is beam search. + +## Beam search design +The beam search algorithm will be implemented as one method of the sequence decoder and has 3 inputs: + +1. `topk_ids`, the top K candidate ids for each prefix. +2. `topk_scores`, the corresponding scores for `topk_ids` +3. `generated_scores`, the score of the prefixes. + +All of these are LoDTensors, so that the sequence affiliation is clear. Beam search will keep a beam for each prefix and select a smaller candidate set for each prefix. + +It will return three variables: + +1. `selected_ids`, the final candidate beam search function selected for the next step. +2. `selected_scores`, the scores for the candidates. +3. `generated_scores`, the updated scores for each prefix (with the new candidates appended). + +## Introducing the LoD-based `Pack` and `Unpack` methods in `TensorArray` +The `selected_ids`, `selected_scores` and `generated_scores` are LoDTensors that exist at each time step, +so it is natural to store them in arrays. + +Currently, PaddlePaddle has a module called `TensorArray` which can store an array of tensors. It is better to store the results of beam search in a `TensorArray`. + +The `Pack` and `UnPack` in `TensorArray` are used to pack tensors in the array to an `LoDTensor` or split the `LoDTensor` to an array of tensors. +It needs some extensions to support the packing or unpacking an array of `LoDTensors`. diff --git a/doc/_sources/design/optimizer.md.txt b/doc/_sources/design/optimizer.md.txt new file mode 100644 index 00000000000..202b4b65103 --- /dev/null +++ b/doc/_sources/design/optimizer.md.txt @@ -0,0 +1,91 @@ +## Optimizer Design + +### The Problem + +A PaddlePaddle program, or a block, is a sequence of operators operating variables. A training program needs to do three kinds of works: + +1. the forward pass, which computes intermediate results and the cost(s), +1. the backward pass, which derives gradients from intermediate results and costs, and +1. the optimization pass, which update model parameters to optimize the cost(s). + +These works rely on three kinds of operators: + +1. forward operators, +1. gradient operators, and +1. optimization operators. + +It's true that users should be able to create all these operators manually by calling some low-level API, but it would be much more convenient if they could only describe the forward pass and let PaddlePaddle create the backward and optimization operators automatically. + +In this design, we propose a high-level API that automatically derives the optimisation pass and operators from the forward pass. + + +### High-level Python API to describe the training process + +1. User write code to describe the network: + + ```python + images = layer.data("images") + labels = layer.data("labels") + w1 = pd.var("w1") + b1 = pd.var("b1") + hidden = layer.fc(images, w=w1, b=b1) + cost = layer.mse(hidden, labels) + ``` + + The above code snippet will create forward operators in [Block](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/block.md). + + +2. Users create a certain kind of Optimizer with some argument. + + ```python + optimizer = AdagradOptimizer(learing_rate=0.001) + ``` + +3. Users use the optimizer to `minimize` a certain `cost` through updating parameters in parameter_list. + + ```python + opt_op_list = optimizer.minimize(cost, parameter_list=[w1, b1]) + ``` + The above code snippet will create gradient and optimization operators in Block. The return value of `minimize()` is list of optimization operators that will be run by session. + +4. Users use Session/Executor to run this opt_op_list as target to do training. + + ```python + sess.run(target= opt_op_list, ...) + ``` + +#### Optimizer Python interface: + +```python +class Optimizer(object): + """Optimizer Base class. + + """ + + def __init__(self): + pass + + def create_optimization_pass(self, parameters_and_grads): + """Add optimization operators to update gradients to variables. + + Args: + parameters_and_grads: a list of (variable, gradient) pair to update. + + Returns: + optmization_op_list: a list of optimization operator that will update parameter using gradient. + """ + return None + + def minimize(self, loss, parameter_list): + """Add operations to minimize `loss` by updating `parameter_list`. + + This method combines interface `append_backward_ops()` and + `create_optimization_pass()` into one. + """ + params_grads = self.create_backward_pass(loss, parameter_list) + update_ops = self.create_optimization_pass(params_grads) + return update_ops + +``` + +Users can inherit the Optimizer above to create their own Optimizer with some special logic, such as AdagradOptimizer. diff --git a/doc/_sources/design/parameter_average.md.txt b/doc/_sources/design/parameter_average.md.txt new file mode 100644 index 00000000000..2c4edee9fe3 --- /dev/null +++ b/doc/_sources/design/parameter_average.md.txt @@ -0,0 +1,72 @@ +# Averaging Parameter in PaddlePaddle + +## Why Averaging +In a large scale machine learning setup where the size of the training data is huge, it could take us a large number of iterations over the training data before we can achieve the optimal values of parameters of our model. Looking at the problem setup, it is desirable if we can obtain the optimal values of parameters by going through the data in as few passes as we can. + +Polyak and Juditsky (1992) showed that the test performance of simple average of parameters obtained by Stochastic Gradient Descent (SGD) is as good as that of parameter values that are obtained by training the model over and over again, over the training dataset. + +Hence, to accelerate the speed of Stochastic Gradient Descent, Averaged Stochastic Gradient Descent (ASGD) was proposed in Polyak and Juditsky (1992). For ASGD, the running average of parameters obtained by SGD, is used as the estimator for
. The averaging is done as follows: + +
+ +We propose averaging for any optimizer similar to how ASGD performs it, as mentioned above. + +### How to perform Parameter Averaging in PaddlePaddle + +Parameter Averaging in PaddlePaddle works in the following way during training : +1. It will take in an instance of a normal optimizer as an input, e.g. RMSPropOptimizer +2. The optimizer itself is responsible for updating the parameters. +3. The ParameterAverageOptimizer maintains a separate copy of the parameters for itself: + 1. In concept, the values of this copy are the average of the values of the parameters in the most recent N batches. + 2. However, saving all the N instances of the parameters in memory is not feasible. + 3. Therefore, an approximation algorithm is used. + +Hence, overall we have have two copies of the parameters: one for the optimizer itself, and one for the ParameterAverageOptimizer. The former should be used in back propagation, while the latter should be used during testing and should be saved. + +During the testing/ saving the model phase, we perform the following steps: +1. Perform the delayed operations. +2. Save current values of the parameters to a temporary variable. +3. Replace the values of the parameters with the averaged values. +4. Perform testing and/or save the parameters. +5. Restore the values of the parameters once done. + +### How to implement Averaging of Parameter in PaddlePaddle + +We can add the ParameterAverageOptimizer op to the graph through Python API. Using this approach, we manually add this op to the graph and direct the output of the optimizer op to this op during training. + + **Advantages**: + - Allows for greater flexibility to the users of PaddlePaddle. Using this approach, the users can plug different optimizers into ParameterAverageOptimizer by passing in the optimizer to the op. + - Makes it easy for the users to customize and extend the framework. + + **Disadvantages**: + - Implementation requires re-writing the averaging methodology in Python. + +### Low-Level implementation + +In the new design, we propose to create a new operation for averaging parameter updates (ParameterAverageOptimizer). For now, we can add an op that takes in the following as input: +- the optimizer +- the window_size to keep the updates + +The ParameterAverageOptimizer op can be like any other operator with its own CPU/GPU implementation either using Eigen or separate CPU and GPU kernels. As the initial implementation, we can implement the kernel using Eigen following the abstraction pattern implemented for [Operators](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/rmsprop_op.h). We also want to support the case when the Trainer/Optimizer runs on the GPU while ParameterAverageOptimizer runs on a CPU. + +The idea of building an op for averaging is in sync with the refactored PaddlePaddle philosophy of using operators to represent any computation unit. The way the op will be added to the computation graph will be decided by the [layer functions](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/python_api.md#layer-function) in Python API. + +### Python API implementation for ParameterAverageOptimizer + +Based on Polyak and Juditsky (1992), we can generalize the averaging of updates to any optimizer. The input to the op would be the following: +- Any optimizer (RMSProp , AdaGrad etc.) +- A window size. The op keeps accumulating updated parameter values over a window of N batches and takes an average. Move the averaged value to a buffer when window is full to avoid loss of precision. + +Using the ParameterAverageOptimizer op, any user can add the operation to their computation graphs. However, this will require a lot of lines of code and we should design Python APIs that support averaging. As per the PaddlePaddle [Python API design](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/python_api.md), the layer functions are responsible for creating operators, operator parameters and variables. Since ParameterAverageOptimizer will be an operator, it makes sense to create it in the layer functions. +We will have a wrapper written in Python that will support the functionality and implement the actual core computation in C++ core as we have done for other [Optimizers](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/rmsprop_op.cc) + +#### Creation of the ParameterAverageOptimizer operator +There are two ways for creating the ParameterAverageOptimizer op: +1. We create the op immediately while building the computation graph. +2. We add the op in a lazy manner, just before the backward pass, similar to the way the optimization ops are added. + +The proposal is to add the op immediately while building the computation graph. + +#### High-level API + +In PaddlePaddle Python API, users will primarily rely on [layer functions](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/python_api.md#layer-function) to create neural network layers. Hence, we also need to provide parameter average functionality in layer functions. diff --git a/doc/_sources/design/parameters_in_cpp.md.txt b/doc/_sources/design/parameters_in_cpp.md.txt new file mode 100644 index 00000000000..a7ac3f17c44 --- /dev/null +++ b/doc/_sources/design/parameters_in_cpp.md.txt @@ -0,0 +1,41 @@ +# Design Doc: The C++ Class `Parameters` + +`Parameters` is a concept we designed in PaddlePaddle V2 API. `Parameters` is a container of parameters, which makes PaddlePaddle capable of sharing parameter between topologies. We described usages of `Parameter` in [api.md](./api.md). + +We used Python to implement Parameters when designing V2 API before. There are several defects for the current implementation: +* We just use `memcpy` to share Parameters between topologies, but this is very inefficient. +* We did not support sharing Parameters while training. We just trigger `memcpy` when start training. + +It is necessary that we implement Parameters in CPP side. However, it could result a code refactoring for PaddlePaddle, because PaddlePaddle was designed for training only one topology before, i.e., each GradientMachine contains its Parameter as a data member. In current PaddlePaddle implementation, there are three concepts associated with `Parameters`: + +1. `paddle::Parameter`. A `Parameters` is a container for `paddle::Parameter`. +It is evident that we should use `paddle::Parameter` when developing `Parameters`. +However, the `Parameter` class contains many functions and does not have a clear interface. +It contains `create/store Parameter`, `serialize/deserialize`, `optimize(i.e SGD)`, `randomize/zero`. +When we developing `Parameters`, we only use `create/store Parameter` functionality. +We should extract functionalities of Parameter into many classes to clean PaddlePaddle CPP implementation. + +2. `paddle::GradientMachine` and its sub-classes, e.g., `paddle::MultiGradientMachine`, `paddle::NeuralNetwork`. +We should pass `Parameters` to `paddle::GradientMachine` when `forward/backward` to avoid `memcpy` between topologies. +Also, we should handle multi-GPU/CPU training, because `forward` and `backward` would perform on multi-GPUs and multi-CPUs. +`Parameters` should dispatch the parameter value to each device, and gather the parameter gradient from each device. + +3. `paddle::ParameterUpdater`. The ParameterUpdater is used to update parameters in Paddle. +So `Parameters` should be used by `paddle::ParameterUpdater`, and `paddle::ParameterUpdater` should optimize `Parameters` (by SGD). + + +The step by step approach for implementation Parameters in PaddlePaddle C++ core is listed below. Each step should be a PR and could be merged into PaddlePaddle one by one. + +1. Clean `paddle::Parameter` interface. Extract the functionalities of `paddle::Parameter` to prepare for the implementation of Parameters. + +2. Implementation a `Parameters` class. It just stores the `paddle::Parameter` inside. Make `GradientMachine` uses `Parameters` as a class member. + +3. Make `Parameters` support Multi-CPU and Multi-GPU training to prepare for sharing `Parameter` between topologies. +Because we need share `Parameters` between topologies, it is `Parameters`'s response to exchange Parameters between GPUs. +`GradientMachine` should not handle how to exchange Parameters because `GradientMachine` only used to train one topology and we need to support train many topologies in Paddle, i.e., there could be many GradientMachines use one `Parameters`. + * We should use a global function to exchange Parameters between GPUs, not a member function in `Parameters`. The `MultiGradientMachine` invoke this function, which uses `Parameters` as this function inputs. + * The MultiGradientMachine contains many functionalities. Extracting the Parameters exchanging logic could make MultiGradientMachine clearer and simpler. + +4. Make `Parameters` as an argument for `forward/backward` function, not a data member for `GradientMachine`. For example, `forward` could be `forward(const Parameters& params, ...)` and `backward` could be `backward(Parameters* params, ...)`. After this step, Paddle could share `Parameters` between topologies. + +5. `ParameterUpdater` is invoked by `GradientMachine` and `Trainer`, but it updates `Parameters`. In the end of this code refactoring, we could change `ParameterUpdater` directly uses `Parameters` to make `ParameterUpdater`'s implementation clear. diff --git a/doc/_sources/design/program.md.txt b/doc/_sources/design/program.md.txt new file mode 100644 index 00000000000..bd2456787c4 --- /dev/null +++ b/doc/_sources/design/program.md.txt @@ -0,0 +1,139 @@ +# Design Doc: PaddlePaddle Programs + +## Compile and Execution + +A PaddlePaddle program consists of two parts -- the first generates a `ProgramDesc` protobuf message that describes the program, and the second runs this message using a C++ class `Executor`. + +A simple example PaddlePaddle program can be found in [graph.md](./graph.md): + +```python +x = layer.data("images") +l = layer.data("label") +y = layer.fc(x) +cost = layer.mse(y, l) +optimize(cost) +train(cost, reader=mnist.train()) +``` + +The first five lines of the following PaddlePaddle program generates, or, compiles, the `ProgramDesc` message. The last line runs it. + +## Programs and Blocks + +The basic structure of a PaddlePaddle program is some nested blocks, as a C++ or Java program. + +- program: some nested blocks +- [block](./block.md): + - some local variable definitions, and + - a sequence of operators + +The concept of block comes from usual programs. For example, the following C++ program has three blocks: + +```c++ +int main() { // block 0 + int i = 0; + if (i < 10) { // block 1 + for (int j = 0; j < 10; j++) { // block 2 + } + } + return 0; +} +``` + +The following PaddlePaddle program has three blocks: + +```python +import paddle as pd // block 0 + +x = minibatch([10, 20, 30]) # shape=[None, 1] +y = var(1) # shape=[1], value=1 +z = minibatch([10, 20, 30]) # shape=[None, 1] +cond = larger_than(x, 15) # [false, true, true] + +ie = pd.ifelse() +with ie.true_block(): // block 1 + d = pd.layer.add_scalar(x, y) + ie.output(d, pd.layer.softmax(d)) +with ie.false_block(): // block 2 + d = pd.layer.fc(z) + ie.output(d, d+1) +o1, o2 = ie(cond) +``` + +## `BlockDesc` and `ProgramDesc` + +All protobuf messages are defined in `framework.proto`. + +`BlockDesc` is straight-forward -- it includes local variable definitions, `vars`, and a sequence of operators, `ops`. + +```protobuf +message BlockDesc { + required int32 parent = 1; + repeated VarDesc vars = 2; + repeated OpDesc ops = 3; +} +``` + +The parent ID indicates the parent block so that operators in a block can refer to variables defined locally and also those defined in their ancestor blocks. + +All hierarchical blocks in a program are flattened and stored in an array. The block ID is the index of the block in this array. + +```protobuf +message ProgramDesc { + repeated BlockDesc blocks = 1; +} +``` + + +### Global Block + +The global block is the first one in the above array. + +## Operators that Use Blocks + +In the above example, the operator `IfElseOp` has two blocks -- the true branch and the false branch. + +The definition of `OpDesc` shows that an operator could have some attributes: + +```protobuf +message OpDesc { + AttrDesc attrs = 1; + ... +} +``` + +and an attribute could be of type block, which is, in fact, a block ID as described above: + +``` +message AttrDesc { + required string name = 1; + + enum AttrType { + INT = 1, + STRING = 2, + ... + BLOCK = ... + } + required AttrType type = 2; + + optional int32 block = 10; // when type == BLOCK + ... +} +``` + +## InferShape + +With this design, the InferShape function should take the following parameters: + +```c++ +void InferShape(int current_block, + int current_operator, + ProgramDesc* program // might change VarDesc values. + ) { + ... +} +``` + +where + +- `current_block` indices into `ProgramDesc::blocks`, +- `current_operator` indices into `BlockDesc::ops`. diff --git a/doc/_sources/design/prune.md.txt b/doc/_sources/design/prune.md.txt new file mode 100644 index 00000000000..4a5cf10c79a --- /dev/null +++ b/doc/_sources/design/prune.md.txt @@ -0,0 +1,63 @@ +# Prune + +## Motivation + +We want to support running inference, training and checkpointing in one `ProgramDesc`. We implement +`void Prune(const ProgramDesc* input, ProgramDesc* output)` function, which takes a `ProgramDesc` +and generate a pruned `ProgramDesc`. + +## Challenge + +Pruning need to support both variables and operators being evaluation targets. Consider the following +different situations. + +```python +# Case 1: run foward pass. +cost_np = session.run(target=cost) +# Case 2: run backward passing. +opts_np, _ = session.run(target=[cost, opt]) +# Case 3: run checkpointing +_ = session.run(target=checkpoint) +``` + +## Solution + +To support evaluation of operators, we add `is_target` field in the `OpDesc`. + +```c++ +message OpDesc { + required string type = 3; + repeated Var inputs = 1; + repeated Var outputs = 2; + repeated Attr attrs = 4; + optional bool is_target = 5 [ default = false ]; +}; +``` + +To support evaluation of variables, we add [fetch_op](https://github.com/PaddlePaddle/Paddle/pull/4599). +For each variable in the `target`, we insert a `fetch_op` into the `ProgramDesc` with `variable` being +`fetch_op`'s input. Then we also set `fetch_op` is a target. + +### Algorithm + +If an operator needs to be run, it must fall into one of the following cases: + +1. It is the target. +2. It is depended by some other ops, meaning its output is some other op's input. + +The first case can be checked by `op_desc.is_traget()` . The second case can be implement as + +```c++ +bool HasDependentVar(const OpDesc& op_desc, const std::set& dependent_vars) { + for (auto& var : op_desc.outputs()) { + for (auto& argu : var.arguments()) { + if (dependent_vars.count(argu) != 0) { + return true; + } + } + } + return false; +} +``` + +Then the whole algorithm can be implemented as the following [code](https://github.com/tonyyang-svail/Paddle/blob/prune_impl/paddle/framework/prune.cc). diff --git a/doc/_sources/design/python_api.md.txt b/doc/_sources/design/python_api.md.txt new file mode 100644 index 00000000000..cb5fdc765b7 --- /dev/null +++ b/doc/_sources/design/python_api.md.txt @@ -0,0 +1,284 @@ +# Design Doc: Python API + +Due to the refactorization of the PaddlePaddle core, we need Python classes to construct corresponding protobuf messages that describe a DL program. + +| Python classes | Protobuf messages | +| --- | --- | +| Program | ProgramDesc | +| Block | BlockDesc | +| Operator | OpDesc | +| Variable | VarDesc | + +Please be aware that these Python classes need to maintain some construction-time information, which are not part of the protobuf messages. + +## Core Concepts + +### Program + +A `ProgramDesc` describes a [DL program](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/program.md), which is composed of an array of `BlockDesc`s. The `BlockDesc`s in a `ProgramDesc` can have a tree-like hierarchical structure. However, the `ProgramDesc` onlys stores a flattened array of `BlockDesc`s. A `BlockDesc` refers to its parent block by its index in the array. For example, operators in the step block of an RNN operator need to be able to access variables in its ancestor blocks. + +Whenever we create a block, we need to set its parent block to the current block, hence the Python class `Program` needs to maintain a data member `current_block`. + +```python +class Program(objects): + def __init__(self): + self.desc = core.NewProgram() # a C++ ProgramDesc pointer. + self.blocks = vector() + self.blocks.append(Block(self, -1)) # the global block + self.current_block = 0 # initialized to the global block + + def global_block(): + return self.blocks[0] + + def current_block(): + return self.get_block(self.current_block) + + def rollback(): + self.current_block = self.current_block().parent_idx + + def create_block(): + new_block_idx = len(self.block) + self.blocks.append(Block(self, self.current_block)) + self.current_block = new_block_idx + return current_block() +``` + +`Program` is an accessor to the protobuf message `ProgramDesc`, which is created in C++ space, because the InferShape function is in C++, which manipulates `VarDesc` messages, which are in turn members of `BlockDesc`, which is a member of `ProgramDesc`. + +`Program` creates the first block as the global block in its constructor. All parameters and their initializer operators are in the global block. + +### Block + +A [Block](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/block.md) includes + +1. a map from variable names to an instance of the Python `Variable` class, and +1. a list of `Operator` instances. + +```python +class Block(objects): + def __init__(self, program, parent_idx): + self.desc = core.NewBlock(program.desc) + self.program = program + self.vars = map() + self.ops = vector() + self.parent_idx = parent_idx + + def create_var(self, ...): + return Variable(self, ...) + + def _create_global_var(self, ...): + program.global_block().create_var(...) + + def create_parameter(self, name, ...): + # Parameter is a subclass of variable. See Parameter section for details. + self.vars[name] = Parameter(self._create_global_var(...), ...) + return self.vars[name] + + def append_operator(self, ...): + self.ops.append(Operator(self, ...)) + + def prepend_operator(self, ...): # Parameter's ctor prepands initialize operators. + self.ops.prepend(Operator(self, ...)) +``` + +`create_parameter` is necessary because parameters are global variables, defined in the global block, but can be created in some sub-blocks. For example, an FC layer in the step block of an RNN operator. + +`prepend_operator` is necessary because the constructor of `Parameter` needs to create the initialize (or load) operator of the parameter, and would like to put it in the *preamble* of the global block. + +### Operator + +The `Operator` class fills in the `OpDesc` message and calls the C++ function `InferShape` to infer the output shapes from the input shapes. + +```python +class Operator(object): + def __init__(self, + block, # Block + type, # string + inputs, # dict + outputs,# dict + attrs # dict + ): + self.desc = core.NewOpDesc(block.desc, type, inputs, outputs, attrs) + core.infer_shape(self.desc, inputs, outputs) + + def type(self): + return self.desc.type() +``` + +`Operator` creates the `OpDesc` message in C++ space, so that it can call the `InferShape` function, which is in C++. + +### Variable + +Operators take Variables as its inputs and outputs. + +```python +class Variable(object): + def __init__(self, + block=None, # Block + name=None, # string + shape, # tuple + dtype="float32", # string + lod_level=None # int + ): + if name is None: + name = unique_name_generator() + self.name = name + self.block = block + self.desc = core.NewVarDesc(block.desc, name, shape, lod_level) + self.writer = None +``` + +Please be aware of `self.writer`, that tracks operator who creates the variable. It possible that there are more than one operators who write a variable, but in Python space, each write to a variable is represented by a Variable class. This is guaranteed by the fact that **`core.NewVarDesc` must NOT create a new `VarDesc` message if its name already exists in the specified block**. + +### Parameter + +A parameter is a global variable with an initializer (or load) operator. + +```python +class Parameter(Variable): + def __init__(self, + block=None, # Block + name=None, # string + shape, # tuple + dtype="float32", # string + lod_level=None # int + trainable, # bool + initialize_op_attrs, + optimize_op_attrs): + super(Parameter, self).__init__(block, name, shape, dtype, lod_level) + self.trainable = trainable + self.optimize_op_attrs = optimize_op_attrs + block.prepend(Operator(block, # Block + initialize_op_attrs['type'], # string + None, # no inputs + self, # output is the parameter + initialize_op_attrs) +``` + +When users create a parameter, they can call + +```python +program.create_parameter( + ..., + init_attr={ + type: "uniform_random", + min: -1.0, + max: 1.0, + }) +) +``` + +In above example, `init_attr.type` names an initialize operator. It can also name the load operator + +```python +init_attr={ + type: "load", + filename: "something.numpy", +} +``` + +`optimize_op_attrs` is not in the `VarDesc` message, but kept in the Python instance, as it will be used in the Python space when creating the optimize operator's `OpDesc`, and will be in the `OpDesc` message. + +## Layer Function + +A layer is a Python function that creates some operators and variables. Layers simplify the work of application programmers. + +Layer functions take `Variable` and configuration parameters as its input and return the output variable(s). + +For example, `FullyConnected` take one or more variable as its input. The input could be input data or another layer's output. There are many configuration options for a `FullyConnected` layer, such as layer size, activation, parameter names, initialization strategies of parameters, and so on. The `FullyConnected` layer will return an output variable. + + +### Necessity for reusing code between layer functions + +There are a lot of code that can be reused. Such as + +* Give the default value of configuration. e.g., default initialize strategy for parameters is uniform random with `min = -1.0`, `max = 1.0`. and default initialize strategy for bias is to fill zero. +* Append the activation operator. +* Create a temporary variable. +* Create parameter. +* Generate a unique name. +* Add a bias. +* ... + +A mechanism to reuse code between layer functions is necessary. It will be around [150 lines of code](https://github.com/PaddlePaddle/Paddle/pull/4724/files#diff-823b27e07e93914ada859232ae23f846R12) if we write a `FullyConnected` layer without any helper functions. + + + +### Comparision between global functions and helper class + +The `FullyConnected` layer will be as follow when we provide global functions: + +```python +def fc_layer(input, size, param_attr=None, bias_attr=None, act=None, name=None): + if name is None: + name = unique_name("fc") + input = multiple_input(input) + param_attr = default_param_attr(param_attr) + param_attr = multiple_param_attr(param_attr, len(input)) + + # mul + mul_results = [] + for ipt, attr in zip(input, param_attr): + shape = ipt.shape[1:] + [size] + w = g_program.global_block().create_parameter(shape, ipt.dtype, name, attr) + tmp = create_tmp_var(name) + g_program.current_block().append_op("mul", {ipt, w}, {tmp}) + mul_results.append(tmp) + + # add sum + ... + # add bias + ... + # add activation + ... + return out +``` + +We can provide many helpers functions for layer developers. However, there are several disadvantages for global helper functions: + +1. We need a namespace for these methods, then layer developers can quickly figure out what method they can use. +2. Global functions will force layer developers to pass its parameter time by time. + +So we provide a helper class, `LayerHelper`, to share code between layer functions. The `FullyConnected` Layer will be as follow. + +```python +def fc_layer(input, size, param_attr=None, bias_attr=None, act=None, name=None): + helper = LayerHelper(locals()) # pass all parameter to LayerHelper + + mul_results = [] + for ipt, param in helper.iter_multiple_input_and_param(): + w = helper.create_parameter(shape=ipt.shape[1:] + [size], dtype = ipt.dtype) + tmp = helper.create_tmp_variable() + helper.append_op('mul', {ipt, w}, {tmp}) + mul_results.append(tmp) + + pre_bias = helper.add_sum(mul_results) + pre_activation = helper.add_bias(pre_bias) + return helper.add_activation(pre_activation) +``` + +We not only use the fewer lines of code to write `fc_layer` but also make the code clearer to understand. At the same time, layer developers can figure out what function they can invoke by typing `helper.` in a python editor. + + +### Implementation of layer helper + +We just keep all parameters of a layer function as a dictionary in layer helper as a private data member. Every method of layer helper will look up the dictionary after it is invoked. In that way, we can implement a layer helper for all layer functions even some layer does not contain some operator. For example, The `activation` is used by the FullyConnected layer or convolution layers, but a cross-entropy layer does not use it. The example code of `add_activation` are: + +```python +class LayerHelper(object): + def __init__(self, **kwargs): # kwargs is short for `keyword arguments` + self.kwargs = kwargs + + def add_activation(self, input_var): + act = self.kwargs.get("act", None) # default value is None + if act is None: # do nothing if no act + return input_var + + tmp = self.create_tmp_var(self) + self.append_op(type=act, input=input_var, output=tmp) + return tmp +``` + +## Optimizer + +[Optimizer Design Doc](./optimizer.md) diff --git a/doc/_sources/design/reader/README.md.txt b/doc/_sources/design/reader/README.md.txt index f21f7af520d..2cd4b6225b6 100644 --- a/doc/_sources/design/reader/README.md.txt +++ b/doc/_sources/design/reader/README.md.txt @@ -1,25 +1,25 @@ # Python Data Reader Design Doc -At training and testing time, PaddlePaddle programs need to read data. To ease the users' work to write data reading code, we define that +During the training and testing phases, PaddlePaddle programs need to read data. To help the users write code that performs reading input data, we define the following: -- A *reader* is a function that reads data (from file, network, random number generator, etc) and yields data items. -- A *reader creator* is a function that returns a reader function. -- A *reader decorator* is a function, which accepts one or more readers, and returns a reader. -- A *batch reader* is a function that reads data (from *reader*, file, network, random number generator, etc) and yields a batch of data items. +- A *reader*: A function that reads data (from file, network, random number generator, etc) and yields the data items. +- A *reader creator*: A function that returns a reader function. +- A *reader decorator*: A function, which takes in one or more readers, and returns a reader. +- A *batch reader*: A function that reads data (from *reader*, file, network, random number generator, etc) and yields a batch of data items. -and provide function which converts reader to batch reader, frequently used reader creators and reader decorators. +and also provide a function which can convert a reader to a batch reader, frequently used reader creators and reader decorators. ## Data Reader Interface -Indeed, *data reader* doesn't have to be a function that reads and yields data items. It can be any function with no parameter that creates a iterable (anything can be used in `for x in iterable`): +*Data reader* doesn't have to be a function that reads and yields data items. It can just be any function without any parameters that creates an iterable (anything can be used in `for x in iterable`) as follows: ``` iterable = data_reader() ``` -Element produced from the iterable should be a **single** entry of data, **not** a mini batch. That entry of data could be a single item, or a tuple of items. Item should be of [supported type](http://www.paddlepaddle.org/doc/ui/data_provider/pydataprovider2.html?highlight=dense_vector#input-types) (e.g., numpy 1d array of float32, int, list of int) +The item produced from the iterable should be a **single** entry of data and **not** a mini batch. The entry of data could be a single item or a tuple of items. Item should be of one of the [supported types](http://www.paddlepaddle.org/doc/ui/data_provider/pydataprovider2.html?highlight=dense_vector#input-types) (e.g., numpy 1d array of float32, int, list of int etc.) -An example implementation for single item data reader creator: +An example implementation for single item data reader creator is as follows: ```python def reader_creator_random_image(width, height): @@ -29,7 +29,7 @@ def reader_creator_random_image(width, height): return reader ``` -An example implementation for multiple item data reader creator: +An example implementation for multiple item data reader creator is as follows: ```python def reader_creator_random_image_and_label(width, height, label): def reader(): @@ -40,9 +40,10 @@ def reader_creator_random_image_and_label(width, height, label): ## Batch Reader Interface -*batch reader* can be any function with no parameter that creates a iterable (anything can be used in `for x in iterable`). The output of the iterable should be a batch (list) of data items. Each item inside the list must be a tuple. +*Batch reader* can be any function without any parameters that creates an iterable (anything can be used in `for x in iterable`). The output of the iterable should be a batch (list) of data items. Each item inside the list should be a tuple. + +Here are some valid outputs: -Here are valid outputs: ```python # a mini batch of three data items. Each data item consist three columns of data, each of which is 1. [(1, 1, 1), @@ -52,26 +53,28 @@ Here are valid outputs: # a mini batch of three data items, each data item is a list (single column). [([1,1,1],), ([2,2,2],), -([3,3,3],), +([3,3,3],)] ``` Please note that each item inside the list must be a tuple, below is an invalid output: ```python # wrong, [1,1,1] needs to be inside a tuple: ([1,1,1],). - # Otherwise it's ambiguous whether [1,1,1] means a single column of data [1, 1, 1], - # or three column of datas, each of which is 1. + # Otherwise it is ambiguous whether [1,1,1] means a single column of data [1, 1, 1], + # or three columns of data, each of which is 1. [[1,1,1], [2,2,2], [3,3,3]] ``` -It's easy to convert from reader to batch reader: +It is easy to convert from a reader to a batch reader: + ```python mnist_train = paddle.dataset.mnist.train() mnist_train_batch_reader = paddle.batch(mnist_train, 128) ``` -Also easy to create custom batch reader: +It is also straight forward to create a custom batch reader: + ```python def custom_batch_reader(): while True: @@ -85,7 +88,8 @@ mnist_random_image_batch_reader = custom_batch_reader ## Usage -batch reader, mapping from item(s) read to data layer, batch size and number of total pass will be passed into `paddle.train`: +Following is how we can use the reader with PaddlePaddle: +The batch reader, a mapping from item(s) to data layer, the batch size and the number of total passes will be passed into `paddle.train` as follows: ```python # two data layer is created: @@ -99,13 +103,13 @@ paddle.train(batch_reader, {"image":0, "label":1}, 128, 10, ...) ## Data Reader Decorator -*Data reader decorator* takes a single or multiple data reader, returns a new data reader. It is similar to a [python decorator](https://wiki.python.org/moin/PythonDecorators), but it does not use `@` syntax. +The *Data reader decorator* takes in a single reader or multiple data readers and returns a new data reader. It is similar to a [python decorator](https://wiki.python.org/moin/PythonDecorators), but it does not use `@` in the syntax. -Since we have a strict interface for data readers (no parameter, return a single data item). Data reader can be used flexiable via data reader decorators. Following are a few examples: +Since we have a strict interface for data readers (no parameters and return a single data item), a data reader can be used in a flexible way using data reader decorators. Following are a few examples: ### Prefetch Data -Since reading data may take time and training can not proceed without data. It is generally a good idea to prefetch data. +Since reading data may take some time and training can not proceed without data, it is generally a good idea to prefetch the data. Use `paddle.reader.buffered` to prefetch data: @@ -117,9 +121,9 @@ buffered_reader = paddle.reader.buffered(paddle.dataset.mnist.train(), 100) ### Compose Multiple Data Readers -For example, we want to use a source of real images (reusing mnist dataset), and a source of random images as input for [Generative Adversarial Networks](https://arxiv.org/abs/1406.2661). +For example, if we want to use a source of real images (say reusing mnist dataset), and a source of random images as input for [Generative Adversarial Networks](https://arxiv.org/abs/1406.2661). -We can do: +We can do the following : ```python def reader_creator_random_image(width, height): @@ -139,13 +143,13 @@ false_reader = reader_creator_bool(False) reader = paddle.reader.compose(paddle.dataset.mnist.train(), data_reader_creator_random_image(20, 20), true_reader, false_reader) # Skipped 1 because paddle.dataset.mnist.train() produces two items per data entry. -# And we don't care second item at this time. +# And we don't care about the second item at this time. paddle.train(paddle.batch(reader, 128), {"true_image":0, "fake_image": 2, "true_label": 3, "false_label": 4}, ...) ``` ### Shuffle -Given shuffle buffer size `n`, `paddle.reader.shuffle` will return a data reader that buffers `n` data entries and shuffle them before a data entry is read. +Given the shuffle buffer size `n`, `paddle.reader.shuffle` returns a data reader that buffers `n` data entries and shuffles them before a data entry is read. Example: ```python @@ -154,21 +158,21 @@ reader = paddle.reader.shuffle(paddle.dataset.mnist.train(), 512) ## Q & A -### Why reader return only a single entry, but not a mini batch? +### Why does a reader return only a single entry, and not a mini batch? -Always returning a single entry make reusing existing data readers much easier (e.g., if existing reader return not a single entry but 3 entries, training code will be more complex because it need to handle cases like batch size 2). +Returning a single entry makes reusing existing data readers much easier (for example, if an existing reader returns 3 entries instead if a single entry, the training code will be more complicated because it need to handle cases like a batch size 2). -We provide function `paddle.batch` to turn (single entry) reader into batch reader. +We provide a function: `paddle.batch` to turn (a single entry) reader into a batch reader. -### Why do we need batch reader, isn't train take reader and batch_size as arguments sufficient? +### Why do we need a batch reader, isn't is sufficient to give the reader and batch_size as arguments during training ? -In most of the case, train taking reader and batch_size as arguments would be sufficent. However sometimes user want to customize order of data entries inside a mini batch. Or even change batch size dynamically. +In most of the cases, it would be sufficient to give the reader and batch_size as arguments to the train method. However sometimes the user wants to customize the order of data entries inside a mini batch, or even change the batch size dynamically. For these cases using a batch reader is very efficient and helpful. -### Why use a dictionary but not a list to provide mapping? +### Why use a dictionary instead of a list to provide mapping? -We decided to use dictionary (`{"image":0, "label":1}`) instead of list (`["image", "label"]`) is because that user can easily resue item (e.g., using `{"image_a":0, "image_b":0, "label":1}`) or skip item (e.g., using `{"image_a":0, "label":2}`). +Using a dictionary (`{"image":0, "label":1}`) instead of a list (`["image", "label"]`) gives the advantage that the user can easily reuse the items (e.g., using `{"image_a":0, "image_b":0, "label":1}`) or even skip an item (e.g., using `{"image_a":0, "label":2}`). -### How to create custom data reader creator +### How to create a custom data reader creator ? ```python def image_reader_creator(image_path, label_path, n): @@ -192,7 +196,7 @@ paddle.train(paddle.batch(reader, 128), {"image":0, "label":1}, ...) ### How is `paddle.train` implemented -An example implementation of paddle.train could be: +An example implementation of paddle.train is: ```python def train(batch_reader, mapping, batch_size, total_pass): diff --git a/doc/_sources/design/refactor/distributed_architecture.md.txt b/doc/_sources/design/refactor/distributed_architecture.md.txt new file mode 100644 index 00000000000..d9fe7d6bbb0 --- /dev/null +++ b/doc/_sources/design/refactor/distributed_architecture.md.txt @@ -0,0 +1,144 @@ +# Design Doc: Distributed Training Architecture + +## Abstract + +PaddlePaddle version 0.10.0 uses the "trainer-parameter server" architecture. We run multiple instances of trainers (where each trainer runs the same model) and parameter servers for distributed training. This architecture serves well, but has few limitations: + +1. There is a need to write special code that handles tasks which should only be run on a single trainer. E.g., initializing the model, saving the model etc. + +2. Model parallelism is hard: It would need all the if-else branches conditioned on the trainer ID to partition the model onto the trainers, and eventually manually writing out the inter-model-shard communication code to communicate between different trainers. + +3. The user can not directly specify the parameter update rule: This would need to modify the parameter server code and compile a new binary. This makes things more complicated for researchers: A lot of extra effort is required to make this work. Besides, the training job submission program may not allow running arbitrary binaries. + +This design doc discusses PaddlePaddle's new distributed training architecture that addresses the above mentioned limitations. + +## Analysis + +The assumption is that the user writes the trainer program in either Python or C++. + +### Limitation 1 + +There are two basic functionalities in the trainer program: + +1. The training logic such as loading / saving the model and printing out the logs. +2. The neural network definition such as the definition of the data layer, the fully connected layer, the cost function and the + optimizer. + +When we train using PaddlePaddle v0.10.0 in a distributed fashion, multiple instances of the same Python code are run on different nodes, hence both: the +training logic as well as the neural network computation logic, is replicated. + +The tasks that only need to be run once belong to the training logic. Hence if we only replicate the neural network computation part, and do **not** +replicate the training logic, the limitation mentioned above can be avoided. + +### Limitation 2 + +Model parallelism means that a single model is partitioned into different components and each node runs one of the component separately. This comes at the extra cost of managing the +inter-model-shard communication between nodes. + +PaddlePaddle should ideally be able to modify the neural network computation and figure out the support for model parallelism automatically. However, the +computation is only specified in Python code which sits outside of PaddlePaddle, hence PaddlePaddle can not support the feature in this setup. + +Similar to how a compiler uses an intermediate representation (IR) so that the programmer does not need to manually optimize their code for most of the cases, we can have an intermediate representation in PaddlePaddle as well. The compiler optimizes the IR as follows: + + + +PaddlePaddle can support model parallelism by converting the IR so that the user no longer needs to manually perform the computation and operations in the Python component: + + + +The IR for PaddlePaddle after refactoring is called a `Block`, it specifies the computation dependency graph and the variables used in the computation. + +### Limitation 3 + +The user can not directly specify the parameter update rule for the parameter server in the Python module, since the parameter server does not use the same computation definition as the trainer. Instead, the update rule is baked inside the parameter server. The user can not specify the update rule explicitly. + +This could be fixed by making the parameter server run the same computation definition as the trainer (the user's Python module). For a detailed explanation, refer to this document - +[Design Doc: Operation Graph Based Parameter Server](./parameter_server.md) + +## Distributed Training Architecture + +The revamped distributed training architecture can address the above discussed limitations. Below is the illustration of how it does so: + + + +The major components in the architecture are: *PaddlePaddle Python*, *PaddlePaddle converter* and *PaddlePaddle runtime*. + +### PaddlePaddle Python + +PaddlePaddle Python is the Python library that user's Python code invokes, to read the data. build the neural network topology, start training, etc. + +```Python +paddle.init() +input = paddle.op.recordIO("/home/data/mnist.recordio") # file stored on the cluster +img, label = input[0], input[1] +hidden = paddle.layer.fc(input=img, size=200, act=paddle.activation.Tanh()) +prediction = paddle.layer.fc(input=img, size=10, act=paddle.activation.Softmax()) +cost = paddle.layer.classification_cost(input=prediction, label=label) +optimizer = paddle.optimizer.SGD(cost, learning_rate=0.01) +session = paddle.session.NewRemote(num_trainer=3, num_ps=2, GPU_per_trainer=1) +for i in range(1000): + _, cost_val = session.eval(targets=[cost, optimizer]) + print cost_val +``` + +The above code is what a typical Python trainer code is, the neural network topology is built using the helper functions such as `paddle.layer.fc`. Training is done by calling `session.eval` iteratively. + +#### session.eval + +As shown in the graph, `session.eval` sends the IR and the evaluation inputs or targets to the PaddlePaddle cluster for evaluation. +The targets can be any variable in the computation graph. When the target is say, the `optimizer` variable, the neural network will be optimized once. When the target is the `cost` variable, `session.eval` returns the cost value. Based on what the target is, an appropriate action is taken. + +The Python `session` is a wrapper of the C++ `Session` class. For more information about `Session`, refer to this document - [Design Doc: Session](./session.md). + +### PaddlePaddle Converter + +The PaddlePaddle converter automatically converts the IR in the request (IR and evaluation inputs/targets) from PaddlePaddle Python to partitioned IRs and dispatches the new IRs and evaluation inputs/targets to different PaddlePaddle runtimes. Below are the steps that are followed : + +1. Add a `feed` OP that feeds the eval inputs, and a `fetch` OP that fetches the eval targets to the IR. + +2. Extract a new computation (sub)graph with the `feed` and `fetch` OPs as the boundary. The runtime does not need to run the OP that is not dependent on the `fetch` OP. + +3. Optimize the computation graph. + +4. Place the OPs in the graph onto different devices on different PaddlePaddle runtime according to a placement algorithm and the device constraints specified by the user. + +5. Partition the graph according to runtime boundaries and add `send` / `recv` OP pair on the runtime boundaries. + +6. Dispatch the partitioned graph to different PaddlePaddle runtimes. + +7. PaddlePaddle runtimes with the `fetch` OP reports evaluation results back to the converter, the converter reports the evaluation results back to the PaddlePaddle Python. + +The output IRs will be cached to optimize the conversion latency. + + +#### Placement Algorithm + +Our first implementation will only support "trainer-parameter server" placement: the parameters, initializers, and optimizers are all placed on the PaddlePaddle runtimes with the parameter server role. Everything else will be placed on the PaddlePaddle runtimes with the trainer role. This has the same functionality as the "trainer-parameter server" architecture of PaddlePaddle v0.10.0, but is more generic and flexible. + +In the future, a more general placement algorithm should be implemented, which makes placements according to the input IR, and a model of device computation time and device communication time. Model parallelism requires the generic placement algorithm. + + +### PaddlePaddle Runtime + +The PaddlePaddle runtime owns multiple devices (e.g., CPUs, GPUs) and runs the IR. The runtime does not need to do OP placement since it is already done by the converter. + + +### Local Training Architecture + +The local training architecture will be the same as the distributed training architecture, the difference is that everything runs locally, and there is just one PaddlePaddle runtime: + + + + +### Training Data + +In PaddlePaddle v0.10.0, training data is typically read with a [data reader](../reader/README.md) from Python. This approach is no longer efficient when training in a distributed fashion since the Python process no longer runs on the same node with the trainer processes. The Python reader will need to read from the distributed filesystem (assuming it has the required access) and send to the trainers, doubling the network traffic. + +When doing distributed training, the user can still use Python data reader: the training data are sent with `session.eval`. However this should be used for debugging purpose only. The users are encouraged to use the read data OPs. + + +## References: + +[1] [TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45166.pdf) + +[2] [TensorFlow: A System for Large-Scale Machine Learning](https://www.usenix.org/system/files/conference/osdi16/osdi16-abadi.pdf) diff --git a/doc/_sources/design/refactor/parameter_server.md.txt b/doc/_sources/design/refactor/parameter_server.md.txt new file mode 100644 index 00000000000..fa3c5d79902 --- /dev/null +++ b/doc/_sources/design/refactor/parameter_server.md.txt @@ -0,0 +1,106 @@ +# Design Doc: Operation Graph Based Parameter Server + +## Abstract + +We propose an approach to implement the parameter server. In this +approach, there is no fundamental difference between the trainer and +the parameter server: they both run subgraphs, but subgraphs of +different purposes. + +## Background + +The previous implementations of the parameter server does not run a +subgraph. parameter initialization, optimizer computation, network +communication and checkpointing are implemented twice on both the +trainer and the parameter server. + +It would be great if we can write code once and use them on both the +trainer and the parameter server: reduces code duplication and +improves extensibility. Given that after the current refactor, we are +representing everything as a computing graph on the +trainer. Representing everything as a computing graph on the parameter +server becomes a natural extension. + +## Design + +### Graph Converter + +The *graph converter* converts the user-defined operation (OP) graph +into subgraphs to be scheduled on different nodes with the following +steps: + +1. OP placement: the OPs will be placed on different nodes according + to heuristic that minimizes estimated total computation + time. Currently we will use a simple heuristic that puts parameter + varable on parameter server workers and everything else on trainer + workers. + +1. Add communication OPs to enable the communication between nodes. + +We will need these OPs: *Send*, *Recv*, *Enqueue*, *Dequeue*. + +Below is an example of converting the user defined graph to the +subgraphs for the trainer and the parameter server: + + + +After converting: + + + +1. The parameter variable W and it's optimizer subgraph are placed on the parameter server. +1. Operators are added to the subgraphs. + - *Send* sends data to the connected *Recv* operator. The + scheduler on the receive node will only schedule *Recv* operator + to run when the *Send* operator has ran (the *Send* OP will mark + the *Recv* OP runnable automatically). + - *Enueue* enqueues the input variable, it can block until space + become available in the queue. + - *Dequeue* outputs configurable numbers of tensors from the + queue. It will block until the queue have the required number of + tensors. + + +### Benefits + +- Model parallelism become easier to implement: it's an extension to + the trainer - parameter server approach. we already have the + communication OPs, but need to extend the graph converter's + placement functionality. + +- User-defined optimizer is easier to add - user can now express it as + a subgraph. + +- No more duplication logic inside the trainer and the parameter + server mentioned in the background section. + +### Challenges + +- It might be hard for the graph converter to cut a general graph + (without any hint for which subgraph is the optimizer). We may need + to label which subgraph inside the OP graph is the optimizer. + +- It's important to balance the parameter shards of on multiple + parameter server. If a single parameter is very big (some + word-embedding, fully connected, softmax layer), we need to + automatically partition the single parameter onto different + parameter servers when possible (only element-wise optimizer depends + on the parameter variable). + +### Discussion + +- In the "Aync SGD" figure, the "W" variable on the parameter server + could be read and wrote concurrently, what is our locking strategy? + E.g., each variable have a lock cpp method to be invoked by every + OP, or, have a lock OP. + +- Can the Enqueue OP be implemented under our current tensor design + (puts the input tensor into the queue tensor)? + +- *Dequeue* OP will have variable numbers of output (depends on the + `min_count` attribute), does our current design support it? (similar + question for the *Add* OP) + + +### References: +[1] [TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45166.pdf) diff --git a/doc/_sources/design/refactor/session.md.txt b/doc/_sources/design/refactor/session.md.txt new file mode 100644 index 00000000000..1d9a26683c1 --- /dev/null +++ b/doc/_sources/design/refactor/session.md.txt @@ -0,0 +1,180 @@ +# Design Doc: Session + +## Abstract + +The *session* object encapsulates the environment in which the +computation graph is executed. + +We will have the *local* session and *remote* session, they offer the +same [interface](#interface). The local session encapsulates the local +runtime environment and the remote session encapsulates the cluster +runtime environment. + +The local runtime environment contains: + +1. computation devices (i.e., CPU, GPU) handles, and +1. the [scope](../scope.md) which holds all variables. + +The remote runtime environment contains: + +1. computation devices (i.e., CPU and GPU on node 0, 1) in a cluster, + and +1. the distributed [scope](../scope.md) in a cluster which holds all + variables. + +The user can create a remote session on Paddle Cloud and evaluate the +computation graph with it. In this way, the user can control the +remote computation resource in a cluster from his local computer. + + +## Background + +The current design has an implicit global session in which +`paddle.eval()` is executed. The pain point is: + +Since the user is not able to explicitly switch between runtime +environments, the user cannot run a topology in two independent +environments. + +For example, in reinforcement learning, the user may want to have a +stale model for inference and a fresh model for training, and only +replace the stale model with the fresh model periodically. + +Furthermore, we have no concept that encapsulates a remote environment +that executes a computation graph. + +We need the session object to address above issues. + + +## Session + +A session is an object that owns the runtime environment. All +computations are executed through `session.eval()`. + + +### Interface + +```python +eval( + targets, + feed_dict=None, +) +``` + +Evaluates the target Operations or Variables in `targets`. + +- *targets*: the evaluation targets. Can be a single Operation or + Variable, or a list with the Operations or Variables as + elements. The value returned by `eval()` has the same shape as the + `target` argument. + + The PaddlePaddle program is represented by + the [ProgramDesc](../design/program.md), `eval()` will infer the + ProgramDesc from the given targets and run the PaddlePaddle + program. Please + see + [this graph](./distributed_architecture.md#local-training-architecture) for + the detailed illustration for the local session + and + [this graph](./distributed_architecture.md#distributed-training-architecture) for + the detailed illustration for the remote session. + +- *feed_dict*: a dictionary that contains the tensors which override + the edges of the computation graph. + + feed_dict not only can provide the input data, it can override any + OP's input as well: + + ```python + a = pd.constant(2.0, name="a") + b = pd.variable(name="b") + c = pd.mul(a,b) + sess.eval(targets=c, feed_dict={"b":3.0}) # returns 6.0 + ``` + +```python +close() +``` + +Closes the session and releases the scope that the session owns. + + +### Create a Local Session + +```python +session( + devices=None +) +``` + +Creates a new session. One session owns one global scope, so creating +multiple sessions will create different scopes. + +- *devices*: a single `string` or a list of `string` of device names, + the corresponding devices will be the computation devices for + `eval()`. If not specified, all available devices (e.g., all GPUs) + will be used. The user doesn't need to specify the CPU device since + it will be always used. Multiple sessions can use the same device. + + +#### Example + +```Python +a = paddle.constant(1.0) +b = paddle.constant(2.0) +c = a + b +sess = paddle.session(devices=["gpu:0", "gpu:1", "fpga:0"]) +sess.eval(c) +sess.close() +``` + +### Create a Remote Session + +```python +create_cloud_job( + name, + num_trainer, + mem_per_trainer, + gpu_per_trainer, + cpu_per_trainer, + num_ps, + mem_per_ps, + cpu_per_ps, +) +``` + +Creates a Paddle Cloud job. Fails if the job name exists. + +```python +get_cloud_job( + name +) +``` + +Gets a Paddle Cloud job. + +```python +remote_session( + job +) +``` + +- *job*: the Paddle Cloud job. + +#### Example + +```Python +reader = paddle.reader.recordio("/pfs/home/peter/mnist-train-*") # data stored on Paddle Cloud +image = reader.column(0) +label = reader.column(1) +fc1 = paddle.op.fc(image, size=256, act="sigmoid") +fc2 = paddle.op.fc(fc1, size=10, act="softmax") +cost = paddle.op.cross_entropy(fc2, label) +opt = paddle.optimizer.sgd(cost) + +job = paddle.create_cloud_job("test", 3, "1G", 1, 1, 2, "1G", 1) +sess = paddle.remote_ession(job) +for i in range(1000): + sess.eval(opt) +sess.close() +``` diff --git a/doc/_sources/design/refactorization.md.txt b/doc/_sources/design/refactorization.md.txt new file mode 100644 index 00000000000..f93d6155e17 --- /dev/null +++ b/doc/_sources/design/refactorization.md.txt @@ -0,0 +1,249 @@ +# Design Doc: Refactorization Overview + +The goals of refactoring include: + +1. Making it easy for external contributors to write new elementary computation operations. +1. Making the codebase clean and readable. +1. Designing a new computation representation -- a computation graph of operators and variables. +1. Implementing auto-scalability and auto fault recoverable distributed computing with the help of computation graphs. + +## Computation Graphs + +1. PaddlePaddle represents the computation, training and inference of Deep Learning models, by computation graphs. + + 1. Please refer to [computation graphs](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/graph.md) for a concrete example. + +1. Users write Python programs to describe the graphs and run them (locally or remotely). + +1. A graph is composed of *variables* and *operators*. + +1. The description of graphs must be serializable/deserializable, so that: + + 1. It can be sent to the cloud for distributed execution, and + 1. It can be sent to clients for mobile or enterprise deployment. + +1. The Python program does two things + + 1. *Compilation* runs a Python program to generate a protobuf message representation of the graph and send it to + 1. the C++ library `libpaddle.so` for local execution, + 1. the master process of a distributed training job for training, or + 1. the server process of a Kubernetes serving job for distributed serving. + 1. *Execution* executes the graph by constructing instances of class [`Variable`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/variable.h#L24) and [`OperatorBase`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/operator.h#L70), according to the protobuf message. + +## Description and Realization of Computation Graph + +At compile time, the Python program generates a protobuf message representation of the graph, or a description of the graph. + +At runtime, the C++ program realizes the graph and runs it. + +| | Representation (protobuf messages) | Realization (C++ class objects) | +|---|---|---| +|Data|[VarDesc](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/framework.proto#L107)|[Variable](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/variable.h#L24)| +|Operation|[OpDesc](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/framework.proto#L35)|[Operator](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/operator.h#L64)| +|Block|BlockDesc|Block| + +The word *graph* is interchangeable with *block* in this document. A graph consists of computation steps and local variables similar to a C++/Java program block, or a pair of parentheses(`{` and `}`). + +## Compilation and Execution + +1. Run a Python program to describe the graph. In particular, the Python application program does the following: + + 1. Create `VarDesc` to represent local/intermediate variables, + 1. Create operators and set attributes, + 1. Validate attribute values, + 1. Infer the type and the shape of variables, + 1. Plan memory-reuse for variables, + 1. Generate the backward graph + 1. Add optimization operators to the computation graph. + 1. Optionally, split the graph for distributed training. + +1. The invocation of `train` or [`infer`](https://github.com/PaddlePaddle/Paddle/blob/develop/python/paddle/v2/inference.py#L108) methods in the Python program does the following: + + 1. Create a new Scope instance in the [scope hierarchy](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/scope.md) for each run of a block, + 1. realize local variables defined in the BlockDesc message in the new scope, + 1. a scope is similar to the stack frame in programming languages, + + 1. Create an instance of class `Block`, in which, + 1. realize operators in the BlockDesc message, + + 1. Run the Block by calling + 1. `Block::Eval(vector* targets)` for forward and backward computations, or + 1. `Block::Eval(vector* targets)` for optimization. + + +## Intermediate Representation (IR) + +```text +Compile Time -> IR -> Runtime +``` + +### Benefits of IR + +- Optimization + ```text + Compile Time -> IR -> Optimized IR -> Runtime + ``` +- Automatically send partitioned IR to different nodes. + - Automatic Data Parallelism + ```text + Compile Time + |-> Single GPU IR + |-> [trainer-IR-0, trainer-IR-1, pserver-IR] + |-> Node-0 (runs trainer-IR-0) + |-> Node-1 (runs trainer-IR-1) + |-> Node-2 (runs pserver-IR) + ``` + - Automatic Model Parallelism (planned for future) + +--- + +# Operator/OpWithKernel/OpKernel + +![class_diagram](http://api.paddlepaddle.org/graphviz?dot=https://gist.githubusercontent.com/reyoung/53df507f6749762675dff3e7ce53372f/raw/49caf1fb70820fb4a6c217634317c9306f361f36/op_op_with_kern_class_diagram.dot) + +--- + +# Operator +![class_diagram](http://api.paddlepaddle.org/graphviz?dot=https://gist.githubusercontent.com/reyoung/53df507f6749762675dff3e7ce53372f/raw/dd598e8f1976f5759f58af5e5ef94738a6b2e661/op.dot) + +* `Operator` is the fundamental building block of the user interface. + * Operator stores input/output variable names and attributes. + * The `InferShape` interface is used to infer the shape of the output variables based on the shapes of the input variables. + * Use `Run` to compute the `output` variables from the `input` variables. + +--- + +# OpWithKernel/Kernel + +![class_diagram](http://api.paddlepaddle.org/graphviz?dot=https://gist.githubusercontent.com/reyoung/53df507f6749762675dff3e7ce53372f/raw/9d7f4eba185cf41c8e2fbfb40ae21890dbddcd39/op_with_kernel.dot) + +* `OpWithKernel` inherits `Operator`. +* `OpWithKernel` contains a Kernel map. + * `OpWithKernel::Run` get device's kernel, and invoke `OpKernel::Compute`. + * `OpKernelKey` is the map key. Only device place now, but may be data type later. + +--- + +# Why separate Kernel and Operator + +* Separate GPU and CPU code. + * Make Paddle capable of running without GPU. +* Make one operator (which is a user interface) and create many implementations. + * For example, same multiplication op can have different implementations kernels such as FP16 kernel, FP32 kernel, MKL, eigen kernel. +--- + +# Libraries for Kernel development + +* `Eigen::Tensor` contains basic math and element-wise functions. + * Note that `Eigen::Tensor` has broadcast implementation. + * Limit the number of `tensor.device(dev) = ` in your code. +* `thrust::transform` and `std::transform`. + * `thrust` has the same API as C++ standard library. Using `transform`, one can quickly implement customized element-wise kernels. + * `thrust`, in addition, supports more complex APIs, like `scan`, `reduce`, `reduce_by_key`. +* Hand-writing `GPUKernel` and `CPU` code + * Do not write in header (`.h`) files. CPU Kernel should be in cpp source (`.cc`) and GPU kernels should be in cuda (`.cu`) files. (GCC cannot compile GPU code.) +--- +# Operator Registration + +## Why is registration necessary? +We need a method to build mappings between Op type names and Op classes. + +## How is registration implemented? +Maintaining a map, whose key is the type name and the value is the corresponding Op constructor. + +--- +# The Registry Map + +### `OpInfoMap` + +`op_type(string)` -> `OpInfo` + +`OpInfo`: + +- **`creator`**: The Op constructor. +- **`grad_op_type`**: The type of the gradient Op. +- **`proto`**: The Op's Protobuf, including inputs, outputs and required attributes. +- **`checker`**: Used to check attributes. + +--- +# Related Concepts + +### Op_Maker +It's constructor takes `proto` and `checker`. They are completed during Op_Maker's construction. ([ScaleOpMaker](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/scale_op.cc#L37)) + +### Register Macros +```cpp +REGISTER_OP(op_type, op_class, op_maker_class, grad_op_type, grad_op_class) +REGISTER_OP_WITHOUT_GRADIENT(op_type, op_class, op_maker_class) +``` + +--- +# Registration Process +1. Write an Op class and its gradient Op class, if required. +2. Write an Op maker class. In the constructor of this class, describe the inputs, outputs and attributes of the operator. +3. Invoke the macro `REGISTER_OP`. This macro will + 1. Call maker class to complete `proto` and `checker` + 2. Using the completed `proto` and `checker`, it will add a new key-value pair to the `OpInfoMap` + +--- +# Backward Module (1/2) +### Create Backward Operator +- Mapping from forward Op to backward Op +![backward](https://gist.githubusercontent.com/dzhwinter/a6fbd4623ee76c459f7f94591fd1abf0/raw/61026ab6e518e66bde66a889bc42557a1fccff33/backward.png) + +--- +# Backward Module (2/2) +### Build Backward Network +- **Input**: a graph of forward operators +- **Output**: a graph of backward operators +- **Corner cases in construction** + - Shared Variables => insert an `Add` operator to combine gradients + - No Gradient => insert a `fill_zero_grad` operator + - Recursive NetOp => call `Backward` recursively + - RNN Op => recursively call `Backward` on stepnet + - RNN Op => recursively call `Backward` on stepnet + + +--- +# Scope, Variable, Tensor + +* `Tensor` is an n-dimension array with type. + * Only dims and data pointers are stored in `Tensor`. + * All operations on `Tensor` are written in `Operator` or global functions. + * Variable length Tensor design [LoDTensor](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/lod_tensor.md) +* `Variable` instances are the inputs and the outputs of an operator, not just `Tensor`. + * `step_scopes` in RNN is a variable and not a tensor. +* `Scope` is where variables are stored. + * map + * `Scope` has a hierarchical structure. The local scope can get variables from its parent scope. + +--- +# Block (in design) +## the difference between original RNNOp and Block +- As an operator is more intuitive than `RNNOp`, +- Offers a new interface `Eval(targets)` to deduce the minimal block to `Run`, +- Fits the compile-time/ runtime separation design paradigm. + - During the compilation, `SymbolTable` stores `VarDesc`s and `OpDesc`s and serialize to a `BlockDesc` + - When graph executes, a Block with `BlockDesc` is passed. It then creates `Op` and `Var` instances and then invokes `Run`. + +--- +# Milestone +- Take Paddle/books as the main line, the requirement of the models motivates framework refactoring, +- Model migration + - Framework development gives **priority support** to model migration, for example, + - the MNIST demo needs a Python interface, + - the RNN models require the framework to support `LoDTensor`. + - Determine some timelines, + - Frequently used Ops need to be migrated first, + - Different models can be migrated in parallel. +- Improve the framework at the same time +- Accept imperfection, concentrate on solving the specific problem at the right price. + +--- +# Control the migration quality +- Compare the performance of migrated models with old ones. +- Follow the google C++ style guide. +- Build the automatic workflow of generating Python/C++ documentations. + - The documentation of layers and ops should be written inside the code. + - Take the documentation quality into account when submitting pull requests. + - Preview the documentations, read and improve them from a user's perspective. diff --git a/doc/_sources/design/register_grad_op.md.txt b/doc/_sources/design/register_grad_op.md.txt new file mode 100644 index 00000000000..8d973eb5317 --- /dev/null +++ b/doc/_sources/design/register_grad_op.md.txt @@ -0,0 +1,92 @@ +# Design Doc: Gradient Operators Registration + + +## The Problem Posed + +Currently, for each C++ operator class definition, a *gradient operator creator* function is registered, which takes as input a C++ operator instance and returns the corresponding gradient operator instance. + +However, we noticed two problems with the current design: + +1. As we decided to separate the *compilation* and the *execution* phases, we need to change the creator to take an `OpDesc` protobuf message in a `ProgramDesc` and inserts corresponding `OpDesc` messages into the `ProgramDesc` message. + +1. For some operators, the gradient computation can be written in terms of existing operators. For example, the gradient of *minus* operator consists of two operators -- an *identity* operator followed by a *scale* operator. Hence the registration mechanism needs to support mapping from an operator to a set of operators for the gradient computation. + +## The Current Implementation + +Instances of the C++ class `OpInfo` are stored an associative map whose key is the operator type. The `grad_op_type` indicates the associated gradient operator type. An operator can create the gradient operator by invoking `OpInfo::creator_` of the gradient operator. The pseudo code is as follows + +```cpp +struct OpInfo { + std::function creator_; + std::string grad_op_type_; + ... +}; + +map OpInfoMap; + +OperatorBase* CreateGradientOperator(const OperatorBase& op) { + return OpInfoMap.at(op.Type()).creator_(...); +} +``` + +## Proposed Solution + +The mapping relationship between an operator and its gradient operators is a function. The interface of this function is: + +```cpp +// (OpDesc) --> vector +std::function(const OpDescBind&)>; +``` + +The function takes an `OpDescBind` of the forward operator and returns one or many gradient operator descriptions. `OpDescBind` is a C++ wrapper for the protobuf message `OpDesc` for rapid manipulation of `OpDesc`. + +The `GradOpDescMaker` will be registered in `OpInfo` and will replace the `grad_op_type_` field. The `OpInfo` should look like + +```cpp +struct OpInfo { + std::function>(const OpDescBind&)> grad_op_maker_; + ... +}; +``` + +The `grad_op_maker_ ` is a `nullptr` if the operator does not have any associated gradient operators. + +We propose a base class called `GradOpDescMakerBase` to let operator developers generate `Gradient Operators` easily. The public interface of that class is + +```cpp +class GradOpDescMakerBase { +public: + GradOpDescMakerBase(const OpDescBind& ); + virtual std::vector> operator()()const = 0; +}; +``` + +We can convert `GradOpDescMakerBase` to `std::function>(const OpDescBind&)>` by + +```cpp +using GradOpMaker = ...; +std::function(const OpDescBind&)> func; +func = [] (const OpDescBind& fwd_op) { + GradOpMaker maker(fwd_op); + return maker(); +}; +``` + +We can write many helper functions since the `GradOpDescMakerBase` is a class now. The basic helper functions get the variables of `Input`, `Output`, `InputGradient` and `OutputGradient` in the forwarding operator. + +We should change register macros at the same time. In the current solution, there is no difference between forwarding operators and backward operators. So `REGISTER_OP` just register one operator. If the `REGISTER_OPERATOR ` contains `OpProtoAndCheckerMaker` and `GradOpDescMaker`, we just list them in the same macro. It can be done by a macro contains `__VA_ARGS__`. + +The user interface should be + +```cpp +vector MinusOpGradMaker(OpDesc) {...} +REGISTER_OPERATOR(minus, MinusOp, MinusOpProtoAndCheckerMaker, SumOpGradMaker); +// Developers can still manually implement gradient operator. +REGISTER_OPERATOR(minus_grad, MinusGradOp); +``` + +The interface of current `REGISTER_OP` macro could not be changed. In `REGISTER_OP`, it will invoke `REGISTER_OPERATOR` two times and generate GradOpDescMaker inside. + +```cpp +REGISTER_OP(minus, MinusOp, MinusOpProtoAndCheckerMaker, minus_grad, MinusGradOp); +``` diff --git a/doc/_sources/design/regularization.md.txt b/doc/_sources/design/regularization.md.txt new file mode 100644 index 00000000000..21280ac898f --- /dev/null +++ b/doc/_sources/design/regularization.md.txt @@ -0,0 +1,72 @@ +# Regularization in PaddlePaddle + +## Introduction to Regularization +A central problem in machine learning is how to design an algorithm that will perform well not just on the training data, but also on new data. A frequently faced problem is the problem of **overfitting**, where the model does not make reliable predictions on new unseen data. **Regularization** is the process of introducing additional information in order to prevent overfitting. This is usually done by adding extra penalties to the loss function that restricts the parameter spaces that an optimization algorithm can explore. + +### Parameter Norm Penalties +Most common regularization approaches in deep learning are based on limiting the capacity of the models by adding a parameter norm penalty to the objective function `J`. This is given as follows: + +
+ +The parameter `alpha` is a hyperparameter that weights the relative contribution of the norm penalty term, `omega`, relative to the standard objective function `J`. + +The most commonly used norm penalties are the L2 norm penalty and the L1 norm penalty. These are given as follows: + +##### L2 Regularization: +
+ +##### L1 Regularization +
+ +A much more detailed mathematical background of regularization can be found [here](http://www.deeplearningbook.org/contents/regularization.html). + +## Regularization Survey + +A detailed survey of regularization in various deep learning frameworks can be found [here](https://github.com/PaddlePaddle/Paddle/wiki/Regularization-Survey). + +## Proposal for Regularization in PaddlePaddle + +### Low-Level implementation + +In the new design, we propose to create new operations for regularization. For now, we can add 2 ops that correspond to the most frequently used regularizations: +- L2_regularization_op +- L1_regularization_op + +These ops can be like any other ops with their own CPU/GPU implementations either using Eigen or separate CPU and GPU kernels. As the initial implementation, we can implement their kernels using Eigen following the abstraction pattern implemented for [Activation Ops](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/accuracy_op.h). This abstraction pattern can make it very easy to implement new regularization schemes other than L1 and L2 norm penalties. + +The idea of building ops for regularization is in sync with the refactored Paddle philosophy of using operators to represent any computation unit. The way these ops will be added to the computation graph, will be decided by the [layer functions](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/python_api.md#layer-function) in Python API. + +### Computation Graph + +Below is an example of a really simple feed forward neural network. + +
+ +The Python API will modify this computation graph to add regularization operators. The modified computation graph will look as follows: + +
+    +### Python API implementation for Regularization + +Using the low level ops, `L2_regularization_op` and `L1_regularization_op`, any user can add regularization to their computation graphs. However, this will require a lot of lines of code and we should design Python APIs that support regularization. An example of such an API can be seen in [Keras](https://keras.io/regularizers/). As per the PaddlePaddle [Python API design](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/python_api.md), the layer functions are responsible for creating operators, operator parameters and variables. Since regularization is a property of parameters, it makes sense to create these in the layer functions. + +#### Creation of Regularization ops +There are two possibilities for creating the regularization ops: +1. We create these ops immediately while building the computation graph. +2. We add these ops in a lazy manner, just before the backward, similar to the way the optimization ops are added. + +The proposal is to add these ops in a lazy manner just before the backward pass. + +#### Storage of Regularization attributes + +Since we want to create the regularization ops in a lazy manner, the regularization attributes (type of regularization and weight of regularization penalty) can be stored as attributes of the [`Parameter`](https://github.com/PaddlePaddle/Paddle/blob/develop/python/paddle/v2/framework/framework.py#L421) class. This is because regularization is a property of the parameters and storing regularization properties with Parameters also allows for shared parameters. + +#### High-level API + +In PaddlePaddle Python API, users will primarily rely on [layer functions](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/design/python_api.md#layer-function) to create neural network layers. Hence, we also need to provide regularization functionality in layer functions. The design of these APIs can be postponed for later right now. A good reference for these APIs can be found in [Keras](https://keras.io/regularizers/) and also by looking at Tensorflow in [`tf.contrib.layers`](https://www.tensorflow.org/api_guides/python/contrib.layers). + + + + + + diff --git a/doc/_sources/design/releasing_process.md.txt b/doc/_sources/design/releasing_process.md.txt new file mode 100644 index 00000000000..14c081ea842 --- /dev/null +++ b/doc/_sources/design/releasing_process.md.txt @@ -0,0 +1,68 @@ +# PaddlePaddle发行规范 + +PaddlePaddle使用git-flow branching model做分支管理,使用[Semantic Versioning](http://semver.org/)标准表示PaddlePaddle版本号。 + +PaddlePaddle每次发新的版本,遵循以下流程: + +1. 从`develop`分支派生出新的分支,分支名为`release/版本号`。例如,`release/0.10.0` +1. 将新分支的版本打上tag,tag为`版本号rc.Patch号`。第一个tag为`0.10.0rc1`,第二个为`0.10.0rc2`,依次类推。 +1. 对这个版本的提交,做如下几个操作: + * 修改`python/setup.py.in`中的版本信息,并将`istaged`字段设为`True`。 + * 编译这个版本的Docker发行镜像,发布到dockerhub。如果失败,修复Docker编译镜像问题,Patch号加一,返回第二步 + * 编译这个版本的Ubuntu Deb包。如果失败,修复Ubuntu Deb包编译问题,Patch号加一,返回第二步。 + * 使用Regression Test List作为检查列表,测试Docker镜像/ubuntu安装包的功能正确性 + * 如果失败,记录下所有失败的例子,在这个`release/版本号`分支中,修复所有bug后,Patch号加一,返回第二步 + * 编译这个版本的python wheel包,并发布到pypi。 + * 由于pypi.python.org目前遵循[严格的命名规范PEP 513](https://www.python.org/dev/peps/pep-0513),在使用twine上传之前,需要重命名wheel包中platform相关的后缀,比如将`linux_x86_64`修改成`manylinux1_x86_64`。 + * pypi上的package名称为paddlepaddle和paddlepaddle_gpu,如果要上传GPU版本的包,需要修改build/python/setup.py中,name: "paddlepaddle_gpu"并重新打包wheel包:`python setup.py bdist_wheel`。 + * 上传方法: + ``` + cd build/python + pip install twine + twine upload dist/[package to upload] + ``` +1. 第三步完成后,将`release/版本号`分支合入master分支,并删除`release/版本号`分支。将master分支的合入commit打上tag,tag为`版本号`。同时再将`master`分支合入`develop`分支。最后删除`release/版本号`分支。 +1. 编译master分支的Docker发行镜像,发布到dockerhub。编译ubuntu的deb包,发布到github release页面 +1. 协同完成Release Note的书写 + + +需要注意的是: + +* `release/版本号`分支一旦建立,一般不允许再从`develop`分支合入`release/版本号`。这样保证`release/版本号`分支功能的封闭,方便测试人员测试PaddlePaddle的行为。 +* 在`release/版本号`分支存在的时候,如果有bugfix的行为,需要将bugfix的分支同时merge到`master`, `develop`和`release/版本号`这三个分支。 + +## PaddlePaddle 分支规范 + +PaddlePaddle开发过程使用[git-flow](http://nvie.com/posts/a-successful-git-branching-model/)分支规范,并适应github的特性做了一些区别。 + +* PaddlePaddle的主版本库遵循[git-flow](http://nvie.com/posts/a-successful-git-branching-model/)分支规范。其中: + * `master`分支为稳定(stable branch)版本分支。每一个`master`分支的版本都是经过单元测试和回归测试的版本。 + * `develop`分支为开发(develop branch)版本分支。每一个`develop`分支的版本都经过单元测试,但并没有经过回归测试。 + * `release/版本号`分支为每一次Release时建立的临时分支。在这个阶段的代码正在经历回归测试。 + +* 其他用户的fork版本库并不需要严格遵守[git-flow](http://nvie.com/posts/a-successful-git-branching-model/)分支规范,但所有fork的版本库的所有分支都相当于特性分支。 + * 建议,开发者fork的版本库使用`develop`分支同步主版本库的`develop`分支 + * 建议,开发者fork的版本库中,再基于`develop`版本fork出自己的功能分支。 + * 当功能分支开发完毕后,向PaddlePaddle的主版本库提交`Pull Reuqest`,进而进行代码评审。 + * 在评审过程中,开发者修改自己的代码,可以继续在自己的功能分支提交代码。 + +* BugFix分支也是在开发者自己的fork版本库维护,与功能分支不同的是,BugFix分支需要分别给主版本库的`master`、`develop`与可能有的`release/版本号`分支,同时提起`Pull Request`。 + +## PaddlePaddle回归测试列表 + +本列表说明PaddlePaddle发版之前需要测试的功能点。 + +### PaddlePaddle Book中所有章节 + +PaddlePaddle每次发版本首先要保证PaddlePaddle Book中所有章节功能的正确性。功能的正确性包括验证PaddlePaddle目前的`paddle_trainer`训练和纯使用`Python`训练模型正确性。 + +| | 新手入门章节 | 识别数字 | 图像分类 | 词向量 | 情感分析 | 语意角色标注 | 机器翻译 | 个性化推荐 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| API.V2 + Docker + GPU | | | | | | | | | +| API.V2 + Docker + CPU | | | | | | | | | +| `paddle_trainer` + Docker + GPU | | | | | | | | | +| `paddle_trainer` + Docker + CPU | | | | | | | | | +| API.V2 + Ubuntu + GPU | | | | | | | | | +| API.V2 + Ubuntu + CPU | | | | | | | | | +| `paddle_trainer` + Ubuntu + GPU | | | | | | | | | +| `paddle_trainer` + Ubuntu + CPU | | | | | | | | | diff --git a/doc/_sources/design/scope.md.txt b/doc/_sources/design/scope.md.txt new file mode 100644 index 00000000000..4da76eebb74 --- /dev/null +++ b/doc/_sources/design/scope.md.txt @@ -0,0 +1,124 @@ +# Design of Scope in Paddle + +## Overview + +Scope is an important concept in programming languages, which defines a program region that a set of bindings between names and entities applies. In a specific scope, a valid name is uniquely associated with an entity, such as a variable. And in another scope, this name may refer to other entity or nothing at all. It clearly restricts the visibility and validity of names in a program. Hence **Scope** is introduced to PaddlePaddle to manage variables in context. But different from the original abstract concept, Scope now becomes an object with two important attributes: + +- Scope is an association of a name to variable. +- Variables in a parent scope can be retrieved from local scope. + +A detailed explanation of these two attributes goes as following. + + +## Scope is an association of a name to variable. + +Scope is an association of a name to variable. All variables belong to `Scope`. You need to specify a scope to run a Net, i.e., `net.Run(&scope)`. One net can run in different scopes and update different variable in the scope. + + +1. Scope only contains a map of a name to variable. + + All parameters, data, states in a Net should be variables and stored inside a scope. Each op should get inputs and outputs to do computation from a scope, such as data buffer, state (momentum) etc. + +1. Variable can only be created by Scope and a variable can only be got from Scope. User cannot create or get a variable outside a scope. This is a constraints of our framework, and will keep our framework simple and clear. + +1. Scope only contains methods that are used to Create and Get Variables. Scope do not contain Operators and have no information to run them. + `Net` is designed to drive the computation and Scope only contains a map of variables. There is no computation logic inside a `Scope`. Scope just handles the lifetime management of variables. + - `Create` is used to create a Variable by its name and add the mapping relation. + - `Get` is used to find a Variable by name. + +1. Every variable only belongs to one certain Scope. + + Variable can not belong to many scopes. If you want to use variables from parent scope, you can use `parent scope`. + +1. Scope should destruct all Variables inside it when itself is destructed. User can never store `Variable` pointer somewhere else. + + Because Variable can only be got from Scope. When destroying Scope, we also need to destroy all the Variables in it. If user store `Variable` pointer to private data member or some global variable, the pointer will be an invalid pointer when associated `Scope` is destroyed. + +```cpp +class Scope { + public: + Variable* Var(const std::string& name); + const Variable* FindVar(const std::string& name) const; + + private: + std::unordered_map> vars_; +}; +``` + + +## Parent scope and local scope + +Just like [scope](https://en.wikipedia.org/wiki/Scope_(computer_science)) in programming languages, `Scope` in the neural network can also be a local scope. There are two attributes about local scope. + +1. We can create local variables in a local scope. When that local scope is destroyed, all local variables should also be destroyed. +2. Variables in a parent scope can be retrieved from local scopes of that parent scope, i.e., when user get a variable from a scope, it will try to search this variable in current scope. If there is no such variable in the local scope, `scope` will keep searching from its parent, until the variable is found or there is no parent. + +```cpp +class Scope { + public: + Scope(const std::shared_ptr& scope): parent_(scope) {} + + Variable* FindVar(const std::string& name) const { + auto it = vars_.find(name); + if (it != vars_.end()) { + return it->second.get(); + } else if (parent_ != nullptr) { + return parent_->FindVar(name); + } else { + return nullptr; + } + } + + private: + std::shared_ptr parent_ {nullptr}; +}; +``` + +In `Scope` class, there is a private data member called `parent_`. `parent_` is a smart pointer to its parent scope. When user `Get` a variable by its `name`, the `name` will be searched inside the current scope. If the variable cannot be found locally and parent scope is not a `nullptr`, the variable will be searched inside that parent scope. `parent_` pointer's default value is `nullptr`. It means that the scope is a global scope when `parent_` is nullptr. + +A local scope is very useful when we implement Recurrent Neural Network. Each timestep of an RNN should be a `Net`. Each `Net` of timestep (`StepNet` for short) should use an independent local scope. Just like variables in a while loop is inside a local scope in programming languages. By using a single `StepNet` and changing local scope, we can implement an RNN easily. + +# Interface Design + +```cpp +class Variable { + private: + Variable() = default; + friend class Scope; +}; + +class Scope { + private: + Scope(const std::shared_ptr& parent = nullptr); + + public: + static std::shared_ptr Create(const std::shared_ptr& parent = nullptr); + + // return nullptr if not found. + Variable* FindVar(const std::string& name) const; + + // return if already contains same name variable. + Variable* Var(const std::string& name); + + private: + std::shared_ptr parent_; + std::unordered_map> vars_; +}; +``` +## Only scope can create a variable + +To ensure `only scope can create a variable`, we should mark `Variable`'s constructor as a private member function, and Scope is a friend class of Variable. And then only `Var` can construct `Variable`. + +## When scope destroyed, all variables inside this scope should be destroyed together + +The scope hold unique pointers for all variables. User can `FindVar` from scope, but he should not hold this pointer as a member variable. Because when scope is destroyed, all variables inside this scope will be destroyed together. + +## Sharing a parent scope + +Local scope contains a `parent_` pointer. It is a linked-list for scopes. Using a `shared_ptr` because when a local scope is using, its parents cannot be destroyed. + +Also, as the parent scope is a `shared_ptr`, we can only `Create()` a scope shared pointer. We cannot construct a scope variable, because it cannot be passed to other scope as `parent` pointer. + +## Orthogonal interface + +`FindVar` will return `nullptr` when `name` is not found. It can be used as `Contains` method. `Var` will return an `Error` when there is a name conflict locally. Combine `FindVar` and `Var`, we can implement `Var` easily. diff --git a/doc/_sources/design/selected_rows.md.txt b/doc/_sources/design/selected_rows.md.txt new file mode 100644 index 00000000000..1a98839a957 --- /dev/null +++ b/doc/_sources/design/selected_rows.md.txt @@ -0,0 +1,74 @@ +# Design Doc: Selected Rows + +`SelectedRows` is a type of sparse tensor data type, which is designed to support `embedding` operators. The gradient of embedding table is a sparse tensor. Only a few rows are non-zero values in this tensor. It is straight-forward to represent a sparse tensor by the following sparse tensor data structure: + +```cpp +class SelectedRows { + private: + vector rows_; + Tensor value_; + int height_; +}; +``` + +The field `height_` is the first dimension of `SelectedRows`. The `rows` are the indices of the non-zero rows of `SelectedRows`. The `value_` field is an N-dim tensor of shape `[rows.size() /* NUM_ROWS */, ...]`, which supplies values for each row. The dimension of `SelectedRows` satisfies `[height_] + value_.shape[1:]`. + +Suppose that a SelectedRows-typed variable `x` has many rows, but only two of them have values -- row 73 is `[1, 2]` and row 84 is `[3, 4]`, the `SelectedRows` representation would be: + +``` +x = SelectedRow { + rows = [73, 84], + value = [[1, 2], [3,4]] +} +``` + + +## SelectedRows in Protobuf + +`SelectedRows` is a type of `Variable`. `VarDesc` in protobuf should describe the `SelectedRows` information. Only the tensor dimension of a `SelectedRows` will be described in compile-time because the `rows_` and `value_` are dependent on the training data. +So we use `TensorDesc` to unify `data_type` and `dims`. A LodTensorDesc contains a `TensorDesc` and `lod_level`. The description of `SelectedRows` is a Tensor description. + +```proto +message TensorDesc { + required DataType data_type = 1; + repeated int64 dims = 2; // [UNK, 640, 480] is saved as [-1, 640, 480] +} + +message LodTensorDesc { + required TensorDesc tensor = 1; + optional int lod_level = 2; +} + +message VarDesc { + required string name = 1; + enum VarType { + LOD_TENSOR = 0; + SELECTED_ROWS = 1; + } + required VarType type = 2; + optional LodTensorDesc lod_desc = 3; + optional TensorDesc selected_rows_desc = 4; + optional bool persistable = 5 [ default = false ]; +} +``` + +## InferShape for Selected Rows + +Just like `LoD` information, `InferShape` method will infer the output tensor type as well. The operator should decide whether its output is a `SelectedRows` or `Dense` tensor. + +For example, the gradient operator of `TableLookup` will always generate `SelectedRows`. Its `InferShape` method should be like following + +```cpp +void TableLookupGrad::InferShape(context) { + ... + context.SetDataType("Embedding.Grad", kSelectedRows); +} +``` + + +## Sparse Operators + +There are several operators that need to be written to support `SelectedRows`. These are: + +1. Operators which generate `SelectedRows` gradient. e.g. Gradient of `TableLookupOp`. +2. Optimize operators which support `SelectedRows` gradient. e.g. `SGD` or `AdaGrad` for `SelectedRows`. However, there should be only one `SGD` operator. `OpWithKernel::Run` should select a suitable kernel for both `dense` tensor or `SelectedRows`. diff --git a/doc/_sources/design/simple_op_design.md.txt b/doc/_sources/design/simple_op_design.md.txt new file mode 100644 index 00000000000..c7aeed7f9b4 --- /dev/null +++ b/doc/_sources/design/simple_op_design.md.txt @@ -0,0 +1,202 @@ +## Interaction between C++ and Python + +Users employ API in Python to describe their own network, however, the network construction actually happens in C++. so Protobuf is introduced to send the message between Python and C++. + +The Interaction between Python and C++ can be simplified as two steps: + +1. C++ tells Python how many Ops there are, and what parameter do users need to offer to initialize a new Op. Python then builds API for each Op at compile time. + +2. Users invoke APIs built by Python and provide necessary parameters. These parameters will be sent to C++ for finishing the Op construction task. + +### Message from C++ to Python + +We define a Protobuf message class `OpProto` to hold message needed in the first step. What should an `OpProto` contain? This question is equivalent to “What message do we need to offer, to build a Python API which is legal and user oriented and can use to describe a whole Op.” + +Following message are necessary: + +1. Op's name, and its simple comment. +2. Input and output variable number; each variable's name, type, and comment. +3. Op's attributes; each attribute includes name, type, comment, **default value** and **value range**. + +So `OpProto` can be defined as follows: + +```proto +enum AttrType { + INT = 1; + FLOAT = 2; + STRING = 3; + INTS = 4; + FLOATS = 5; + STRINGS = 6; +}; + +message AttrValue { + AttrType type = 1; + optional int iv = 2; + optional float fv = 3; + optional string sv = 4; + repeated int ivs = 5; + repeated float fvs = 6; + repeated string svs = 7; +}; + +message AttrProto { + required string name = 1; + required string comment = 2; + required AttrType type = 3; +}; + +message VarProto { + required string name = 1; + required string comment = 2; + required bool is_tensor = 3; +}; + +message OpProto { + repeated VarProto inputs = 1; + repeated VarProto outputs = 2; + repeated AttrProto attrs = 3; + required string type = 4; + required string comment = 5; +}; +``` + +To generate Python code automatically: + +```python +def create_python_ops_creatation_functions(): + op_protos = paddle.framework.OpRegistry.get_all_op_proto() + for type_name in op_protos: + op_proto = op_protos[type_name] + def __impl__(**kwargs): # User must use key word args in Paddle API + inputs = [kwargs.get(ipt.name, "") for ipt in op_proto.inputs] + outputs = [kwargs.get(opt.name, "") for opt in op_proto.outputs] + attrs = [cast_to_op_attr(attr, kwargs.get(attr.name, None)) for attr in op_proto.attrs] + opdesc = (input, outputs, type_name, attrs) + return paddle.framework.OpRegistry.CreateOp(opdesc) + __impl__.__doc__ = create_doc_string(op_proto) + globals()[type_name] = __impl__ + +create_python_ops_creatation_functions() +``` + +### Message from Python to C++ + +To hold message needed in the above second step, we define Protobuf message class `OpDesc`. It is used to hold user-specified parameters in Op describing. + +```proto +message OpDesc { + required string type = 1; + repeated string inputs = 2; + repeated string outputs = 3; + map attrs = 4; +}; +``` + +## OpProto Register + +Every Op has its own `OpProto`. For using convenience, we need to register them and record all their messages. For each `Op` class, we define a corresponding `OpMaker` class, in whose constructor we implement the `OpProto`'s building process. `OpMaker`'s constructor will be invoked by another function `OpRegistry::RegisterOp()`. + +```cpp +class OpProtoMaker { +public: + OpProtoMaker(OpProto* proto): proto_(proto) {} +protected: + OpProto* proto_; + void AddInput(const std::string& name, const std::string& desc) {...} + void AddAttr(const std::string& name, const std::string& desc, TypeId type) {...} + void AddComment(const std::string& comment) { ... } +}; + +class OpRegistry { +public: + using OpCreator = std::function; + + template + static void RegisterOp(const std::string& name) { + gCreators_[name] = [](const OpDesc& desc) { + return new OpType(desc); + }; + OpProto& opProto = gProtos_[name]; + OpMaker()(&opProto); + } + + static map gCreators_; + static map gProtos_; +}; + +template +class OpRegister { + public: + OpRegister(std::string type) { + OpRegistry::RegisterOp(type); + } +}; + +#define REGISTER_OP(op_class, op_maker_class, type_name) \ + class op_class##Register { \ + private: \ + const static OpRegister<#op_class, #op_maker_class> reg; \ + }; \ + const Register op_class##Register::reg(#type_name); + +class CosineOp { +// ... +} + +struct CosineOpProtoMaker : public OpProtoMaker { + CosineOpProtoMaker(OpProto* proto) : OpProtoMaker(proto) { + AddInput("input", "input of cosine op"); + AddAttr("scale", "scale of cosine op", float).Default(1.0).GreaterThan(0.0); + AddType("cos"); + AddComment("This is cos op"); + } +} + +REGISTER_OP(CosineOp, CosineOpProtoMaker, cos); +``` + +In `REGISTER_OP(CosineOp, CosineOpProtoMaker, cos)`, we register not only `CosineOp` but also `CosineOpProto`. As fields of `CosineOpProto`, the default value and value range of `scale` are also registered here. + +## Python API + +Python APIs are divided into two types, high-level API and low-level API. + +### High-Level API + +High-level API is called by users directly, so it should keep its style consistent with existing V2 APIs. + +Here is a sample about how a define a fc layer: + +```python +hd = fc_layer(input=data, size=56, with_bias=True, activation="sigmoid"); +``` + +`hd` is the output of `fc_layer` and it's a `variable`. It can be further sent into other layers as input. + +The definition of `fc_layer()`: + +```python +def fc_layer(input, size, with_bias, activation): + attr_map = {"size":size} + check_attrs(attr_map) + w = make_variable('w') + if with_bias: + b = make_variable('b') + else: + b = None + fc_output = make_variable('fc_output'); + fc_op(input, w, b, fc_output, attr_map) + act_output = make_variable('sigmod_output'); + if activation == "sigmod": + sigmod_op(fc_output, act_output); + elif: + # ... + return act_output; +``` + +### Low Leval API + +In above sample, `fc_op` and `sigmod_op` are low-level API. They build `OpDesc` and invoke corresponding C++ code. + +*TODO* diff --git a/doc/_sources/design/tensor_array.md.txt b/doc/_sources/design/tensor_array.md.txt new file mode 100644 index 00000000000..37e4f7b90f9 --- /dev/null +++ b/doc/_sources/design/tensor_array.md.txt @@ -0,0 +1,271 @@ +# Design for TensorArray +This design doc presents the necessity of a new C++ class `TensorArray`. +In addition to the very simple C++ implementation + +```c++ +class TensorArray { + public: + explicit TensorArray(const LoDTensor&); + explicit TensorArray(size_t size); + + private: + vector values_; +}; +``` + +We also need to expose it to PaddlePaddle's Python API, +because users would want to use it with our very flexible operators `WhileLoop`. +An example for a RNN based on dynamic operators is + +```python +input = pd.data(...) +num_steps = Var(12) + +TensorArray states(size=num_steps) +TensorArray step_inputs(unstack_from=input) +TensorArray step_outputs(size=num_steps) + +W = Tensor(...) +U = Tensor(...) +default_state = some_op() + +step = Var(1) + +wloop = paddle.create_whileloop(loop_vars=[step]) +with wloop.frame(): + wloop.break_if(pd.equal(step, num_steps) + pre_state = states.read(step-1, default_state) + step_input = step_inputs.read(step) + state = pd.sigmoid(pd.matmul(U, pre_state) + pd.matmul(W, step_input)) + states.write(step, state) + step_outputs.write(step, state) # output state + step.update(state+1) + +output = step_outputs.stack() +``` + +## Background +Steps are one of the core concepts of RNN. In each time step of RNN, there should be several input segments, states, and output segments; all these components act like arrays, for example, call `states[step_id]` will get the state in `step_id`th time step. + +An RNN can be implemented with the following pseudocode + +```c++ +Array states; +Array input_segments; +Array output_segments; +Parameter W, U; + +step = 1 +seq_len = 12 +while_loop { + if (step == seq_len) break; + states[step] = sigmoid(W * states[step-1] + U * input_segments[step]); + output_segments[step] = states[step] // take state as output + step++; +} +``` +According to the [RNN roadmap](https://github.com/PaddlePaddle/Paddle/issues/4561), there are several different RNNs that PaddlePaddle will eventually support. + +Currently, the basic RNN implementation supported by PaddlePaddle is the `recurrent_op` which takes tensors as input and splits them into `input_segments`. + + +Since a tensor cannot store variable-length sequences directly, PaddlePaddle implements the tensor with level of details (`LoDTensor` for short). +Segmenting the `LoDTensor` is much more complicated than splitting a tensor, that makes it necessary to refactor the `recurrent_op` with `LoDTensor` segmenting support. + +As the next step in RNN support, `dynamic_recurrent_op` should be introduced to handle inputs with variable-length sequences. + +The implementation is similar to `recurrent_op`. +The key difference is the way **the original input `LoDTensors` and outupts are split to get the `input_segments` and the `output_segments`.** + + +Though it can't be built over `recurrent_op` or `dynamic_recurrent_op` directly, +the logic behind splitting a tensor or a LoD tensor into `input_segments` remains the same. + +## Why `TensorArray` +The logic behind splitting the inputs to segments, states and outputs is similar and can be shared in a seperate module. + +The array of `states`, `input_segments` and `output_segments` would be exposed to users when writing a dynamic RNN model similar to the above pseudo codes. + +So there should be an array-like container, which can store the segments of a tensor or LoD tensor. + +**This container can store an array of tensors and provides several methods to split a tensor or a LoD tensor** . +This is where the notion of `TensorArray` comes from. + +## Introduce TensorArray to uniform all the three RNNs +TensorArray as a new concept is borrowed from TensorFlow, +it is meant to be used with dynamic iteration primitives such as `while_loop` and `map_fn`. + +This concept can be used to support our new design of dynamic operations, and help to refactor some existing variant-sentence-related layers, +such as `recurrent_op`, `RecurrentGradientMachine`. + +In [our design for dynamic RNN](https://github.com/PaddlePaddle/Paddle/pull/4401), +`TensorArray` is used to segment inputs and store states in all time steps. +By providing some methods similar to a C++ array, +the definition of some state-based dynamic models such as RNN can be more natural and highly flexible. + +## Dynamic-operations on TensorArray + +`TensorArray` will be used directly when defining dynamic models, so some operators listed below should be implemented + +```python +# several helper operators for TensorArray +def tensor_array_stack(ta, tensor): + ''' + get a tensor array `ta`, return a packed `tensor`. + ''' + pass + +def tensor_array_unstack(tensor, ta): + ''' + get a `tensor`, unstack it and get a tensor array `ta`. + ''' + pass + +def tensor_array_write(ta, index, tensor, data_shared): + ''' + get a `tensor` and a scalar tensor `index`, write `tensor` into index-th + value of the tensor array `ta`. + `data_shared` is an attribute that specifies whether to copy or reference the tensors. + ''' + pass + +def tensor_array_read(ta, index, tensor): + ''' + get a tensor array `ta`, a scalar tensor `index`, read the index-th value of + `ta` and return as the `tensor`. + ''' + pass + +def tensor_array_size(ta, tensor): + ''' + get a tensor array `ta`, return the size of `ta` and return as the scalar `tensor`. + ''' + pass +``` + +It is trivial for users to use so many low-level operators, so some helper methods should be proposed in python wrapper to make `TensorArray` easier to use, +for example + +```python +class TensorArray: + def __init__(self, name): + self.name = name + self.desc = TensorArrayDesc() + + def stack(self, name=None): + ''' + Pack the values in a `TensorArray` into a tensor with rank one higher + than each tensor in `values`. + `stack` can be used to split tensor into time steps for RNN or whileloop. + + @name: str + the name of the variable to output. + ''' + tensor = Var(name) + tensor_array_stack(self.name, tensor) + return tensor + + def unstack(self, input): + ''' + Unpacks the given dimension of a rank-`R` tensor into rank-`(R-1)` tensors. + `unstack` can be used to concatenate all the time steps for RNN or whileloop. + + @input: str + the name of input tensor + ''' + tensor_array_unstack(tensor, self.name) + + def write(self, index, value, data_shared=True): + ''' + Write value into index of the TensorArray. + If `data_shared` is set to True, than the index-th value in TensorArray will + be shared with the tensor passed in. + + @index: str + name of a scalar tensor + @value: str + name of a tensor + @data_shared: bool + ''' + tensor_array_write(self.name, index, value, data_shared) + + def read(self, index, output): + ''' + Read the value at location `index` in the `TensorArray`. + + @index: str + name of a scalar tensor + @output: + name of a output variable + ''' + tensor_array_read(self.name, index, output) + + + def size(self, output): + ''' + Return the number of values. + + @output: str + name of a scalar tensor + ''' + tensor_array_size(self.name, output) +``` + +## LoDTensor-related Supports +The `RecurrentGradientMachine` in Paddle serves as a flexible RNN layer; it takes varience-length sequences as input, and output sequences too. + +Since each step of RNN can only take a tensor-represented batch of data as input, +some preprocess should be taken on the inputs such as sorting the sentences by their length in descending order and cut each word and pack to new batches. + +Such cut-like operations can be embedded into `TensorArray` as general methods called `unpack` and `pack`, +these two operations are similar to `stack` and `unstack` except that they operate on variable-length sequences formated as a LoD tensor rather than a tensor. + +Some definitions are like + +```python +def unpack(level): + ''' + Split LodTensor in some `level` and generate batches, if set `sort_by_length`, + will sort by length. + + Returns: + - a new `TensorArray`, whose values are LodTensors and represents batches + of data. + - an int32 Tensor, which stores the map from the new batch's indices to + original LoDTensor + ''' + pass + +def pack(level, indices_map): + ''' + Recover the original LoD-arranged LoDTensor with the values in a `TensorArray` + and `level` and `indices_map`. + ''' + pass +``` + +With these two methods, a varience-length sentence supported RNN can be implemented like + +```c++ +// input is the varient-length data +LodTensor sentence_input(xxx); +TensorArray ta; +Tensor indice_map; +Tensor boot_state = xxx; // to initialize rnn's first state +TensorArray::unpack(input, 1/*level*/, true/*sort_by_length*/, &ta, &indice_map); +TessorArray step_outputs; +TensorArray states; + +for (int step = 0; step = ta.size(); step++) { + auto state = states.read(step); + // rnnstep is a function which acts like a step of RNN + auto step_input = ta.read(step); + auto step_output = rnnstep(step_input, state); + step_outputs.write(step_output, true/*data_shared*/); +} + +// rnn_output is the final output of an rnn +LoDTensor rnn_output = ta.pack(ta, indice_map); +``` +the code above shows that by embedding the LoDTensor-related preprocess operations into `TensorArray`, +the implementation of a RNN that supports varient-length sentences is far more concise than `RecurrentGradientMachine` because the latter mixes all the codes together, hard to read and extend. diff --git a/doc/_sources/design/var_desc.md.txt b/doc/_sources/design/var_desc.md.txt new file mode 100644 index 00000000000..0b2958c1b10 --- /dev/null +++ b/doc/_sources/design/var_desc.md.txt @@ -0,0 +1,69 @@ +## Background +PaddlePaddle divides the description of neural network computation graph into two stages: compile time and runtime. + +PaddlePaddle use proto message to describe compile time graph because + +1. Computation graph should be able to be saved to a file. +1. In distributed training, the graph will be serialized and send to multiple workers. + +The computation graph is constructed by Data Node and Operation Node. The concept to represent them is in the table below. + +| |compile time|runtime| +|---|---|---| +|Data|VarDesc(proto)|Variable(cpp)| +|Operation|OpDesc(proto)|Operator(cpp)| + + +## Definition of VarDesc + +A VarDesc should have a name, and value. The are two kinds of variable type in compile time, they are `LoDTensor` and `SelectedRows`. + +```proto +message VarDesc { + required string name = 1; + enum VarType { + LOD_TENSOR = 0; + SELECTED_ROWS = 1; + } + required VarType type = 2; + optional LoDTensorDesc lod_desc = 3; + optional TensorDesc selected_rows_desc = 4; + optional bool persistable = 5 [ default = false ]; +} +``` + +## Definition of TensorDesc + +```proto +enum DataType { + BOOL = 0; + INT16 = 1; + INT32 = 2; + INT64 = 3; + FP16 = 4; + FP32 = 5; + FP64 = 6; +} + +message TensorDesc { + required DataType data_type = 1; + repeated int64 dims = 2; // [UNK, 640, 480] is saved as [-1, 640, 480] +} +``` + +A TensorDesc describes `SelectedRows` and `LoDTensor`. For details of `SelectedRows`, please reference [`SelectedRows`](./selected_rows.md). + +## Definition of LodTensorDesc + +```proto +message LoDTensorDesc { + required TensorDesc tensor = 1; + optional int lod_level = 2; +} +``` + +A LoDTensorDesc contains a tensor and a lod_level. + +## Definition of Variable in Python + +For Variable in Python, please reference [`Python API`](./python_api.md). diff --git a/doc/_sources/getstarted/basic_usage/index_en.rst.txt b/doc/_sources/getstarted/basic_usage/index_en.rst.txt deleted file mode 100644 index 6775da20c2f..00000000000 --- a/doc/_sources/getstarted/basic_usage/index_en.rst.txt +++ /dev/null @@ -1,101 +0,0 @@ -Simple Linear Regression -======================== - -PaddlePaddle is a deep learning platform open-sourced by Baidu. With PaddlePaddle, you can easily train a classic neural network within a couple lines of configuration, or you can build sophisticated models that provide state-of-the-art performance on difficult learning tasks like sentiment analysis, machine translation, image caption and so on. - -Problem Background ------------------- - -Now, to give you a hint of what using PaddlePaddle looks like, let's start with a fundamental learning problem - `simple linear regression `_: you have observed a set of two-dimensional data points of ``X`` and ``Y``, where ``X`` is an explanatory variable and ``Y`` is corresponding dependent variable, and you want to recover the underlying correlation between ``X`` and ``Y``. Linear regression can be used in many practical scenarios. For example, ``X`` can be a variable about house size, and ``Y`` a variable about house price. You can build a model that captures relationship between them by observing real estate markets. - -Prepare the Data ------------------ - -Suppose the true relationship can be characterized as ``Y = 2X + 0.3``, let's see how to recover this pattern only from observed data. Here is a piece of python code that feeds synthetic data to PaddlePaddle. The code is pretty self-explanatory, the only extra thing you need to add for PaddlePaddle is a definition of input data types. - - .. code-block:: python - - # dataprovider.py - from paddle.trainer.PyDataProvider2 import * - import random - - # define data types of input: 2 real numbers - @provider(input_types=[dense_vector(1), dense_vector(1)],use_seq=False) - def process(settings, input_file): - for i in xrange(2000): - x = random.random() - yield [x], [2*x+0.3] - -Train a NeuralNetwork ----------------------- - -To recover this relationship between ``X`` and ``Y``, we use a neural network with one layer of linear activation units and a square error cost layer. Don't worry if you are not familiar with these terminologies, it's just saying that we are starting from a random line ``Y' = wX + b`` , then we gradually adapt ``w`` and ``b`` to minimize the difference between ``Y'`` and ``Y``. Here is what it looks like in PaddlePaddle: - - .. code-block:: python - - # trainer_config.py - from paddle.trainer_config_helpers import * - - # 1. read data. Suppose you saved above python code as dataprovider.py - data_file = 'empty.list' - with open(data_file, 'w') as f: f.writelines(' ') - define_py_data_sources2(train_list=data_file, test_list=None, - module='dataprovider', obj='process',args={}) - - # 2. learning algorithm - settings(batch_size=12, learning_rate=1e-3, learning_method=MomentumOptimizer()) - - # 3. Network configuration - x = data_layer(name='x', size=1) - y = data_layer(name='y', size=1) - y_predict = fc_layer(input=x, param_attr=ParamAttr(name='w'), size=1, act=LinearActivation(), bias_attr=ParamAttr(name='b')) - cost = mse_cost(input=y_predict, label=y) - outputs(cost) - -Some of the most fundamental usages of PaddlePaddle are demonstrated: - -- The first part shows how to feed data into PaddlePaddle. In general cases, PaddlePaddle reads raw data from a list of files, and then do some user-defined process to get real input. In this case, we only need to create a placeholder file since we are generating synthetic data on the fly. - -- The second part describes learning algorithm. It defines in what ways adjustments are made to model parameters. PaddlePaddle provides a rich set of optimizers, but a simple momentum based optimizer will suffice here, and it processes 12 data points each time. - -- Finally, the network configuration. It usually is as simple as "stacking" layers. Three kinds of layers are used in this configuration: - - **Data Layer**: a network always starts with one or more data layers. They provide input data to the rest of the network. In this problem, two data layers are used respectively for ``X`` and ``Y``. - - **FC Layer**: FC layer is short for Fully Connected Layer, which connects all the input units to current layer and does the actual computation specified as activation function. Computation layers like this are the fundamental building blocks of a deeper model. - - **Cost Layer**: in training phase, cost layers are usually the last layers of the network. They measure the performance of current model, and provide guidence to adjust parameters. - -Now that everything is ready, you can train the network with a simple command line call: - - .. code-block:: bash - - paddle train --config=trainer_config.py --save_dir=./output --num_passes=30 - - -This means that PaddlePaddle will train this network on the synthectic dataset for 30 passes, and save all the models under path ``./output``. You will see from the messages printed out during training phase that the model cost is decreasing as time goes by, which indicates we are getting a closer guess. - - -Evaluate the Model -------------------- - -Usually, a different dataset that left out during training phase should be used to evalute the models. However, we are lucky enough to know the real answer: ``w=2, b=0.3``, thus a better option is to check out model parameters directly. - -In PaddlePaddle, training is just to get a collection of model parameters, which are ``w`` and ``b`` in this case. Each parameter is saved in an individual file in the popular ``numpy`` array format. Here is the code that reads parameters from last pass. - - .. code-block:: python - - import numpy as np - import os - - def load(file_name): - with open(file_name, 'rb') as f: - f.read(16) # skip header for float type. - return np.fromfile(f, dtype=np.float32) - - print 'w=%.6f, b=%.6f' % (load('output/pass-00029/w'), load('output/pass-00029/b')) - # w=1.999743, b=0.300137 - - .. image:: parameters.png - :align: center - -Although starts from a random guess, you can see that value of ``w`` changes quickly towards 2 and ``b`` changes quickly towards 0.3. In the end, the predicted line is almost identical with real answer. - -There, you have recovered the underlying pattern between ``X`` and ``Y`` only from observed data. diff --git a/doc/_sources/getstarted/build_and_install/build_from_source_en.md.txt b/doc/_sources/getstarted/build_and_install/build_from_source_en.md.txt deleted file mode 100644 index 69f4501f370..00000000000 --- a/doc/_sources/getstarted/build_and_install/build_from_source_en.md.txt +++ /dev/null @@ -1,222 +0,0 @@ -Installing from Sources -========================== - -* [1. Download and Setup](#download) -* [2. Requirements](#requirements) -* [3. Build on Ubuntu](#ubuntu) -* [4. Build on Centos](#centos) - - -## Download and Setup -You can download PaddlePaddle from the [github source](https://github.com/PaddlePaddle/Paddle). - -```bash -git clone https://github.com/PaddlePaddle/Paddle paddle -cd paddle -``` -## Requirements - -To compile the source code, your computer must be equipped with the following dependencies. - -- **Compiler**: GCC >= 4.8 or Clang >= 3.3 (AppleClang >= 5.1) and gfortran compiler -- **CMake**: CMake >= 3.0 (at least CMake 3.4 on Mac OS X) -- **BLAS**: MKL, OpenBlas or ATLAS -- **Python**: only support Python 2.7 - -**Note:** For CUDA 7.0 and CUDA 7.5, GCC 5.0 and up are not supported! -For CUDA 8.0, GCC versions later than 5.3 are not supported! - -### Options - -PaddlePaddle supports some build options. - - - - - - - - - - - - - - - - - - - - - - - - - - -
OptionalDescription
WITH_GPUCompile PaddlePaddle with NVIDIA GPU
WITH_AVXCompile PaddlePaddle with AVX intrinsics
WITH_DSOCompile PaddlePaddle with dynamic linked CUDA
WITH_TESTINGCompile PaddlePaddle with unit testing
WITH_SWIG_PYCompile PaddlePaddle with inference api
WITH_STYLE_CHECKCompile PaddlePaddle with style check
WITH_PYTHONCompile PaddlePaddle with python interpreter
WITH_DOUBLECompile PaddlePaddle with double precision
WITH_RDMACompile PaddlePaddle with RDMA support
WITH_TIMERCompile PaddlePaddle with stats timer
WITH_PROFILERCompile PaddlePaddle with GPU profiler
WITH_DOCCompile PaddlePaddle with documentation
WITH_COVERAGECompile PaddlePaddle with code coverage
COVERALLS_UPLOADPackage code coverage data to coveralls
ON_TRAVISExclude special unit test on Travis CI
- - -**Note:** - - The GPU version works best with Cuda Toolkit 8.0 and cuDNN v5. - - Other versions like Cuda Toolkit 7.0, 7.5 and cuDNN v3, v4 are also supported. - - **To utilize cuDNN v5, Cuda Toolkit 7.5 is prerequisite and vice versa.** - -As a simple example, consider the following: - -1. **BLAS Dependencies(optional)** - - CMake will search BLAS libraries from system. If not found, OpenBLAS will be downloaded, built and installed automatically. - To utilize preinstalled BLAS, you can simply specify MKL, OpenBLAS or ATLAS via `MKL_ROOT`, `OPENBLAS_ROOT` or `ATLAS_ROOT`. - - ```bash - # specify MKL - cmake .. -DMKL_ROOT= - # or specify OpenBLAS - cmake .. -DOPENBLAS_ROOT= - ``` - -2. **Doc Dependencies(optional)** - - To generate PaddlePaddle's documentation, install dependencies and set `-DWITH_DOC=ON` as follows: - - ```bash - pip install 'sphinx>=1.4.0' - pip install sphinx_rtd_theme recommonmark - - # install doxygen on Ubuntu - sudo apt-get install doxygen - # install doxygen on Mac OS X - brew install doxygen - - # active docs in cmake - cmake .. -DWITH_DOC=ON` - ``` - -## Build on Ubuntu 14.04 - -### Install Dependencies - -- **Paddle Dependencies** - - ```bash - # necessary - sudo apt-get update - sudo apt-get install -y git curl gcc g++ gfortran make build-essential automake - sudo apt-get install -y python python-pip python-numpy libpython-dev bison - sudo pip install 'protobuf==3.1.0.post1' - - # install cmake 3.4 - curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \ - cd cmake-3.4.1 && ./bootstrap && make -j4 && sudo make install && \ - cd .. && rm -rf cmake-3.4.1 - ``` - -- **GPU Dependencies (optional)** - - To build GPU version, you will need the following installed: - - 1. a CUDA-capable GPU - 2. A supported version of Linux with a gcc compiler and toolchain - 3. NVIDIA CUDA Toolkit (available at http://developer.nvidia.com/cuda-downloads) - 4. NVIDIA cuDNN Library (availabel at https://developer.nvidia.com/cudnn) - - The CUDA development environment relies on tight integration with the host development environment, - including the host compiler and C runtime libraries, and is therefore only supported on - distribution versions that have been qualified for this CUDA Toolkit release. - - After downloading cuDNN library, issue the following commands: - - ```bash - sudo tar -xzf cudnn-7.5-linux-x64-v5.1.tgz -C /usr/local - sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* - ``` - Then you need to set LD\_LIBRARY\_PATH, PATH environment variables in ~/.bashrc. - - ```bash - export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH - export PATH=/usr/local/cuda/bin:$PATH - ``` - -### Build and Install - -As usual, the best option is to create build folder under paddle project directory. - -```bash -mkdir build && cd build -``` - -Finally, you can build and install PaddlePaddle: - -```bash -# you can add build option here, such as: -cmake .. -DCMAKE_INSTALL_PREFIX= -# please use sudo make install, if you want to install PaddlePaddle into the system -make -j `nproc` && make install -# set PaddlePaddle installation path in ~/.bashrc -export PATH=/bin:$PATH -# install PaddlePaddle Python modules. -sudo pip install /opt/paddle/share/wheels/*.whl -``` -## Build on Centos 7 - -### Install Dependencies - -- **CPU Dependencies** - - ```bash - # necessary - sudo yum update - sudo yum install -y epel-release - sudo yum install -y make cmake3 python-devel python-pip gcc-gfortran swig git - sudo pip install wheel numpy - sudo pip install 'protobuf>=3.0.0' - ``` - -- **GPU Dependencies (optional)** - - To build GPU version, you will need the following installed: - - 1. a CUDA-capable GPU - 2. A supported version of Linux with a gcc compiler and toolchain - 3. NVIDIA CUDA Toolkit (available at http://developer.nvidia.com/cuda-downloads) - 4. NVIDIA cuDNN Library (availabel at https://developer.nvidia.com/cudnn) - - The CUDA development environment relies on tight integration with the host development environment, - including the host compiler and C runtime libraries, and is therefore only supported on - distribution versions that have been qualified for this CUDA Toolkit release. - - After downloading cuDNN library, issue the following commands: - - ```bash - sudo tar -xzf cudnn-7.5-linux-x64-v5.1.tgz -C /usr/local - sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* - ``` - Then you need to set LD\_LIBRARY\_PATH, PATH environment variables in ~/.bashrc. - - ```bash - export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH - export PATH=/usr/local/cuda/bin:$PATH - ``` - -### Build and Install - -As usual, the best option is to create build folder under paddle project directory. - -```bash -mkdir build && cd build -``` - -Finally, you can build and install PaddlePaddle: - -```bash -# you can add build option here, such as: -cmake3 .. -DCMAKE_INSTALL_PREFIX= -# please use sudo make install, if you want to install PaddlePaddle into the system -make -j `nproc` && make install -# set PaddlePaddle installation path in ~/.bashrc -export PATH=/bin:$PATH -# install PaddlePaddle Python modules. -sudo pip install /opt/paddle/share/wheels/*.whl -``` diff --git a/doc/_sources/getstarted/build_and_install/build_from_source_en.rst.txt b/doc/_sources/getstarted/build_and_install/build_from_source_en.rst.txt new file mode 100644 index 00000000000..f194f84ce7c --- /dev/null +++ b/doc/_sources/getstarted/build_and_install/build_from_source_en.rst.txt @@ -0,0 +1,159 @@ +Build from Sources +========================== + +.. _build_step: + +How To Build +---------------- + +PaddlePaddle mainly uses `CMake `_ and GCC, G++ as compile +tools. We recommend you to use our pre-built Docker image to run the build +to avoid installing dependencies by yourself. We have several build environment +Docker images `here `_ . + +If you choose not to use Docker image for your build, you need to install the +below `Compile Dependencies`_ before run the build. + +Then run: + +.. code-block:: bash + + git clone https://github.com/PaddlePaddle/Paddle.git + cd Paddle + # run the following command to build a CPU-Only binaries if you are using docker + docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=OFF" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x /paddle/paddle/scripts/docker/build.sh + # else run these commands + mkdir build + cd build + cmake -DWITH_GPU=OFF -DWITH_TESTING=OFF .. + make + +When the compile finishes, you can get the output whl package under +build/python/dist, then you can choose to install the whl on local +machine or copy it to the target machine. + +.. code-block:: bash + + pip install build/python/dist/*.whl + + +.. _run_test: + +Run Tests +---------------- + +If you wish to run the tests, you may follow the below steps: + +When using Docker, set :code:`RUN_TEST=ON` and :code:`WITH_TESTING=ON` will run test immediately after the build. +Set :code:`WITH_GPU=ON` Can also run tests on GPU. + +.. code-block:: bash + + docker run -it -v $PWD:/paddle -e "WITH_GPU=OFF" -e "WITH_TESTING=ON" -e "RUN_TEST=ON" paddlepaddle/paddle_manylinux_devel:cuda8.0_cudnn5 bash -x paddle/paddle/scripts/docker/build.sh + +If you don't use Docker, just run ctest will start the tests: + +.. code-block:: bash + + mkdir build + cd build + cmake -DWITH_GPU=OFF -DWITH_TESTING=ON .. + make + ctest + # run a single test like test_mul_op + ctest -R test_mul_op + + +.. _compile_deps: + +Compile Dependencies +---------------- + +PaddlePaddle need the following dependencies when compiling, other dependencies +will be downloaded automatically. + +.. csv-table:: PaddlePaddle Compile Dependencies + :header: "Dependency", "Version", "Description" + :widths: 10, 15, 30 + + "CMake", ">=3.5", "" + "GCC", "4.8.2", "Recommend devtools2 for CentOS" + "Python", "2.7.x", "Need libpython2.7.so" + "pip", ">=9.0", "" + "numpy", "", "" + "SWIG", ">=2.0", "" + "Go", ">=1.8", "Optional" + + +.. _build_options: + +Build Options +---------------- + +Build options include whether build binaries for CPU or GPU, which BLAS +library to use etc. You may pass these settings when running cmake. +For detailed cmake tutorial please refer to `here `_ 。 + +.. _build_options_bool: + +Bool Type Options +---------------- + +You can add :code:`-D` argument to pass such options, like: + +.. code-block:: bash + + cmake .. -DWITH_GPU=OFF + +.. csv-table:: Bool Type Options + :header: "Option", "Description", "Default" + :widths: 1, 7, 2 + + "WITH_GPU", "Build with GPU support", "ON" + "WITH_C_API", "Build only CAPI", "OFF" + "WITH_DOUBLE", "Build with double precision", "OFF" + "WITH_DSO", "Dynamically load CUDA libraries", "ON" + "WITH_AVX", "Build with AVX support", "ON" + "WITH_PYTHON", "Build with integrated Python interpreter", "ON" + "WITH_STYLE_CHECK", "Check code style when building", "ON" + "WITH_TESTING", "Build unit tests", "ON" + "WITH_DOC", "Build documentations", "OFF" + "WITH_SWIG_PY", "Build Python SWIG interface for V2 API", "Auto" + "WITH_GOLANG", "Build fault-tolerant parameter server written in go", "ON" + "WITH_MKL", "Use MKL as BLAS library, else use OpenBLAS", "ON" + + +BLAS ++++++ + +PaddlePaddle supports `MKL `_ and +`OpenBlAS `_ as BLAS library。By default it uses MKL. +If you are using MKL and your machine supports AVX2, MKL-DNN will also be downloaded +and used, for more `details `_ . + +If you choose not to use MKL, then OpenBlAS will be used. + +CUDA/cuDNN ++++++++++++ + +PaddlePaddle will automatically find CUDA and cuDNN when compiling and running. +parameter :code:`-DCUDA_ARCH_NAME=Auto` can be used to detect SM architecture +automatically in order to speed up the build. + +PaddlePaddle can build with any version later than cuDNN v5.1, and we intend to +keep on with latest cuDNN versions. Be sure to run with the same version of cuDNN +you built. + +Pass Compile Options +++++++++++++++ + +You can pass compile options to use intended BLAS/CUDA/Cudnn libraries. +When running cmake command, it will search system paths like +:code:`/usr/lib:/usr/local/lib` and then search paths that you +passed to cmake, i.e. + +.. code-block:: bash + + cmake .. -DWITH_GPU=ON -DWITH_TESTING=OFF -DCUDNN_ROOT=/opt/cudnnv5 + +**NOTE: These options only take effect when running cmake for the first time, you need to clean the cmake cache or clean the build directory (** :code:`rm -rf` **) if you want to change it.** diff --git a/doc/_sources/getstarted/build_and_install/docker_install_en.rst.txt b/doc/_sources/getstarted/build_and_install/docker_install_en.rst.txt index 03df4975060..d7acc7aeb74 100644 --- a/doc/_sources/getstarted/build_and_install/docker_install_en.rst.txt +++ b/doc/_sources/getstarted/build_and_install/docker_install_en.rst.txt @@ -1,270 +1,146 @@ -PaddlePaddle in Docker Containers +Run in Docker Containers ================================= -Docker container is currently the only officially-supported way to -running PaddlePaddle. This is reasonable as Docker now runs on all -major operating systems including Linux, Mac OS X, and Windows. -Please be aware that you will need to change `Dockers settings -`_ to make full use -of your hardware resource on Mac OS X and Windows. +Run PaddlePaddle in Docker container so that you don't need to care about +runtime dependencies, also you can run under Windows system. You can get +tutorials at `here `_ . -Working With Docker -------------------- +If you are using Windows, please refer to +`this `_ +tutorial to start running docker under windows. -Docker is simple as long as we understand a few basic concepts: +After you've read above tutorials you may proceed the following steps. -- *image*: A Docker image is a pack of software. It could contain one or more programs and all their dependencies. For example, the PaddlePaddle's Docker image includes pre-built PaddlePaddle and Python and many Python packages. We can run a Docker image directly, other than installing all these software. We can type +.. _docker_pull: - .. code-block:: bash - - docker images +Pull PaddlePaddle Docker Image +------------------------------ - to list all images in the system. We can also run +Run the following command to download the latest Docker images: .. code-block:: bash - - docker pull paddlepaddle/paddle:0.10.0rc2 - to download a Docker image, paddlepaddle/paddle in this example, - from Dockerhub.com. + docker pull paddlepaddle/paddle -- *container*: considering a Docker image a program, a container is a - "process" that runs the image. Indeed, a container is exactly an - operating system process, but with a virtualized filesystem, network - port space, and other virtualized environment. We can type +For users in China, we provide a faster mirror: .. code-block:: bash - docker run paddlepaddle/paddle:0.10.0rc2 - - to start a container to run a Docker image, paddlepaddle/paddle in this example. + docker pull docker.paddlepaddle.org/paddle -- By default docker container have an isolated file system namespace, - we can not see the files in the host file system. By using *volume*, - mounted files in host will be visible inside docker container. - Following command will mount current dirctory into /data inside - docker container, run docker container from debian image with - command :code:`ls /data`. +Download GPU version images: .. code-block:: bash - docker run --rm -v $(pwd):/data debian ls /data - -Usage of CPU-only and GPU Images ----------------------------------- - -We package PaddlePaddle's compile environment into a Docker image, -called the develop image, it contains all compiling tools that -PaddlePaddle needs. We package compiled PaddlePaddle program into a -Docker image as well, called the production image, it contains all -runtime environment that running PaddlePaddle needs. For each version -of PaddlePaddle, we release both of them. Production image includes -CPU-only version and a CUDA GPU version and their no-AVX versions. - -We put the docker images on `dockerhub.com -`_. You can find the -latest versions under "tags" tab at dockerhub.com. If you are in -China, you can use our Docker image registry mirror to speed up the -download process. To use it, please replace all paddlepaddle/paddle in -the commands to docker.paddlepaddle.org/paddle. - -1. Production images, this image might have multiple variants: - - - GPU/AVX::code:`paddlepaddle/paddle:-gpu` - - GPU/no-AVX::code:`paddlepaddle/paddle:-gpu-noavx` - - CPU/AVX::code:`paddlepaddle/paddle:` - - CPU/no-AVX::code:`paddlepaddle/paddle:-noavx` - - Please be aware that the CPU-only and the GPU images both use the - AVX instruction set, but old computers produced before 2008 do not - support AVX. The following command checks if your Linux computer - supports AVX: - - .. code-block:: bash - - if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi - - - To run the CPU-only image as an interactive container: - - .. code-block:: bash - - docker run -it --rm paddlepaddle/paddle:0.10.0rc2 /bin/bash - - Above method work with the GPU image too -- the recommended way is - using `nvidia-docker `_. - - Please install nvidia-docker first following this `tutorial - `_. - - Now you can run a GPU image: - - .. code-block:: bash - - nvidia-docker run -it --rm paddlepaddle/paddle:0.10.0rc2-gpu /bin/bash - -2. development image :code:`paddlepaddle/paddle:-dev` - - This image has packed related develop tools and runtime - environment. Users and developers can use this image instead of - their own local computer to accomplish development, build, - releasing, document writing etc. While different version of paddle - may depends on different version of libraries and tools, if you - want to setup a local environment, you must pay attention to the - versions. The development image contains: - - - gcc/clang - - nvcc - - Python - - sphinx - - woboq - - sshd - - Many developers use servers with GPUs, they can use ssh to login to - the server and run :code:`docker exec` to enter the docker - container and start their work. Also they can start a development - docker image with SSHD service, so they can login to the container - and start work. - - -Train Model Using Python API ----------------------------- - -Our official docker image provides a runtime for PaddlePaddle -programs. The typical workflow will be as follows: - -Create a directory as workspace: - -.. code-block:: bash - - mkdir ~/workspace - -Edit a PaddlePaddle python program using your favourite editor - -.. code-block:: bash - - emacs ~/workspace/example.py + docker pull paddlepaddle/paddle:latest-gpu + docker pull docker.paddlepaddle.org/paddle:latest-gpu -Run the program using docker: +Choose between different BLAS version: -.. code-block:: bash - - docker run --rm -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0rc2 python /workspace/example.py - -Or if you are using GPU for training: - -.. code-block:: bash - - nvidia-docker run --rm -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0rc2-gpu python /workspace/example.py - -Above commands will start a docker container by running :code:`python -/workspace/example.py`. It will stop once :code:`python -/workspace/example.py` finishes. - -Another way is to tell docker to start a :code:`/bin/bash` session and -run PaddlePaddle program interactively: - -.. code-block:: bash - - docker run -it -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0rc2 /bin/bash - # now we are inside docker container - cd /workspace - python example.py - -Running with GPU is identical: - -.. code-block:: bash - - nvidia-docker run -it -v ~/workspace:/workspace paddlepaddle/paddle:0.10.0rc2-gpu /bin/bash - # now we are inside docker container - cd /workspace - python example.py - - -Develop PaddlePaddle or Train Model Using C++ API ---------------------------------------------------- - -We will be using PaddlePaddle development image since it contains all -compiling tools and dependencies. - -1. Build PaddlePaddle develop image + .. code-block:: bash - Use following command to build PaddlePaddle develop image: + # image using MKL by default + docker pull paddlepaddle/paddle + # image using OpenBLAS + docker pull paddlepaddle/paddle:latest-openblas - .. code-block:: bash - git clone https://github.com/PaddlePaddle/Paddle.git && cd Paddle - docker build -t paddle:dev . +If you want to use legacy versions, choose a tag from +`DockerHub `_ +and run: -2. Build PaddlePaddle production image + .. code-block:: bash - There are two steps for building production image, the first step is to run: + docker pull paddlepaddle/paddle:[tag] + # i.e. + docker pull docker.paddlepaddle.org/paddle:0.10.0-gpu - .. code-block:: bash +.. _docker_run: - docker run -v $(pwd):/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=OFF" -e "WITH_TEST=ON" paddle:dev +Launch your training program in Docker +------------------------------ - The above command will compile PaddlePaddle and create a Dockerfile for building production image. All the generated files are in the build directory. "WITH_GPU" controls if the generated production image supports GPU. "WITH_AVX" controls if the generated production image supports AVX. "WITH_TEST" controls if the unit test will be generated. +Assume that you have already written a PaddlePaddle program +named :code:`train.py` under directory :code:`/home/work` (refer to +`PaddlePaddleBook `_ +for more samples), then run the following command: - The second step is to run: + .. code-block:: bash - .. code-block:: bash + cd /home/work + docker run -it -v $PWD:/work paddlepaddle/paddle /work/train.py - docker build -t paddle:prod -f build/Dockerfile ./build +In the above command, :code:`-it` means run the container interactively; +:code:`-v $PWD:/work` means mount the current directory ($PWD will expand +to current absolute path in Linux) under :code:`/work` in the container. +:code:`paddlepaddle/paddle` to specify image to use; finnally +:code:`/work/train.py` is the command to run inside docker. - The above command will generate the production image by copying the compiled PaddlePaddle program into the image. +Also, you can go into the container shell, run or debug your code +interactively: -3. Run unit test + .. code-block:: bash + docker run -it -v $PWD:/work paddlepaddle/paddle /bin/bash + cd /work + python train.py - Following command will run unit test: +**NOTE: We did not install vim in the default docker image to reduce the image size, you can run** :code:`apt-get install -y vim` **to install it if you need to edit python files.** - .. code-block:: bash - - docker run -it -v $(pwd):/paddle paddle:dev bash -c "cd /paddle/build && ctest" +.. _docker_run_book: PaddlePaddle Book ------------------ -The Jupyter Notebook is an open-source web application that allows -you to create and share documents that contain live code, equations, -visualizations and explanatory text in a single browser. - -PaddlePaddle Book is an interactive Jupyter Notebook for users and developers. -We already exposed port 8888 for this book. If you want to +You can create a container serving PaddlePaddle Book using Jupyter Notebook in +one minute using Docker. PaddlePaddle Book is an interactive Jupyter Notebook +for users and developers.If you want to dig deeper into deep learning, PaddlePaddle Book definitely is your best choice. We provide a packaged book image, simply issue the command: -.. code-block:: bash + .. code-block:: bash - docker run -p 8888:8888 paddlepaddle/book + docker run -p 8888:8888 paddlepaddle/book Then, you would back and paste the address into the local browser: -.. code-block:: text + .. code-block:: text - http://localhost:8888/ + http://localhost:8888/ That's all. Enjoy your journey! +.. _docker_run_gpu: -Documentation -------------- +Train with Docker with GPU +------------------------------ -Paddle Docker images include an HTML version of C++ source code -generated using `woboq code browser -`_. This makes it easy -for users to browse and understand the C++ source code. +We recommend using +`nvidia-docker `_ +to run GPU training jobs. Please ensure you have latest +GPU driver installed before move on. -As long as we give the Paddle Docker container a name, we can run an -additional Nginx Docker container to serve the volume from the Paddle -container: + .. code-block:: bash -.. code-block:: bash + nvidia-docker run -it -v $PWD:/work paddledev/paddle:latest-gpu /bin/bash - docker run -d --name paddle-cpu-doc paddle: - docker run -d --volumes-from paddle-cpu-doc -p 8088:80 nginx +**NOTE: If you don't have nvidia-docker installed, try the following method to mount CUDA libs and devices into the container.** + .. code-block:: bash + + export CUDA_SO="$(\ls /usr/lib64/libcuda* | xargs -I{} echo '-v {}:{}') $(\ls /usr/lib64/libnvidia* | xargs -I{} echo '-v {}:{}')" + export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}') + docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:latest-gpu + +**About AVX:** + +AVX is a kind of CPU instruction can accelerate PaddlePaddle's calculations. +The latest PaddlePaddle Docker image turns AVX on by default, so, if your +computer doesn't support AVX, you'll probably need to +`build <./build_from_source_en.rst>`_ with :code:`WITH_AVX=OFF`. -Then we can direct our Web browser to the HTML version of source code -at http://localhost:8088/paddle/ +The following command will tell you whether your computer supports AVX. + + .. code-block:: bash + + if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi diff --git a/doc/_sources/getstarted/build_and_install/index_en.rst.txt b/doc/_sources/getstarted/build_and_install/index_en.rst.txt index 1bfd4f75c0b..32d66d63dd5 100644 --- a/doc/_sources/getstarted/build_and_install/index_en.rst.txt +++ b/doc/_sources/getstarted/build_and_install/index_en.rst.txt @@ -1,23 +1,34 @@ Install and Build ================= -Install PaddlePaddle ----------------------- +.. _install_steps: -.. toctree:: - :maxdepth: 1 +Install Steps +++++++++ + +You can choose either pip or Docker to complete your install: + +.. toctree:: + :maxdepth: 1 + + pip_install_en.rst + docker_install_en.rst + ../../howto/dev/build_en.md - docker_install_en.rst - ubuntu_install_en.rst Build from Source ----------------- .. warning:: - Please use :code:`deb` package or :code:`docker` image to install paddle. The building guide is used for hacking or contributing PaddlePaddle source code. + We recommend to directly install via above installation steps, you'll only need to build PaddlePaddle from source when you need a modifed binary. .. toctree:: :maxdepth: 1 build_from_source_en.md + +FAQ +++++++++++ + +`FAQ `_ diff --git a/doc/_sources/getstarted/build_and_install/pip_install_en.rst.txt b/doc/_sources/getstarted/build_and_install/pip_install_en.rst.txt new file mode 100644 index 00000000000..70f601a11c6 --- /dev/null +++ b/doc/_sources/getstarted/build_and_install/pip_install_en.rst.txt @@ -0,0 +1,104 @@ +Install Using pip +================================ + +You can use current widely used Python package management +tool `pip `_ +to install PaddlePaddle. This method can be used in +most of current Linux systems or MacOS. + +.. _pip_install: + +Install Using pip +------------------------------ + +Run the following command to install PaddlePaddle on the current +machine, it will also download requirements. + + .. code-block:: bash + + pip install paddlepaddle + + +If you wish to install GPU version, just run: + + .. code-block:: bash + + pip install paddlepaddle-gpu + +If you wish to install the latest develop branch PaddlePaddle, +you can download the latest whl package from our CI system. Access +the below links, log in as guest, then click at the "Artifact" +tab, you'll find the download link of whl packages. + +If the links below shows up the login form, just click "Log in as guest" to start the download: + +.. image:: paddleci.png + :scale: 50 % + :align: center + +.. csv-table:: whl package of each version + :header: "version", "cp27-cp27mu", "cp27-cp27m", "C-API" + :widths: 1, 3, 3, 3 + + "cpu_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cpu_avx_openblas", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "Not Available" + "cuda7.5_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cuda8.0_cudnn5_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + "cuda8.0_cudnn7_avx_mkl", "`paddlepaddle-0.10.0-cp27-cp27mu-linux_x86_64.whl `_", "`paddlepaddle-0.10.0-cp27-cp27m-linux_x86_64.whl `_", "`paddle.tgz `_" + +.. _pip_dependency: + +Runtime Dependency +------------------------------ + +PaddlePaddle installation packages (whl) does not only contain .py files, +but also binaries built from C++ code. We ensure that PaddlePaddle can +run on current mainline Linux distributions, like CentOS 6, Ubuntu 14.04 +and MacOS 10.12. + +PaddlePaddle whl packages are trying to satisfy +`manylinux1 `_ +standard, which uses CentOS 5 as default build environment. But CUDA libraries +seems only run on CentOS 6 at least, also, CentOS 5 is about to end its lifetime, +so we use CentOS 6 as default build environment. + +.. csv-table:: PaddlePaddle Runtime Deps + :header: "Dependency", "version", "description" + :widths: 10, 15, 30 + + "OS", "Linux, MacOS", "CentOS 6 or later,Ubuntu 14.04 or later,MacOS 10.12 or later" + "Python", "2.7.x", "Currently Python3 is not supported" + "libc.so", "GLIBC_2.7", "glibc at least include GLIBC_2.7 symbols" + "libstdc++.so", "GLIBCXX_3.4.11, CXXABI_1.3.3", "At least include GLIBCXX_3.4.11, CXXABI_1.3.3 symbols" + "libgcc_s.so", "GCC_3.3", "At least include GCC_3.3 symbols" + +.. _pip_faq: + +FAQ +------------------------------ + +- paddlepaddle*.whl is not a supported wheel on this platform. + + The main cause of this issue is that your current platform is + not supported. Please check that you are using Python 2.7 series. + Besides, pypi only supports manylinux1 standard, you'll need to + upgrade your pip to >9.0.0. Then run the below command: + + .. code-block:: bash + + pip install --upgrade pip + + If the problem still exists, run the following command: + + .. code-block:: bash + + python -c "import pip; print(pip.pep425tags.get_supported())" + + Then you'll get supported package suffixes, then check if it matches + the file name of the whl package. You can find default whl package at + `here `_ + + If your system supports linux_x86_64 but the whl package is manylinux1_x86_64, + you'll need to update pip to the latest version; If your system supports + manylinux1_x86_64 but the whl package is linux_x86_64 you can rename the + file to manylinux1_x86_64 suffix and then install. diff --git a/doc/_sources/getstarted/build_and_install/ubuntu_install_en.rst.txt b/doc/_sources/getstarted/build_and_install/ubuntu_install_en.rst.txt deleted file mode 100644 index ea8042085bf..00000000000 --- a/doc/_sources/getstarted/build_and_install/ubuntu_install_en.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -Debian Package installation guide -================================= - -PaddlePaddle supports :code:`deb` pacakge. The installation of this :code:`deb` package is tested in ubuntu 14.04, but it should be support other debian based linux, too. - -There are four versions of debian package, :code:`cpu`, :code:`gpu`, :code:`cpu-noavx`, :code:`gpu-noavx`. And :code:`noavx` version is used to support CPU which does not contain :code:`AVX` instructions. The download url of :code:`deb` package is \: https://github.com/baidu/Paddle/releases/ - - -After downloading PaddlePaddle deb packages, you can use :code:`gdebi` install. - -.. code-block:: bash - - gdebi paddle-*.deb - -If :code:`gdebi` is not installed, you can use :code:`sudo apt-get install gdebi` to install it. - -Or you can use following commands to install PaddlePaddle. - -.. code-block:: bash - - dpkg -i paddle-*.deb - apt-get install -f - -And if you use GPU version deb package, you need to install CUDA toolkit and cuDNN, and set related environment variables(such as LD_LIBRARY_PATH) first. It is normal when `dpkg -i` get errors. `apt-get install -f` will continue install paddle, and install dependences. - diff --git a/doc/_sources/getstarted/index_en.rst.txt b/doc/_sources/getstarted/index_en.rst.txt index 9f771e93e8b..d14e3f5c0cc 100644 --- a/doc/_sources/getstarted/index_en.rst.txt +++ b/doc/_sources/getstarted/index_en.rst.txt @@ -1,9 +1,61 @@ GET STARTED ============ +.. _quick_install: + +Quick Install +---------------------- + +You can use pip to install PaddlePaddle with a single command, supports +CentOS 6 above, Ubuntu 14.04 above or MacOS 10.12, with Python 2.7 installed. +Simply run the following command to install: + + .. code-block:: bash + + pip install paddlepaddle + +If you need to install GPU version, run: + + .. code-block:: bash + + pip install paddlepaddle-gpu + +For more details about installation and build: + .. toctree:: :maxdepth: 1 build_and_install/index_en.rst -- `Deep Learning 101 `_ + +.. _quick_start: + +Quick Start +++++++++ + +Create a new file called housing.py, and paste this Python +code: + + + .. code-block:: python + + import paddle.v2 as paddle + + # Initialize PaddlePaddle. + paddle.init(use_gpu=False, trainer_count=1) + + # Configure the neural network. + x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13)) + y_predict = paddle.layer.fc(input=x, size=1, act=paddle.activation.Linear()) + + # Infer using provided test data. + probs = paddle.infer( + output_layer=y_predict, + parameters=paddle.dataset.uci_housing.model(), + input=[item for item in paddle.dataset.uci_housing.test()()]) + + for i in xrange(len(probs)): + print 'Predicted price: ${:,.2f}'.format(probs[i][0] * 1000) + +Run :code:`python housing.py` and voila! It should print out a list of predictions +for the test housing data. diff --git a/doc/_sources/howto/deep_model/rnn/index_en.rst.txt b/doc/_sources/howto/deep_model/rnn/index_en.rst.txt index 13a153b05c5..7adc79873d6 100644 --- a/doc/_sources/howto/deep_model/rnn/index_en.rst.txt +++ b/doc/_sources/howto/deep_model/rnn/index_en.rst.txt @@ -1,2 +1,7 @@ RNN Models ========== + +.. toctree:: + :maxdepth: 1 + + rnn_config_en.rst diff --git a/doc/_sources/howto/deep_model/rnn/rnn_config_en.rst.txt b/doc/_sources/howto/deep_model/rnn/rnn_config_en.rst.txt index 73f5d5371fc..f92edd108ff 100644 --- a/doc/_sources/howto/deep_model/rnn/rnn_config_en.rst.txt +++ b/doc/_sources/howto/deep_model/rnn/rnn_config_en.rst.txt @@ -3,34 +3,11 @@ RNN Configuration This tutorial will guide you how to configure recurrent neural network in PaddlePaddle. PaddlePaddle supports highly flexible and efficient recurrent neural network configuration. In this tutorial, you will learn how to: -- prepare sequence data for learning recurrent neural networks. - configure recurrent neural network architecture. - generate sequence with learned recurrent neural network models. -We will use vanilla recurrent neural network, and sequence to sequence model to guide you through these steps. The code of sequence to sequence model can be found at :code:`demo/seqToseq`. - -===================== -Prepare Sequence Data -===================== - -PaddlePaddle does not need any preprocessing to sequence data, such as padding. The only thing that needs to be done is to set the type of the corresponding type to input. For example, the following code snippets defines three input. All of them are sequences, and the size of them are :code:`src_dict`, :code:`trg_dict`, and :code:`trg_dict`: - -.. code-block:: python - - settings.input_types = [ - integer_value_sequence(len(settings.src_dict)), - integer_value_sequence(len(settings.trg_dict)), - integer_value_sequence(len(settings.trg_dict))] - - -Then at the :code:`process` function, each :code:`yield` function will return three integer lists. Each integer list is treated as a sequence of integers: - -.. code-block:: python - - yield src_ids, trg_ids, trg_ids_next - - -For more details description of how to write a data provider, please refer to :ref:`api_pydataprovider2` . The full data provider file is located at :code:`demo/seqToseq/dataprovider.py`. +We will use vanilla recurrent neural network, and sequence to sequence model to guide you through these steps. The code of sequence to sequence model can be found at `book/08.machine_translation `_ . +And the data preparation of this model can be found at `python/paddle/v2/dataset/wmt14.py `_ =============================================== Configure Recurrent Neural Network Architecture @@ -42,7 +19,7 @@ Simple Gated Recurrent Neural Network Recurrent neural network process a sequence at each time step sequentially. An example of the architecture of LSTM is listed below. -.. image:: ../../../tutorials/sentiment_analysis/src/bi_lstm.jpg +.. image:: src/bi_lstm.jpg :align: center Generally speaking, a recurrent network perform the following operations from :math:`t=1` to :math:`t=T`, or reversely from :math:`t=T` to :math:`t=1`. @@ -75,19 +52,19 @@ Its **output function** simply takes :math:`x_t` as the output. act=None, rnn_layer_attr=None): def __rnn_step__(ipt): - out_mem = memory(name=name, size=size) - rnn_out = mixed_layer(input = [full_matrix_projection(ipt), - full_matrix_projection(out_mem)], - name = name, - bias_attr = rnn_bias_attr, - act = act, - layer_attr = rnn_layer_attr, - size = size) + out_mem = paddle.layer.memory(name=name, size=size) + rnn_out = paddle.layer.mixed(input = [paddle.layer.full_matrix_projection(input=ipt), + paddle.layer.full_matrix_projection(input=out_mem)], + name = name, + bias_attr = rnn_bias_attr, + act = act, + layer_attr = rnn_layer_attr, + size = size) return rnn_out - return recurrent_group(name='%s_recurrent_group' % name, - step=__rnn_step__, - reverse=reverse, - input=input) + return paddle.layer.recurrent_group(name='%s_recurrent_group' % name, + step=__rnn_step__, + reverse=reverse, + input=input) PaddlePaddle uses memory to construct step function. **Memory** is the most important concept when constructing recurrent neural networks in PaddlePaddle. A memory is a state that is used recurrently in step functions, such as :math:`x_{t+1} = f_x(x_t)`. One memory contains an **output** and a **input**. The output of memory at the current time step is utilized as the input of the memory at the next time step. A memory can also has a **boot layer**, whose output is utilized as the initial value of the memory. In our case, the output of the gated recurrent unit is employed as the output memory. Notice that the name of the layer :code:`rnn_out` is the same as the name of :code:`out_mem`. This means the output of the layer :code:`rnn_out` (:math:`x_{t+1}`) is utilized as the **output** of :code:`out_mem` memory. @@ -101,7 +78,7 @@ Sequence to Sequence Model with Attention ----------------------------------------- We will use the sequence to sequence model with attention as an example to demonstrate how you can configure complex recurrent neural network models. An illustration of the sequence to sequence model with attention is shown in the following figure. -.. image:: ../../../tutorials/text_generation/encoder-decoder-attention-model.png +.. image:: src/encoder-decoder-attention-model.png :align: center In this model, the source sequence :math:`S = \{s_1, \dots, s_T\}` is encoded with a bidirectional gated recurrent neural networks. The hidden states of the bidirectional gated recurrent neural network :math:`H_S = \{H_1, \dots, H_T\}` is called *encoder vector* The decoder is a gated recurrent neural network. When decoding each token :math:`y_t`, the gated recurrent neural network generates a set of weights :math:`W_S^t = \{W_1^t, \dots, W_T^t\}`, which are used to compute a weighted sum of the encoder vector. The weighted sum of the encoder vector is utilized to condition the generation of the token :math:`y_t`. @@ -113,43 +90,52 @@ We also project the encoder vector to :code:`decoder_size` dimensional space, ge .. code-block:: python # Define the data layer of the source sentence. - src_word_id = data_layer(name='source_language_word', size=source_dict_dim) + src_word_id = paddle.layer.data( + name='source_language_word', + type=paddle.data_type.integer_value_sequence(source_dict_dim)) # Calculate the word embedding of each word. - src_embedding = embedding_layer( + src_embedding = paddle.layer.embedding( input=src_word_id, size=word_vector_dim, - param_attr=ParamAttr(name='_source_language_embedding')) + param_attr=paddle.attr.ParamAttr(name='_source_language_embedding')) # Apply forward recurrent neural network. - src_forward = grumemory(input=src_embedding, size=encoder_size) + src_forward = paddle.networks.simple_gru( + input=src_embedding, size=encoder_size) # Apply backward recurrent neural network. reverse=True means backward recurrent neural network. - src_backward = grumemory(input=src_embedding, - size=encoder_size, - reverse=True) + src_backward = paddle.networks.simple_gru( + input=src_embedding, size=encoder_size, reverse=True) # Mix the forward and backward parts of the recurrent neural network together. - encoded_vector = concat_layer(input=[src_forward, src_backward]) + encoded_vector = paddle.layer.concat(input=[src_forward, src_backward]) # Project encoding vector to decoder_size. - encoder_proj = mixed_layer(input = [full_matrix_projection(encoded_vector)], - size = decoder_size) + encoded_proj = paddle.layer.mixed( + size=decoder_size, + input=paddle.layer.full_matrix_projection(encoded_vector)) # Compute the first instance of the backward RNN. - backward_first = first_seq(input=src_backward) + backward_first = paddle.layer.first_seq(input=src_backward) # Project the first instance of backward RNN to decoder size. - decoder_boot = mixed_layer(input=[full_matrix_projection(backward_first)], size=decoder_size, act=TanhActivation()) + decoder_boot = paddle.layer.mixed( + size=decoder_size, + act=paddle.activation.Tanh(), + input=paddle.layer.full_matrix_projection(backward_first)) The decoder uses :code:`recurrent_group` to define the recurrent neural network. The step and output functions are defined in :code:`gru_decoder_with_attention`: .. code-block:: python - group_inputs=[StaticInput(input=encoded_vector,is_seq=True), - StaticInput(input=encoded_proj,is_seq=True)] - trg_embedding = embedding_layer( - input=data_layer(name='target_language_word', - size=target_dict_dim), - size=word_vector_dim, - param_attr=ParamAttr(name='_target_language_embedding')) + group_input1 = paddle.layer.StaticInput(input=encoded_vector, is_seq=True) + group_input2 = paddle.layer.StaticInput(input=encoded_proj, is_seq=True) + group_inputs = [group_input1, group_input2] + trg_embedding = paddle.layer.embedding( + input=paddle.layer.data( + name='target_language_word', + type=paddle.data_type.integer_value_sequence(target_dict_dim)), + size=word_vector_dim, + param_attr=paddle.attr.ParamAttr(name='_target_language_embedding')) + group_inputs.append(trg_embedding) group_inputs.append(trg_embedding) # For decoder equipped with attention mechanism, in training, @@ -158,9 +144,10 @@ The decoder uses :code:`recurrent_group` to define the recurrent neural network. # StaticInput means the same value is utilized at different time steps. # Otherwise, it is a sequence input. Inputs at different time steps are different. # All sequence inputs should have the same length. - decoder = recurrent_group(name=decoder_group_name, - step=gru_decoder_with_attention, - input=group_inputs) + decoder = paddle.layer.recurrent_group( + name=decoder_group_name, + step=gru_decoder_with_attention, + input=group_inputs) The implementation of the step function is listed as below. First, it defines the **memory** of the decoder network. Then it defines attention, gated recurrent unit step function, and the output function: @@ -171,27 +158,32 @@ The implementation of the step function is listed as below. First, it defines th # Defines the memory of the decoder. # The output of this memory is defined in gru_step. # Notice that the name of gru_step should be the same as the name of this memory. - decoder_mem = memory(name='gru_decoder', - size=decoder_size, - boot_layer=decoder_boot) + decoder_mem = paddle.layer.memory( + name='gru_decoder', size=decoder_size, boot_layer=decoder_boot) # Compute attention weighted encoder vector. - context = simple_attention(encoded_sequence=enc_vec, - encoded_proj=enc_proj, - decoder_state=decoder_mem) + context = paddle.networks.simple_attention( + encoded_sequence=enc_vec, + encoded_proj=enc_proj, + decoder_state=decoder_mem) # Mix the current word embedding and the attention weighted encoder vector. - decoder_inputs = mixed_layer(inputs = [full_matrix_projection(context), - full_matrix_projection(current_word)], - size = decoder_size * 3) + decoder_inputs = paddle.layer.mixed( + size=decoder_size * 3, + input=[ + paddle.layer.full_matrix_projection(input=context), + paddle.layer.full_matrix_projection(input=current_word) + ]) # Define Gated recurrent unit recurrent neural network step function. - gru_step = gru_step_layer(name='gru_decoder', - input=decoder_inputs, - output_mem=decoder_mem, - size=decoder_size) + gru_step = paddle.layer.gru_step( + name='gru_decoder', + input=decoder_inputs, + output_mem=decoder_mem, + size=decoder_size) # Defines the output function. - out = mixed_layer(input=[full_matrix_projection(input=gru_step)], - size=target_dict_dim, - bias_attr=True, - act=SoftmaxActivation()) + out = paddle.layer.mixed( + size=target_dict_dim, + bias_attr=True, + act=paddle.activation.Softmax(), + input=paddle.layer.full_matrix_projection(input=gru_step)) return out @@ -207,45 +199,37 @@ After training the model, we can use it to generate sequences. A common practice - :code:`eos_id`: the end token. Every sentence ends with the end token. - :code:`beam_size`: the beam size used in beam search. - :code:`max_length`: the maximum length of the generated sentences. - -* use :code:`seqtext_printer_evaluator` to print text according to index matrix and dictionary. This function needs to set: - - - :code:`id_input`: the integer ID of the data, used to identify the corresponding output in the generated files. - - :code:`dict_file`: the dictionary file for converting word id to word. - - :code:`result_file`: the path of the generation result file. The code is listed below: .. code-block:: python - group_inputs=[StaticInput(input=encoded_vector,is_seq=True), - StaticInput(input=encoded_proj,is_seq=True)] + group_input1 = paddle.layer.StaticInput(input=encoded_vector, is_seq=True) + group_input2 = paddle.layer.StaticInput(input=encoded_proj, is_seq=True) + group_inputs = [group_input1, group_input2] # In generation, decoder predicts a next target word based on # the encoded source sequence and the last generated target word. # The encoded source sequence (encoder's output) must be specified by # StaticInput which is a read-only memory. # Here, GeneratedInputs automatically fetchs the last generated word, # which is initialized by a start mark, such as . - trg_embedding = GeneratedInput( - size=target_dict_dim, - embedding_name='_target_language_embedding', - embedding_size=word_vector_dim) + trg_embedding = paddle.layer.GeneratedInput( + size=target_dict_dim, + embedding_name='_target_language_embedding', + embedding_size=word_vector_dim) group_inputs.append(trg_embedding) - beam_gen = beam_search(name=decoder_group_name, - step=gru_decoder_with_attention, - input=group_inputs, - bos_id=0, # Beginnning token. - eos_id=1, # End of sentence token. - beam_size=beam_size, - max_length=max_length) + beam_gen = paddle.layer.beam_search( + name=decoder_group_name, + step=gru_decoder_with_attention, + input=group_inputs, + bos_id=0, # Beginnning token. + eos_id=1, # End of sentence token. + beam_size=beam_size, + max_length=max_length) - seqtext_printer_evaluator(input=beam_gen, - id_input=data_layer(name="sent_id", size=1), - dict_file=trg_dict_path, - result_file=gen_trans_file) - outputs(beam_gen) + return beam_gen -Notice that this generation technique is only useful for decoder like generation process. If you are working on sequence tagging tasks, please refer to :ref:`semantic_role_labeling` for more details. +Notice that this generation technique is only useful for decoder like generation process. If you are working on sequence tagging tasks, please refer to `book/06.understand_sentiment `_ for more details. -The full configuration file is located at :code:`demo/seqToseq/seqToseq_net.py`. +The full configuration file is located at `book/08.machine_translation/train.py `_ . diff --git a/doc/_sources/howto/dev/build_en.md.txt b/doc/_sources/howto/dev/build_en.md.txt new file mode 100644 index 00000000000..91c41ef8ce3 --- /dev/null +++ b/doc/_sources/howto/dev/build_en.md.txt @@ -0,0 +1,124 @@ +# Build using Docker + +## What Developers Need + +To contribute to PaddlePaddle, you need + +1. A computer -- Linux, BSD, Windows, MacOS, and +1. Docker. + +Nothing else. Not even Python and GCC, because you can install all build tools into a Docker image. We run all the tools by running this image. + +## General Process + +1. Retrieve source code. + + ```bash + git clone https://github.com/paddlepaddle/paddle + ``` + +2. Install build tools into a Docker image. + + ```bash + cd paddle; docker build -t paddle:dev . + ``` + + Please be aware of the `.` at the end of the command, which refers to the [`./Dockerfile` file](https://github.com/PaddlePaddle/Paddle/blob/develop/Dockerfile). `docker build` follows instructions in this file to create a Docker image named `paddle:dev`, and installs building tools into it. + +3. Build from source. + + This following command starts a Docker container that executes the Docker image `paddle:dev`, mapping the current directory to `/paddle/` in the container, and runs the default entry-point [`build.sh`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/scripts/docker/build.sh) as specified in the Dockefile. `build.sh` invokes `cmake` and `make` to build PaddlePaddle source code, which had been mapped to `/paddle`, and writes outputs to `/paddle/build`, which maps to `build` in the current source directory on the computer. + + ```bash + docker run -v $PWD:/paddle paddle:dev + ``` + + Above command builds a CUDA-enabled version. If we want to build a CPU-only version, we can type + + ```bash + docker run -e WITH_GPU=OFF -v $PWD:/paddle paddle:dev + ``` + +4. Run unit tests. + + To run all unit tests using the first GPU of a node: + + ```bash + NV_GPU=0 nvidia-docker run -v $PWD:/paddle paddle:dev bash -c "cd /paddle/build; ctest" + ``` + + If we used `WITH_GPU=OFF` at build time, it generates only CPU-based unit tests, and we don't need nvidia-docker to run them. We can just run + + ```bash + docker run -v $PWD:/paddle paddle:dev bash -c "cd /paddle/build; ctest" + ``` + + Sometimes we want to run a specific unit test, say `memory_test`, we can run + + ```bash + nvidia-docker run -v $PWD:/paddle paddle:dev bash -c "cd /paddle/build; ctest -V -R memory_test" + ``` + +5. Clean Build. + + Sometimes, we might want to clean all thirt-party dependents and built binaries. To do so, just + + ```bash + rm -rf build + ``` + +## Docker, Or Not? + +- What is Docker? + + If you haven't heard of it, consider it something like Python's virtualenv. + +- Docker or virtual machine? + + Some people compare Docker with VMs, but Docker doesn't virtualize any hardware nor running a guest OS, which means there is no compromise on the performance. + +- Why Docker? + + Using a Docker image of build tools standardizes the building environment, which makes it easier for others to reproduce your problems and to help. + + Also, some build tools don't run on Windows or Mac or BSD, but Docker runs almost everywhere, so developers can use whatever computer they want. + +- Can I choose not to use Docker? + + Sure, you don't have to install build tools into a Docker image; instead, you can install them in your local computer. This document exists because Docker would make the development way easier. + +- How difficult is it to learn Docker? + + It takes you ten minutes to read [an introductory article](https://docs.docker.com/get-started) and saves you more than one hour to install all required build tools, configure them, especially when new versions of PaddlePaddle require some new tools. Not even to mention the time saved when other people trying to reproduce the issue you have. + +- Can I use my favorite IDE? + + Yes, of course. The source code resides on your local computer, and you can edit it using whatever editor you like. + + Many PaddlePaddle developers are using Emacs. They add the following few lines into their `~/.emacs` configure file: + + ```emacs + (global-set-key "\C-cc" 'compile) + (setq compile-command + "docker run --rm -it -v $(git rev-parse --show-toplevel):/paddle paddle:dev") + ``` + + so they could type `Ctrl-C` and `c` to build PaddlePaddle from source. + +- Does Docker do parallel building? + + Our building Docker image runs a [Bash script](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/scripts/docker/build.sh), which calls `make -j$(nproc)` to starts as many processes as the number of your CPU cores. + +## Some Gotchas + +- Docker requires sudo + + An owner of a computer has the administrative privilege, a.k.a., sudo, and Docker requires this privilege to work properly. If you use a shared computer for development, please ask the administrator to install and configure Docker. We will do our best to support rkt, another container technology that doesn't require sudo. + +- Docker on Windows/MacOS builds slowly + + On Windows and MacOS, Docker containers run in a Linux VM. You might want to give this VM some more memory and CPUs so to make the building efficient. Please refer to [this issue](https://github.com/PaddlePaddle/Paddle/issues/627) for details. + +- Not enough disk space + + Examples in this article uses option `--rm` with the `docker run` command. This option ensures that stopped containers do not exist on hard disks. We can use `docker ps -a` to list all containers, including stopped. Sometimes `docker build` generates some intermediate dangling images, which also take disk space. To clean them, please refer to [this article](https://zaiste.net/posts/removing_docker_containers/). diff --git a/doc/_sources/howto/dev/contribute_to_paddle_en.md.txt b/doc/_sources/howto/dev/contribute_to_paddle_en.md.txt index 9b0d3e83c0d..a60453ff4e3 100644 --- a/doc/_sources/howto/dev/contribute_to_paddle_en.md.txt +++ b/doc/_sources/howto/dev/contribute_to_paddle_en.md.txt @@ -1,146 +1,157 @@ # Contribute Code -We sincerely appreciate your contributions. You can use fork and pull request -workflow to merge your code. +We sincerely appreciate your contribution. This document explains our workflow and work style. -## Code Requirements -- Your code must be fully documented by - [doxygen](http://www.stack.nl/~dimitri/doxygen/) style. -- Make sure the compiler option WITH\_STYLE\_CHECK is on and the compiler - passes the code style check. -- All code must have unit test. -- Pass all unit tests. +## Workflow -The following tutorial guides you into submitting your contibution. +PaddlePaddle uses this [Git branching model](http://nvie.com/posts/a-successful-git-branching-model/). The following steps guide usual contributions. -## [Creating a Fork](https://help.github.com/articles/fork-a-repo/) +1. Fork -Just head over to the GitHub page and click the "Fork" button. -It's just that simple. + Our development community has been growing fastly; it doesn't make sense for everyone to write into the official repo. So, please file Pull Requests from your fork. To make a fork, just head over to the GitHub page and click the ["Fork" button](https://help.github.com/articles/fork-a-repo/). -## Clone +1. Clone -Paddle is currently using [git-flow branching model](http://nvie.com/posts/a-successful-git-branching-model/). -The **develop** is the main branch, and other user's branches are feature branches. + To make a copy of your fork to your local computers, please run -Once you've created a fork, you can use your favorite git client to clone your -repo or just head straight to the command line: + ```bash + git clone https://github.com/your-github-account/paddle + cd paddle + ``` -```shell -# Clone your fork to your local machine -git clone --branch develop https://github.com/USERNAME/Paddle.git -``` -If your repository doesn't contain **develop** branch, just create it by your own. - -```shell -git clone https://github.com/USERNAME/Paddle.git Paddle -cd Paddle -git checkout -b develop # create develop branch. -git remote add upstream https://github.com/PaddlePaddle/Paddle.git # add upstream to baidu/Paddle -git pull upstream develop # update to upstream -``` +1. Create the local feature branch -Then you can start to develop by making a local developement branch + For daily works like adding a new feature or fixing a bug, please open your feature branch before coding: -```shell -git checkout -b MY_COOL_STUFF_BRANCH -``` + ```bash + git checkout -b my-cool-stuff + ``` -## Using `pre-commit` hook +1. Commit -Paddle developers use [pre-commit](http://pre-commit.com/) tool to manage git -pre-commit hooks. It can help us format source codes (cpp, python), check some -basic thing before commit (only one EOL for each file, do not add a huge file -in git). `pre-commit` tests is a part of unit tests in Travis-CI now, every -PR doesn't fit hook can not be merged into Paddle. + Before issuing your first `git commit` command, please install [`pre-commit`](http://pre-commit.com/) by running the following commands: -To use [pre-commit](http://pre-commit.com/), you should install it by -`pip install pre-commit`, and currently, Paddle uses `clang-format` to format -c/cpp sources. Please make sure clang-format 3.8+ installed. + ```bash + pip install pre-commit + pre-commit install + ``` -Then just run `pre-commit install` in your Paddle clone directory. When you -commit your code, the pre-commit hook will check the local code if there is -anything not suitable to commit, and so on. + Our pre-commit configuration requires clang-format 3.8 for auto-formating C/C++ code and yapf for Python. -## Commit + Once installed, `pre-commit` checks the style of code and documentation in every commit. We will see something like the following when you run `git commit`: -Commit your changes by following command lines: + ``` + ➜ git commit + CRLF end-lines remover...............................(no files to check)Skipped + yapf.................................................(no files to check)Skipped + Check for added large files..............................................Passed + Check for merge conflicts................................................Passed + Check for broken symlinks................................................Passed + Detect Private Key...................................(no files to check)Skipped + Fix End of Files.....................................(no files to check)Skipped + clang-formater.......................................(no files to check)Skipped + [my-cool-stuff c703c041] add test file + 1 file changed, 0 insertions(+), 0 deletions(-) + create mode 100644 233 + ``` -```shell -# show the working tree status -git status -# add modified files -git add xx -env EDITOR=vim git commit # You can write your comments by vim/nano/emacs. -``` -The first line of commit infomation is the title. The second and later lines -are the details if any. +1. Build and test -## Keeping Fork Up to Date + Users can build PaddlePaddle natively on Linux and Mac OS X. But to unify the building environment and to make it easy for debugging, the recommended way is [using Docker](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/howto/dev/build_en.md). -Before pull your request, you should sync your code from the latest PaddlePaddle. -To do this, you'll need to add a remote at first: +1. Keep pulling -```shell -# see the current configured remote repository -git remote -v -# add upstream repository -git remote add upstream https://github.com/PaddlePaddle/Paddle.git -# verify the new upstream -git remote -v -``` + An experienced Git user pulls from the official repo often -- daily or even hourly, so they notice conflicts with others work early, and it's easier to resolve smaller conflicts. -Update your fork with the latest upstream changes: + ```bash + git remote add upstream https://github.com/PaddlePaddle/Paddle + git pull upstream develop + ``` -```shell -git pull --rebase upstream develop -``` +1. Push and file a pull request -If there are no unique commits locally, git will simply perform a fast-forward. -However, if you have been making changes (in the vast majority of cases you -probably shouldn't be), you may have to deal with conflicts. + You can "push" your local work into your forked repo: -Now, your local master branch is up-to-date with everything modified upstream. + ```bash + git push origin my-cool-stuff + ``` -## Push to GitHub + The push allows you to create a pull request, requesting owners of this [official repo](https://github.com/PaddlePaddle/Paddle) to pull your change into the official one. -```shell -# push to your repository in Github -git push -u origin MY_COOL_STUFF_BRANCH # create remote branch MY_COOL_STUFF_BRANCH to origin. -``` + To create a pull request, please follow [these steps](https://help.github.com/articles/creating-a-pull-request/). -## Pull Request + If your change is for fixing an issue, please write ["Fixes "](https://help.github.com/articles/closing-issues-using-keywords/) in the description section of your pull request. Github would close the issue when the owners merge your pull request. -Go to the page for your fork on GitHub, select your development branch, -and click the **pull request button**. + Please remember to specify some reviewers for your pull request. If you don't know who are the right ones, please follow Github's recommendation. -## Update your pull request with the lastest version -During the code review, your pull request may become stale because new commits in -baidu/Paddle. GitHub allows autmotic update if there is no conflict. You can do this -by clicking the "Update Branch" button in your pull request page. However, in the case -of conflict, you need to do the update manually. You need to do the following on -your local repository: -```shell -git checkout MY_COOL_STUFF_BRANCH -git pull upstream develop -# You may need to resolve the conflict according to the git prompt. -# Make and test your code. -git push origin MY_COOL_STUFF_BRANCH -``` -Now your Pull Request is updated with the latest version. +1. Delete local and remote branches + + To keep your local workspace and your fork clean, you might want to remove merged branches: + + ```bash + git push origin :my-cool-stuff + git checkout develop + git pull upstream develop + git branch -d my-cool-stuff + ``` + +### Code Review + +- Please feel free to ping your reviewers by sending them the URL of your pull request via IM or email. Please do this after your pull request passes the CI. + +- Please answer reviewers' every comment. If you are to follow the comment, please write "Done"; please give a reason otherwise. + +- If you don't want your reviewers to get overwhelmed by email notifications, you might reply their comments by [in a batch](https://help.github.com/articles/reviewing-proposed-changes-in-a-pull-request/). + +- Reduce the unnecessary commits. Some developers commit often. It is recommended to append a sequence of small changes into one commit by running `git commit --amend` instead of `git commit`. + + +## Coding Standard -## Revise your pull request +### Code Style -When you revise your pull request according to reviewer's comments, please use 'git commit' instead of 'git commit --amend' to commit your changes so that the reviewers can see the difference between the new pull requrest and the old pull request. +Our C/C++ code follows the [Google style guide](http://google.github.io/styleguide/cppguide.html). -The possible commands are +Our Python code follows the [PEP8 style guide](https://www.python.org/dev/peps/pep-0008/). -```shell -git checkout MY_COOL_STUFF_BRANCH -git pull upstream develop # update local to newest code base. -# May be some conflicts will occured. -# And develop your cool stuff -env EDITOR=vim git commit # add your revise log -git push origin MY_COOL_STUFF_BRANCH +Our build process helps to check the code style. In [`build.sh`](https://github.com/PaddlePaddle/Paddle/blob/b84e8226514b8bb4405c3c28e54aa5077193d179/paddle/scripts/docker/build.sh#L42), the entry point of our [builder Docker image](https://github.com/PaddlePaddle/Paddle/blob/b84e8226514b8bb4405c3c28e54aa5077193d179/Dockerfile#L88), the CMake argument `WITH_STYLE_CHECK` is set to `ON` by default. This flag is on + +Please install pre-commit, which automatically reformat the changes to C/C++ and Python code whenever we run `git commit`. To check the whole codebase, we can run the command `pre-commit run -a`, as in the [`check_style.sh` file](https://github.com/PaddlePaddle/Paddle/blob/b84e8226514b8bb4405c3c28e54aa5077193d179/paddle/scripts/travis/check_style.sh#L30), which is invoked by [our Travis CI configuration](https://github.com/PaddlePaddle/Paddle/blob/b84e8226514b8bb4405c3c28e54aa5077193d179/.travis.yml#L43). + +### Unit Tests + +Please remember to add related unit tests. + +- For C/C++ code, please follow [`google-test` Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md). + +- For Python code, please use [Python's standard `unittest` package](http://pythontesting.net/framework/unittest/unittest-introduction/). + + +### Writing Logs + +We use [glog](https://github.com/google/glog) for logging in our C/C++ code. + +For general information, please use `LOG`. For debug information, please use [`VLOG`](http://htmlpreview.github.io/?https://github.com/google/glog/blob/master/doc/glog.html#verbose). The reason is at [here](https://groups.google.com/a/chromium.org/d/msg/chromium-dev/3NDNd1KzXeY/AZKMMx37fdQJ). + +`VLOG` requires a *verbose level* parameter. For example: + +```c++ +VLOG(3) << "Operator FC is taking " << num_inputs << "inputs." +``` + +When we run a PaddlePaddle application or test, we can specify a verbose threshold. For example: + +```bash +GLOG_vmodule=buddy_allocator=2 \ +GLOG_v=10 \ +python \ +../python/paddle/v2/framework/tests/test_recurrent_op.py ``` + +This will enable VLOG messages generated by `buddy_allocator.{h,cc}` and in the verbose range of 0 to 3, so you will see above example VLOG message, which is in level 3. This suggests that we output overall messages in lower verbose levels, so they display with higher probability. When coding C++, please follow the verbose level convention as follows: + +- verbose level 1: [framework](https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/framework) +- verbose level 3: [operators](https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/operators) +- verbose level 5: [memory](https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/memory), [platform](https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/platform) +- verbose level 7: [math](https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/math) diff --git a/doc/_sources/howto/dev/new_layer_en.rst.txt b/doc/_sources/howto/dev/new_layer_en.rst.txt index 46481f5ead3..110a9fb38f8 100644 --- a/doc/_sources/howto/dev/new_layer_en.rst.txt +++ b/doc/_sources/howto/dev/new_layer_en.rst.txt @@ -29,7 +29,7 @@ Fully connected layer takes a dense input vector with dimension :math:`D_i`. It where :math:`f(.)` is an nonlinear *activation* function, such as sigmoid, tanh, and Relu. -The transformation matrix :math:`W` and bias vector :math:`b` are the *parameters* of the layer. The *parameters* of a layer are learned during training in the *backward pass*. The backward pass computes the gradients of the output function with respect to all parameters and inputs. The optimizer can use chain rule to compute the gradients of the loss function with respect to each parameter. +The transformation matrix :math:`W` and bias vector :math:`b` are the *parameters* of the layer. The *parameters* of a layer are learned during training in the *backward pass*. The backward pass computes the gradients of the output function with respect to all parameters and inputs. The optimizer can use chain rule to compute the gradients of the loss function with respect to each parameter. Suppose our loss function is :math:`c(y)`, then @@ -37,7 +37,7 @@ Suppose our loss function is :math:`c(y)`, then \frac{\partial c(y)}{\partial x} = \frac{\partial c(y)}{\partial y} \frac{\partial y}{\partial x} -Suppose :math:`z = f(W^T x + b)`, then +Suppose :math:`z = W^T x + b`, then .. math:: @@ -48,7 +48,7 @@ This derivative can be automatically computed by our base layer class. Then, for fully connected layer, we need to compute: .. math:: - + \frac{\partial z}{\partial x} = W, \frac{\partial z_j}{\partial W_{ij}} = x_i, \frac{\partial z}{\partial b} = \mathbf 1 where :math:`\mathbf 1` is an all one vector, :math:`W_{ij}` is the number at the i-th row and j-th column of the matrix :math:`W`, :math:`z_j` is the j-th component of the vector :math:`z`, and :math:`x_i` is the i-th component of the vector :math:`x`. @@ -322,7 +322,7 @@ All the gradient check unit tests are located in :code:`paddle/gserver/tests/tes /* weight */ true); } } - + If you are creating a new file for the test, such as :code:`paddle/gserver/tests/testFCGrad.cpp`, you need to add the file to :code:`paddle/gserver/tests/CMakeLists.txt`. An example is given below. All the unit tests will run when you execute the command :code:`make tests`. Notice that some layers might need high accuracy for the gradient check unit tests to work well. You need to configure :code:`WITH_DOUBLE` to `ON` when configuring cmake. .. code-block:: bash diff --git a/doc/_sources/howto/dev/new_op_en.md.txt b/doc/_sources/howto/dev/new_op_en.md.txt new file mode 100644 index 00000000000..1e88e1f5b4d --- /dev/null +++ b/doc/_sources/howto/dev/new_op_en.md.txt @@ -0,0 +1,342 @@ +# How to write a new operator + + - [Background](#background) + - [Implementing C++ Types](#implementing-c++-types) + - [Defining ProtoMaker](#defining-protoMaker) + - [Defining Operator](#defining-operator) + - [Registering Operator](#registering-operator) + - [Compilation](#compilation) + - [Python Binding](#python-binding) + - [Unit Tests](#unit-tests) + - [Testing Forward Operators](#testing-forward-operators) + - [Testing Backward Operators](#testing-backward-operators) + - [Compiling and Running](#compiling-and-running) + - [Remarks](#remarks) +## Background + +Here are the base types needed. For details, please refer to the design docs. + +- `framework::OperatorBase`: Operator (Op)base class. +- `framework::OpKernel`: Base class for Op computation. +- `framework::OperatorWithKernel`: Inherited from OperatorBase, describing an operator with computation. +- `class OpProtoAndCheckerMaker`: Describes an Operator's input, output, attributes and description, mainly used to interface with Python API. + +An operator can be differentiated by whether in has kernel methods. An operator with kernel inherits from `OperatorWithKernel` while the ones without inherit from `OperatorBase`. This tutorial focuses on implementing operators with kernels. In short, an operator includes the following information: + + + Information | Where is it defined +-------------- | :---------------------- +OpProtoMake definition | `.cc`files, Backward Op does not need an OpProtoMake interface. +Op definition | `.cc` files +Kernel implementation | The kernel methods shared between CPU and GPU are defined in `.h` files. CPU-specific kernels live in `.cc` files, while GPU-specific kernels are implemented in `.cu`files. +Registering the Op | Ops are registered in `.cc` files; For Kernel registration, `.cc` files contain the CPU implementation, while `.cu` files contain the GPU implementation. + + +New Operator implementations are added to the list [paddle/operators](https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/operators), with file names in the format `*_op.h` (if applicable), `*_op.cc`, `*_op.cu` (if applicable).** The system will use the naming scheme to automatically build operators and their corresponding Python extensions. ** + + +Let's take matrix multiplication operator, [MulOp](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/mul_op.cc), as an example to introduce the writing of an Operator with Kernel. + + +## Implementing C++ Types + + +### 1. Defining Class ProtoMaker + +Matrix Multiplication can be written as $Out = X * Y$, meaning that the operation consists of two inputs and pne output. + +First, define `ProtoMaker` to describe the Operator's input, output, and additional comments: + +```cpp +class MulOpMaker : public framework::OpProtoAndCheckerMaker { + public: + MulOpMaker(framework::OpProto *proto, framework::OpAttrChecker *op_checker) + : OpProtoAndCheckerMaker(proto, op_checker) { + AddInput("X", "(Tensor), 2D tensor of size (M x K)"); + AddInput("Y", "(Tensor), 2D tensor of size (K x N)"); + AddOutput("Out", "(Tensor), 2D tensor of size (M x N)"); + AddComment(R"DOC( +Two Element Mul Operator. +The equation is: Out = X * Y +)DOC"); + } +}; +``` + +[`MulOpMaker`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/mul_op.cc#L43)is inherited from`framework::OpProtoAndCheckerMaker`, consisting of 2 variables in the constructor: + + - `framework::OpProto` stores Operator input and variable attribute, used for generating Python API interfaces. + - `framework::OpAttrChecker` is used to validate variable attributes. + +The constructor utilizes `AddInput`, `AddOutput`, and `AddComment`, so that the corresponding information will be added to `OpProto`. + +The code above adds two inputs `X` and `Y` to `MulOp`, an output `Out`, and their corresponding descriptions, in accordance to Paddle's [naming convention](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/name_convention.md). + + +An additional example [`ScaleOp`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/scale_op.cc#L37) is implemented as follows: + +```cpp +template +class ScaleOpMaker : public framework::OpProtoAndCheckerMaker { + public: + ScaleOpMaker(framework::OpProto *proto, framework::OpAttrChecker *op_checker) + : OpProtoAndCheckerMaker(proto, op_checker) { + AddInput("X", "The input tensor of scale operator.").NotInGradient(); + AddOutput("Out", "The output tensor of scale operator.").NotInGradient(); + AddComment(R"DOC(Scale operator +The equation is: Out = scale*X +)DOC"); + AddAttr("scale", "scale of scale operator.").SetDefault(1.0); + } +}; +``` + +There are two changes in this example: + +- `AddInput("X","...").NotInGradient()` expresses that input `X` is not involved in `ScaleOp`'s corresponding computation. If an input to an operator is not participating in back-propagation, please explicitly set `.NotInGradient()`. + +- `AddAttr("scale", "...").SetDefault(1.0);` adds `scale`constant as an attribute, and sets the default value to 1.0. + + +### 2. Defining Operator + +The following code defines the interface for MulOp: + +```cpp +class MulOp : public framework::OperatorWithKernel { + public: + using framework::OperatorWithKernel::OperatorWithKernel; + + protected: + void InferShape(const framework::InferShapeContext &ctx) const override { + auto dim0 = ctx.Input("X")->dims(); + auto dim1 = ctx.Input("Y")->dims(); + PADDLE_ENFORCE_EQ(dim0.size(), 2, + "input X(%s) should be a tensor with 2 dims, a matrix", + ctx.op_.Input("X")); + PADDLE_ENFORCE_EQ(dim1.size(), 2, + "input Y(%s) should be a tensor with 2 dims, a matrix", + ctx.op_.Input("Y")); + PADDLE_ENFORCE_EQ( + dim0[1], dim1[0], + "First matrix's width must be equal with second matrix's height."); + ctx.Output("Out")->Resize({dim0[0], dim1[1]}); + } +}; +``` + +[`MulOp`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/mul_op.cc#L22) is inherited from `OperatorWithKernel`. Its `public` member + +```cpp +using framework::OperatorWithKernel::OperatorWithKernel; +``` + +expresses an operator constructor using base class `OperatorWithKernel`, alternatively written as + +```cpp +MulOp(const std::string &type, const framework::VariableNameMap &inputs, + const framework::VariableNameMap &outputs, + const framework::AttributeMap &attrs) + : OperatorWithKernel(type, inputs, outputs, attrs) {} +``` + +`InferShape` interface needs to be re-written.`InferShape` is a constant method and cannot modify Op's member variables, its constant member `const framework::InferShapeContext &ctx` can be used to extract input, output, and attributes. It functions to + + - 1). validate and error out early: it checks input data dimensions and types. + - 2). configures the tensor shape in the output. + +Usually `OpProtoMaker` and `Op`'s type definitions are written in `.cc` files, which also include the registration methods introduced later. + +### 3. Defining OpKernel + +`MulKernel` inherits `framework::OpKernel`, which includes the following templates: + +- `typename Place` denotes device type. When different devices, namely the CPU and the GPU, share the same kernel, this template needs to be added. If they don't share kernels, this must not be added. An example of a non-sharing kernel is [`OnehotCrossEntropyOpKernel`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/cross_entropy_op.h#L43). + +- `typename T` denotes data type, such as `float` or `double`. + +`MulKernel` types need to rewrite the interface for `Compute`. +- `Compute` takes one input variable `const framework::ExecutionContext& context`. +- Compared with `InferShapeContext`, `ExecutionContext` includes device types, and can similarly extract input, output, and attribute variables. +- `Compute` implements the computation logics of an `OpKernel`. + +`MulKernel`'s implementation of `Compute` is as follows: + + ```cpp + template + class MulKernel : public framework::OpKernel { + public: + void Compute(const framework::ExecutionContext& context) const override { + auto* X = context.Input("X"); + auto* Y = context.Input("Y"); + auto* Z = context.Output("Out"); + Z->mutable_data(context.GetPlace()); + auto* device_context = + const_cast(context.device_context_); + math::matmul(*X, false, *Y, false, 1, Z, 0, device_context); + } + }; + ``` + +Note that **different devices (CPU, GPU)share an Op definition; whether or not they share the same `OpKernel` depends on whether `Compute` calls functions that support both devices.** + +`MulOp`'s CPU and GPU share the same `Kernel`. A non-sharing `OpKernel` example can be seen in [`OnehotCrossEntropyOpKernel`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/operators/cross_entropy_op.h#L43). + +To ease the writing of `OpKernel` compute, and for reusing code cross-device, [`Eigen-unsupported Tensor`](https://bitbucket.org/eigen/eigen/src/default/unsupported/Eigen/CXX11/src/Tensor/README.md?fileviewer=file-view-default) module is used to implement `Compute` interface. To learn about how the Eigen library is used in PaddlePaddle, please see [usage document](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/howto/dev/use_eigen_cn.md). + + +This concludes the forward implementation of an operator. Next its operation and kernel need to be registered in a `.cc` file. + +The definition of its corresponding backward operator, if applicable, is similar to that of an forward operator. **Note that a backward operator does not include a `ProtoMaker`**. + +### 4. Registering Operator + +- In `.cc` files, register forward and backward operator classes and the CPU kernel. + + ```cpp + namespace ops = paddle::operators; + REGISTER_OP(mul, ops::MulOp, ops::MulOpMaker, mul_grad, ops::MulOpGrad); + REGISTER_OP_CPU_KERNEL(mul, ops::MulKernel); + REGISTER_OP_CPU_KERNEL(mul_grad, + ops::MulGradKernel); + ``` + + In that code block, + + - `REGISTER_OP` registers the `ops::MulOp` class, type named `mul`, its type `ProtoMaker` is `ops::MulOpMaker`, registering `ops::MulOpGrad` as `mul_grad`. + - `REGISTER_OP_WITHOUT_GRADIENT` registers an operator without gradient. + - `REGISTER_OP_CPU_KERNEL` registers `ops::MulKernel` class and specialized template types `paddle::platform::CPUPlace` and `float`, which also registers `ops::MulGradKernel`. + + +- Registering GPU Kernel in `.cu` files + - Note that if GPU Kernel is implemented using the `Eigen unsupported` module, then on top of `.cu`, a macro definition `#define EIGEN_USE_GPU` is needed, such as + + ```cpp + // if use Eigen unsupported module before include head files + #define EIGEN_USE_GPU + + namespace ops = paddle::operators; + REGISTER_OP_GPU_KERNEL(mul, ops::MulKernel); + REGISTER_OP_GPU_KERNEL(mul_grad, + ops::MulGradKernel); + ``` + +### 5. Compilation + +Run the following commands to compile. + +``` +make mul_op +``` + +## Python Binding + +The system will automatically bind to Python and link it to a generated library. + +## Unit Tests + +Unit tests for an operator include + +1. comparing a forward operator's implementations on different devices, + +2. comparing a backward operator's implementation on different devices, and + +3. a scaling test for the backward operator. + +Here, we introduce the [unit tests for `MulOp`](https://github.com/PaddlePaddle/Paddle/blob/develop/python/paddle/v2/framework/tests/test_mul_op.py). + +### Testing Forward Operators + +A forward operator unit test inherits `unittest.TestCase` and defines metaclass `__metaclass__ = OpTestMeta`. More concrete tests are performed in `OpTestMeta`. Testing a forward operator requires the following: + +1. Defining input, output and relevant attributes in `setUp` method. + +2. Generating random input data. + +3. Implementing the same computation logic in a Python script: + + ```python + import unittest + import numpy as np + from gradient_checker import GradientChecker, create_op + from op_test_util import OpTestMeta + + class TestMulOp(unittest.TestCase): + __metaclass__ = OpTestMeta + + def setUp(self): + self.type = "mul" + self.inputs = { + 'X': np.random.random((32, 84)).astype("float32"), + 'Y': np.random.random((84, 100)).astype("float32") + } + self.outputs = {'Out': np.dot(self.inputs['X'], self.inputs['Y'])} + ``` +Get its output, and compare it with the forward operator's own output. + +The code above first loads required packages. In addition, we have + +- `self.type = "mul" ` defines the type that is identical to what the operator's registered type. +- `self.inputs` defines input, with type `numpy.array` and initializes it. +- `self.outputs` defines output and completes the same operator computation in the Python script, and returns its result from the Python script. + +### Testing Backward Operators + +A backward operator unit test inherits `GradientChecker`, which inherits `unittest.TestCase`. As a result, **a backward operator unit test needs to be have the prefix `test_`**. + +```python +class TestMulGradOp(GradientChecker): + def setUp(self): + self.op = create_op("mul") + self.inputs = { + 'X': np.random.random((32, 84)).astype("float32"), + 'Y': np.random.random((84, 100)).astype("float32") + } + + def test_check_grad_normal(self): + # mul op will enlarge the relative error + self.check_grad(['X', 'Y'], 'Out', max_relative_error=0.5) + + def test_check_grad_ingore_x(self): + self.check_grad( + ['Y'], 'Out', max_relative_error=0.5, no_grad_set=set("X")) + + def test_check_grad_ingore_y(self): + self.check_grad( + ['X'], 'Out', max_relative_error=0.5, no_grad_set=set('Y')) +``` + +Some key points in the code above include: + +- `create_op("mul")` creates the backward operator's corresponding forward operator. +- `test_normal` calls `check_grad` to validate scaling tests' correctness and stability through numeric methods. + - The first variable `["X", "Y"]` appoints `X` and `Y` to be scale tested. + - The second variable `"Out"` points to the network's final output target `Out`. + - The third variable `max_relative_error` points to the maximum relative tolerance error during scaling tests. +- `test_check_grad_ingore_x` and `test_check_grad_ingore_y`branches test the cases where there is only one scaling input. + +### Compiling and Running + + +Any new unit testing file of the format `test_*.py` added to the director `python/paddle/v2/framework/tests` is automatically added to the project to compile. + +Note that **unlike the compile test for Ops, running unit tests requires compiling the entire project** and requires compiling with flag `WITH_TESTING` on i.e. `cmake paddle_dir -DWITH_TESTING=ON`. + +After successfully compiling the project, run the following command to run unit tests: + +```bash +make test ARGS="-R test_mul_op -V" +``` + +Or, + +```bash +ctest -R test_mul_op +``` + +## Remarks + +- Every `*_op.h` (if applicable), `*_op.cc`, and `*_op.cu` (if applicable) must be created for a unique Op. Compiling will fail if multiple operators are included per file. +- The type with which an operator is registered needs to be identical to the Op's name. Registering `REGISTER_OP(B, ...)` in `A_op.cc` will cause unit testing failures. +- If the operator does not implement a GPU kernel, please refrain from creating an empty `*_op.cu` file, or else unit tests will fail. +- If multiple operators rely on some shared methods, a file NOT named `*_op.*` can be created to store them, such as `gather.h`. diff --git a/doc/_sources/howto/dev/use_eigen_en.md.txt b/doc/_sources/howto/dev/use_eigen_en.md.txt new file mode 100644 index 00000000000..e169106e12f --- /dev/null +++ b/doc/_sources/howto/dev/use_eigen_en.md.txt @@ -0,0 +1,146 @@ +## How to use Eigen in Paddle + +Essentially, a neural network is a compute graph. T data needed for the computation is stored in `Tensor`s and its computation procedure is described by `Operator`s. An `Operator` calls the `Compute` interface in its corresponding `OpKernel` and operates on the `Tensor`. + + +### Eigen Tensor Module + +The Eigen Tensor module supports powerful element-wise computation. In addition, a piece of code written using it can be run on both the CPU and the GPU. + +Note that Eigen Tensor is still being actively developed, so its tests are not completely covered and its documentation may be sparse. + +For details on Eigen Tensor module, please see [doc 1](https://github.com/RLovelett/eigen/blob/master/unsupported/Eigen/CXX11/src/Tensor/README.md) and [doc 2](https://bitbucket.org/eigen/eigen/src/default/unsupported/Eigen/CXX11/src/Tensor/README.md). + + +### paddle::framework::Tensor + +Paddle Tensor's is defined in the framework directory with the following interface: + +```cpp +class Tensor { + public: + /*! Return a pointer to mutable memory block. */ + template + inline T* data(); + + /** + * @brief Return a pointer to mutable memory block. + * @note If not exist, then allocation. + */ + template + inline T* mutable_data(platform::Place place); + + /** + * @brief Return a pointer to mutable memory block. + * + * @param[in] dims The dimensions of the memory block. + * @param[in] place The place of the memory block. + * + * @note If not exist, then allocation. + */ + template + inline T* mutable_data(DDim dims, platform::Place place); + + /*! Resize the dimensions of the memory block. */ + inline Tensor& Resize(const DDim& dims); + + /*! Return the dimensions of the memory block. */ + inline const DDim& dims() const; + + private: + /*! holds the memory block if allocated. */ + std::shared_ptr holder_; + + /*! points to dimensions of memory block. */ + DDim dim_; +}; +``` + +`Placeholder` is used to delay memory allocation; that is, we can first define a tensor, using `Resize` to configure its shape, and then call `mutuable_data` to allocate the actual memory. + +```cpp +paddle::framework::Tensor t; +paddle::platform::CPUPlace place; +// set size first +t.Resize({2, 3}); +// allocate memory on CPU later +t.mutable_data(place); +``` + +### paddle::framework::Tensor Usage +`AddOp` demonstrates Tensor's usage. + +- InferShape + +When computing a neural network's compute graph, first call every `Operator`'s `InferShape` method, and use `Resize` to configure the size of the output tensor. + +```cpp +void InferShape(const framework::InferShapeContext &ctx) const override { + PADDLE_ENFORCE_EQ(ctx.Input("X")->dims(), + ctx.Input("Y")->dims(), + "Two input of Add Op's dimension must be same."); + ctx.Output("Out")->Resize(ctx.Input("X")->dims()); +} +``` + + +- Run + +```cpp +void Compute(const framework::ExecutionContext& context) const override { + auto* input0 = context.Input("X"); + auto* input1 = context.Input("Y"); + auto* output = context.Output("Out"); + + output->mutable_data(context.GetPlace()); + + auto x = EigenVector::Flatten(*input0); + auto y = EigenVector::Flatten(*input1); + auto z = EigenVector::Flatten(*output); + + auto place = context.GetEigenDevice(); + + z.device(place) = x + y; +} +``` + + +### paddle::framework::Tensor到EigenTensor的转换 + +As shown above, in actual computation, we need to transform the input and output `Tensor`s into formats Eigen supports. We show some functions in [eigen.h](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/eigen.h) to implement the transformation from `paddle::framework::Tensor`to `EigenTensor/EigenMatrix/EigenVector/EigenScalar`. + +Using EigenTensor as an example: + +```cpp +Tensor t; +float* p = t.mutable_data(make_ddim({1, 2, 3}), platform::CPUPlace()); +for (int i = 0; i < 1 * 2 * 3; i++) { + p[i] = static_cast(i); +} + +EigenTensor::Type et = EigenTensor::From(t); +``` + +`From` is an interfacing method provided by the EigenTensor template, which implements the transformation from a `paddle::framework::Tensor` object to an EigenTensor. Since `rank` is a template parameter, it needs to be explicitly specified at the time of the transformation. + +In Eigen, tensors with different ranks are different types, with `Vector` bring a rank-1 instance. Note that `EigenVector::From` uses a transformation from an 1-dimensional Paddle tensor to a 1-dimensional Eigen tensor while `EigenVector::Flatten` reshapes a paddle tensor and flattens it into a 1-dimensional Eigen tensor. Both resulting tensors are still typed EigenVector. + +For more transformations, see the [unit tests](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/framework/eigen_test.cc) in the `eigen_test.cc` file. + + + +### Implementing Computation + +While computing, the device interface is needed from the EigenTensors on the left hand side of the assignments. Note that the computation between EigenTensors only changes the data originally inthe Tensor and does not change all the shape information associated with the Tensor. + +```cpp +auto x = EigenVector::Flatten(*input0); +auto y = EigenVector::Flatten(*input1); +auto z = EigenVector::Flatten(*output); +auto place = context.GetEigenDevice(); +z.device(place) = x + y; +``` + +In this code segment, input0/input1/output can be Tensors of arbitrary dimension. We are calling Flatten from EigenVector, transforming a tensor of any dimension into a 1-dimensional EigenVector. After completing computation, input0/input1/output will retain the same shape information, and they can be resized using the `Resize` interface. + +Because the Eigen Tensor module is under-documented, please refer to `OpKernel`'s computation code in TensorFlow's [kernel module documentation](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/kernels). diff --git a/doc/_sources/howto/dev/write_docs_en.rst.txt b/doc/_sources/howto/dev/write_docs_en.rst.txt new file mode 100644 index 00000000000..b3ef07eb1d0 --- /dev/null +++ b/doc/_sources/howto/dev/write_docs_en.rst.txt @@ -0,0 +1,80 @@ +################## +Contribute Documentation +################## + +PaddlePaddle supports English documentation ``doc`` and Chinese documentation ``doc_cn``. +Both are compiled by `cmake`_ and `sphinx`_ , the compiled documentations will be stored under ``doc`` and ``doc_cn`` directories. +When using the PaddlePaddle.org to compile documentations, the compiled documentations will be stored under a consolidated directory: .ppo_workspace/content + +How to Build Documentations +============ + +We recommend using PaddlePaddle.org tool to build documentation + + +Use PaddlePaddle.org tool +-------------- +This is the recommended method to build documentation. It can compile documentation and preview the documentation in a web browser. + +The tool uses Docker, please install it on your system. Please check Docker official website on how to install Docker. You may use the following commands to activate the tool + +.. code-block:: bash + + mkdir paddlepaddle # Create paddlepaddle working directory + cd paddlepaddle + + # Clone the content repositories. You may only clone the contents you need + git clone https://github.com/PaddlePaddle/Paddle.git + git clone https://github.com/PaddlePaddle/book.git + git clone https://github.com/PaddlePaddle/models.git + git clone https://github.com/PaddlePaddle/Mobile.git + + # Please specify the working directory through -v + docker run -it -p 8000:8000 -v `pwd`:/var/content paddlepaddle/paddlepaddle.org:latest + +Note: PaddlePaddle.org will read the content repos specified in the -v (volume) flag of the docker run command +Use a web browser and navigate to http://localhost:8000, click the buttons to compile the documentation +The compiled documentations will be stored in /.ppo_workspace/content + + +If you don't wish to use Docker, you can also activate the tool through Django. Use the following the commands to set up + +.. code-block:: bash + + mkdir paddlepaddle # Create paddlepaddle working directory + cd paddlepaddle + + # Clone the content repositories and PaddlePaddle.org + git clone https://github.com/PaddlePaddle/Paddle.git + git clone https://github.com/PaddlePaddle/book.git + git clone https://github.com/PaddlePaddle/models.git + git clone https://github.com/PaddlePaddle/Mobile.git + git clone https://github.com/PaddlePaddle/PaddlePaddle.org.git + + # Please specify the PaddlePaddle working directory. In the current setting, it should be pwd + export CONTENT_DIR= + export ENV='' + cd PaddlePaddle.org/portal/ + pip install -r requirements.txt + python manage.py runserver + +Use a web browser and navigate to http://localhost:8000, click the buttons to compile the documentation +The compiled documentations will be stored in /.ppo_workspace/content + +If you want to learn more on the PaddlePaddle.org, please `click here `_ 。 + +How to write Documentations +============ + +PaddlePaddle uses `sphinx`_ to compile documentations,Please check sphinx official website for more detail. + + +How to update www.paddlepaddle.org +============================ + +Please create PRs and submit them to github, please check `Contribute Code `_ 。 +PaddlePaddle develop branch will update the documentation once the PR is merged. User may check latest `Chinese Docs `_ and +`English Docs `_ 。 + +.. _cmake: https://cmake.org/ +.. _sphinx: http://www.sphinx-doc.org/en/1.4.8/ diff --git a/doc/_sources/howto/index_en.rst.txt b/doc/_sources/howto/index_en.rst.txt index 1fbfcd260b9..61bf25ccd12 100644 --- a/doc/_sources/howto/index_en.rst.txt +++ b/doc/_sources/howto/index_en.rst.txt @@ -20,6 +20,7 @@ Development dev/new_layer_en.rst dev/contribute_to_paddle_en.md + dev/write_docs_en.rst Configuration ------------- diff --git a/doc/_sources/howto/optimization/cpu_profiling.md.txt b/doc/_sources/howto/optimization/cpu_profiling.md.txt new file mode 100644 index 00000000000..1775374cf6e --- /dev/null +++ b/doc/_sources/howto/optimization/cpu_profiling.md.txt @@ -0,0 +1,197 @@ +This tutorial introduces techniques we use to profile and tune the +CPU performance of PaddlePaddle. We will use Python packages +`cProfile` and `yep`, and Google's `perftools`. + +Profiling is the process that reveals performance bottlenecks, +which could be very different from what's in the developers' mind. +Performance tuning is done to fix these bottlenecks. Performance optimization +repeats the steps of profiling and tuning alternatively. + +PaddlePaddle users program AI applications by calling the Python API, which calls +into `libpaddle.so.` written in C++. In this tutorial, we focus on +the profiling and tuning of + +1. the Python code and +1. the mixture of Python and C++ code. + +## Profiling the Python Code + +### Generate the Performance Profiling File + +We can use Python standard +package, [`cProfile`](https://docs.python.org/2/library/profile.html), +to generate Python profiling file. For example: + +```bash +python -m cProfile -o profile.out main.py +``` + +where `main.py` is the program we are going to profile, `-o` specifies +the output file. Without `-o`, `cProfile` would outputs to standard +output. + +### Look into the Profiling File + +`cProfile` generates `profile.out` after `main.py` completes. We can +use [`cprofilev`](https://github.com/ymichael/cprofilev) to look into +the details: + +```bash +cprofilev -a 0.0.0.0 -p 3214 -f profile.out main.py +``` + +where `-a` specifies the HTTP IP, `-p` specifies the port, `-f` +specifies the profiling file, and `main.py` is the source file. + +Open the Web browser and points to the local IP and the specifies +port, we will see the output like the following: + +``` + ncalls tottime percall cumtime percall filename:lineno(function) + 1 0.284 0.284 29.514 29.514 main.py:1() + 4696 0.128 0.000 15.748 0.003 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/executor.py:20(run) + 4696 12.040 0.003 12.040 0.003 {built-in method run} + 1 0.144 0.144 6.534 6.534 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/__init__.py:14() +``` + +where each line corresponds to Python function, and the meaning of +each column is as follows: + +| column | meaning | +| --- | --- | +| ncalls | the number of calls into a function | +| tottime | the total execution time of the function, not including the + execution time of other functions called by the function | +| percall | tottime divided by ncalls | +| cumtime | the total execution time of the function, including the execution time of other functions being called | +| percall | cumtime divided by ncalls | +| filename:lineno(function) | where the function is defined | + +### Identify Performance Bottlenecks + +Usually, `tottime` and the related `percall` time is what we want to +focus on. We can sort above profiling file by tottime: + +```text + 4696 12.040 0.003 12.040 0.003 {built-in method run} + 300005 0.874 0.000 1.681 0.000 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/dataset/mnist.py:38(reader) + 107991 0.676 0.000 1.519 0.000 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/framework.py:219(__init__) + 4697 0.626 0.000 2.291 0.000 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/framework.py:428(sync_with_cpp) + 1 0.618 0.618 0.618 0.618 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/__init__.py:1() +``` + +We can see that the most time-consuming function is the `built-in +method run`, which is a C++ function in `libpaddle.so`. We will +explain how to profile C++ code in the next section. At this +moment, let's look into the third function `sync_with_cpp`, which is a +Python function. We can click it to understand more about it: + +``` +Called By: + + Ordered by: internal time + List reduced from 4497 to 2 due to restriction <'sync_with_cpp'> + +Function was called by... + ncalls tottime cumtime +/home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/framework.py:428(sync_with_cpp) <- 4697 0.626 2.291 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/framework.py:562(sync_with_cpp) +/home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/framework.py:562(sync_with_cpp) <- 4696 0.019 2.316 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/framework.py:487(clone) + 1 0.000 0.001 /home/yuyang/perf_test/.env/lib/python2.7/site-packages/paddle/v2/fluid/framework.py:534(append_backward) + + +Called: + + Ordered by: internal time + List reduced from 4497 to 2 due to restriction <'sync_with_cpp'> +``` + +The lists of the callers of `sync_with_cpp` might help us understand +how to improve the function definition. + +## Profiling Python and C++ Code + +### Generate the Profiling File + +To profile a mixture of Python and C++ code, we can use a Python +package, `yep`, that can work with Google's `perftools`, which is a +commonly-used profiler for C/C++ code. + +In Ubuntu systems, we can install `yep` and `perftools` by running the +following commands: + +```bash +apt update +apt install libgoogle-perftools-dev +pip install yep +``` + +Then we can run the following command + +```bash +python -m yep -v main.py +``` + +to generate the profiling file. The default filename is +`main.py.prof`. + +Please be aware of the `-v` command line option, which prints the +analysis results after generating the profiling file. By examining the + the print result, we'd know that if we stripped debug +information from `libpaddle.so` at build time. The following hints +help make sure that the analysis results are readable: + +1. Use GCC command line option `-g` when building `libpaddle.so` so to + include the debug information. The standard building system of + PaddlePaddle is CMake, so you might want to set + `CMAKE_BUILD_TYPE=RelWithDebInfo`. + +1. Use GCC command line option `-O2` or `-O3` to generate optimized + binary code. It doesn't make sense to profile `libpaddle.so` + without optimization, because it would anyway run slowly. + +1. Profiling the single-threaded binary file before the + multi-threading version, because the latter often generates tangled + profiling analysis result. You might want to set environment + variable `OMP_NUM_THREADS=1` to prevents OpenMP from automatically + starting multiple threads. + +### Examining the Profiling File + +The tool we used to examine the profiling file generated by +`perftools` is [`pprof`](https://github.com/google/pprof), which +provides a Web-based GUI like `cprofilev`. + +We can rely on the standard Go toolchain to retrieve the source code +of `pprof` and build it: + +```bash +go get github.com/google/pprof +``` + +Then we can use it to profile `main.py.prof` generated in the previous +section: + +```bash +pprof -http=0.0.0.0:3213 `which python` ./main.py.prof +``` + +Where `-http` specifies the IP and port of the HTTP service. +Directing our Web browser to the service, we would see something like +the following: + +![result](./pprof_1.png) + +### Identifying the Performance Bottlenecks + +Similar to how we work with `cprofilev`, we'd focus on `tottime` and +`cumtime`. + +![kernel_perf](./pprof_2.png) + +We can see that the execution time of multiplication and the computing +of the gradient of multiplication takes 2% to 4% of the total running +time, and `MomentumOp` takes about 17%. Obviously, we'd want to +optimize `MomentumOp`. + +`pprof` would mark performance critical parts of the program in +red. It's a good idea to follow the hints. diff --git a/doc/_sources/howto/usage/cluster/cluster_train_en.md.txt b/doc/_sources/howto/usage/cluster/cluster_train_en.md.txt index c60876721cb..baa97c0c02a 100644 --- a/doc/_sources/howto/usage/cluster/cluster_train_en.md.txt +++ b/doc/_sources/howto/usage/cluster/cluster_train_en.md.txt @@ -1,129 +1,220 @@ -# Run Distributed Training +# PaddlePaddle Distributed Training + +* [Introduction](#introduction) +* [Preparations](#preparations) +* [Command-line arguments](#command-line-arguments) + * [Starting parameter server](#starting-parameter-server) + * [Starting trainer](#starting-trainer) + * [Prepare Training Dataset](#prepare-training-dataset) + * [Prepare Training program](#prepare-training-program) +* [Use cluster platforms or cluster management tools](#use-cluster-platforms-or-cluster-management-tools) + * [Cluster Training Using Fabric](#cluster-training-using-fabric) + * [Prepare a Linux cluster](#prepare-a-linux-cluster) + * [Launching Cluster Job](#launching-cluster-job) + * [Kill Cluster Job](#kill-cluster-job) + * [Check Cluster Training Result](#check-cluster-training-result) + * [Check Model Output](#check-model-output) + * [Cluster Training Using OpenMPI](#cluster-training-using-openmpi) + * [Prepare an OpenMPI cluster](#prepare-an-openmpi-cluster) + * [Launching Cluster Job](#launching-cluster-job-1) + * [Cluster Training Using Kubernetes](#cluster-training-using-kubernetes) + +## Introduction + +In this article, we'll explain how to run distributed training jobs with PaddlePaddle on different types of clusters. The diagram below shows the main architecture of a distributed trainning job: + + + +- Data shard: training data will be split into multiple partitions, trainers use the partitions of the whole dataset to do the training job. +- Trainer: each trainer reads the data shard, and train the neural network. Then the trainer will upload calculated "gradients" to parameter servers, and wait for parameters to be optimized on the parameter server side. When that finishes, the trainer download optimized parameters and continues its training. +- Parameter server: every parameter server stores part of the whole neural network model data. They will do optimization calculations when gradients are uploaded from trainers, and then send updated parameters to trainers. + +PaddlePaddle can support both synchronize stochastic gradient descent (SGD) and asynchronous SGD. + +When training with synchronize SGD, PaddlePaddle uses an internal "synchronize barrier" which makes gradients update and parameter download in strict order. On the other hand, asynchronous SGD won't wait for all trainers to finish upload at a single step, this will increase the parallelism of distributed training: parameter servers do not depend on each other, they'll do parameter optimization concurrently. Parameter servers will not wait for trainers, so trainers will also do their work concurrently. But asynchronous SGD will introduce more randomness and noises in the gradient. + +## Preparations +1. Prepare your computer cluster. It's normally a bunch of Linux servers connected by LAN. Each server will be assigned a unique IP address. The computers in the cluster can be called "nodes". +2. Install PaddlePaddle on every node. If you are going to take advantage of GPU cards, you'll also need to install proper driver and CUDA libraries. To install PaddlePaddle please read [this build and install](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/getstarted/build_and_install) document. We strongly recommend using [Docker installation](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/getstarted/build_and_install/docker_install_en.rst). + +After installation, you can check the version by typing the below command (run a docker container if using docker: `docker run -it paddlepaddle/paddle:[tag] /bin/bash`): + +```bash +$ paddle version +PaddlePaddle 0.10.0rc, compiled with + with_avx: ON + with_gpu: OFF + with_double: OFF + with_python: ON + with_rdma: OFF + with_timer: OFF +``` -In this article, we explain how to run distributed Paddle training jobs on clusters. We will create the distributed version of the single-process training example, [recommendation](https://github.com/baidu/Paddle/tree/develop/demo/recommendation). +We'll take `doc/howto/usage/cluster/src/word2vec` as an example to introduce distributed training using PaddlePaddle v2 API. -[Scripts](https://github.com/baidu/Paddle/tree/develop/paddle/scripts/cluster_train) used in this article launch distributed jobs via SSH. They also work as a reference for users running more sophisticated cluster management systems like MPI and [Kubernetes](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/howto/usage/k8s). +## Command-line arguments -## Prerequisite +### Starting parameter server -1. Aforementioned scripts use a Python library [fabric](http://www.fabfile.org/) to run SSH commands. We can use `pip` to install fabric: +Type the below command to start a parameter server which will wait for trainers to connect: - ```bash - pip install fabric - ``` +```bash +$ paddle pserver --port=7164 --ports_num=1 --ports_num_for_sparse=1 --num_gradient_servers=1 +``` -1. We need to install PaddlePaddle on all nodes in the cluster. To enable GPUs, we need to install CUDA in `/usr/local/cuda`; otherwise Paddle would report errors at runtime. +If you wish to run parameter servers in background, and save a log file, you can type: +```bash +$ stdbuf -oL /usr/bin/nohup paddle pserver --port=7164 --ports_num=1 --ports_num_for_sparse=1 --num_gradient_servers=1 &> pserver.log +``` -1. Set the `ROOT_DIR` variable in [`cluster_train/conf.py`] on all nodes. For convenience, we often create a Unix user `paddle` on all nodes and set `ROOT_DIR=/home/paddle`. In this way, we can write public SSH keys into `/home/paddle/.ssh/authorized_keys` so that user `paddle` can SSH to all nodes without password. +| param | required | default | description | +| ------------- | ------------- | ------------- | ------------- | +| port | required | 7164 | port which parameter server will listen on. If ports_num greater than 1, parameter server will listen on multiple ports for more network throughput | +| ports_num | required | 1 | total number of ports will listen on | +| ports_num_for_sparse | required | 1 | number of ports which serves sparse parameter update | +| num_gradient_servers | required | 1 | total number of gradient servers | -## Prepare Job Workspace +### Starting trainer +Type the command below to start the trainer(name the file whatever you want, like "train.py") -We refer to the directory where we put dependent libraries, config files, etc., as *workspace*. +```bash +$ python train.py +``` -These `train/test` data should be prepared before launching cluster job. To satisfy the requirement that train/test data are placed in different directory from workspace, PADDLE refers train/test data according to index file named as `train.list/test.list` which are used in model config file. So the train/test data also contains train.list/test.list two list file. All local training demo already provides scripts to help you create these two files, and all nodes in cluster job will handle files with same logical code in normal condition. +Trainers' network need to be connected with parameter servers' network to finish the job. Trainers need to know port and IPs to locate parameter servers. You can pass arguments to trainers through [environment variables](https://en.wikipedia.org/wiki/Environment_variable) or pass to `paddle.init()` function. Arguments passed to the `paddle.init()` function will overwrite environment variables. -Generally, you can use same model file from local training for cluster training. What you should have in mind that, the `batch_size` set in `setting` function in model file means batch size in `each` node of cluster job instead of total batch size if synchronization SGD was used. +Use environment viriables: -Following steps are based on [demo/recommendation](https://github.com/PaddlePaddle/Paddle/tree/develop/demo/recommendation) demo in demo directory. +```bash +export PADDLE_INIT_USE_GPU=False +export PADDLE_INIT_TRAINER_COUNT=1 +export PADDLE_INIT_PORT=7164 +export PADDLE_INIT_PORTS_NUM=1 +export PADDLE_INIT_PORTS_NUM_FOR_SPARSE=1 +export PADDLE_INIT_NUM_GRADIENT_SERVERS=1 +export PADDLE_INIT_TRAINER_ID=0 +export PADDLE_INIT_PSERVERS=127.0.0.1 +python train.py +``` -You just go through demo/recommendation tutorial doc until `Train` section, and at last you will get train/test data and model configuration file. Finaly, just use demo/recommendation as workspace for cluster training. +Pass arguments: -At last your workspace should look like as follow: +```python +paddle.init( + use_gpu=False, + trainer_count=1, + port=7164, + ports_num=1, + ports_num_for_sparse=1, + num_gradient_servers=1, + trainer_id=0, + pservers="127.0.0.1") ``` -. -|-- common_utils.py -|-- data -| |-- config.json -| |-- config_generator.py -| |-- meta.bin -| |-- meta_config.json -| |-- meta_generator.py -| |-- ml-1m -| |-- ml_data.sh -| |-- ratings.dat.test -| |-- ratings.dat.train -| |-- split.py -| |-- test.list -| `-- train.list -|-- dataprovider.py -|-- evaluate.sh -|-- prediction.py -|-- preprocess.sh -|-- requirements.txt -|-- run.sh -`-- trainer_config.py + +| param | required | default | description | +| ------------- | ------------- | ------------- | ------------- | +| use_gpu | optional | False | set to "True" to enable GPU training | +| trainer_count | required | 1 | total count of trainers in the training job | +| port | required | 7164 | port to connect to parameter server | +| ports_num | required | 1 | number of ports for communication | +| ports_num_for_sparse | required | 1 | number of ports for sparse type caculation | +| num_gradient_servers | required | 1 | total number of gradient server | +| trainer_id | required | 0 | ID for every trainer, start from 0 | +| pservers | required | 127.0.0.1 | list of IPs of parameter servers, separated by "," | + +### Prepare Training Dataset + +Here's some example code [prepare.py](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/howto/usage/cluster/src/word2vec/prepare.py), it will download public `imikolov` dataset and split it into multiple files according to job parallelism(trainers count). Modify `SPLIT_COUNT` at the begining of `prepare.py` to change the count of output files. + +In the real world, we often use `MapReduce` job's output as training data, so there will be lots of files. You can use `mod` to assign training file to trainers: + +```python +import os +train_list = [] +flist = os.listdir("/train_data/") +for f in flist: + suffix = int(f.split("-")[1]) + if suffix % TRAINER_COUNT == TRAINER_ID: + train_list.append(f) ``` -Not all of these files are needed for cluster training, but it's not necessary to remove useless files. -`trainer_config.py` -Indicates the model config file. +Example code `prepare.py` will split training data and testing data into 3 files with digital suffix like `-00000`, `-00001` and`-00002`: -`train.list` and `test.list` -File index. It stores all relative or absolute file paths of all train/test data at current node. +``` +train.txt +train.txt-00000 +train.txt-00001 +train.txt-00002 +test.txt +test.txt-00000 +test.txt-00001 +test.txt-00002 +``` -`dataprovider.py` -used to read train/test samples. It's same as local training. +When job started, every trainer needs to get it's own part of data. In some distributed systems a storage service will be provided, so the date under that path can be accessed by all the trainer nodes. Without the storage service, you must copy the training data to each trainer node. -`data` -all files in data directory are refered by train.list/test.list which are refered by data provider. +Different training jobs may have different data format and `reader()` function, developers may need to write different data prepare scripts and `reader()` functions for their job. +### Prepare Training program -## Prepare Cluster Job Configuration +We'll create a *workspace* directory on each node, storing your training program, dependencies, mounted or downloaded dataset directory. -The options below must be carefully set in cluster_train/conf.py -`HOSTS` all nodes hostname or ip that will run cluster job. You can also append user and ssh port with hostname, such as root@192.168.100.17:9090. +Your workspace may looks like: +``` +. +|-- my_lib.py +|-- word_dict.pickle +|-- train.py +|-- train_data_dir/ +| |-- train.txt-00000 +| |-- train.txt-00001 +| |-- train.txt-00002 +`-- test_data_dir/ + |-- test.txt-00000 + |-- test.txt-00001 + `-- test.txt-00002 +``` -`ROOT_DIR` workspace ROOT directory for placing JOB workspace directory +- `my_lib.py`: user defined libraries, like PIL libs. This is optional. +- `word_dict.pickle`: dict file for training word embeding. +- `train.py`: training program. Sample code: [api_train_v2_cluster.py](https://github.com/PaddlePaddle/Paddle/tree/develop/doc/howto/usage/cluster/src/word2vec/prepare.py). ***NOTE:*** You may need to modify the head part of `train.py` when using different cluster platform to retrive configuration environment variables: -`PADDLE_NIC` the NIC(Network Interface Card) interface name for cluster communication channel, such as eth0 for ethternet, ib0 for infiniband. + ```python + cluster_train_file = "./train_data_dir/train/train.txt" + cluster_test_file = "./test_data_dir/test/test.txt" + node_id = os.getenv("OMPI_COMM_WORLD_RANK") + if not node_id: + raise EnvironmentError("must provied OMPI_COMM_WORLD_RANK") + ``` -`PADDLE_PORT` port number for cluster commnunication channel +- `train_data_dir`: containing training data. Mount from storage service or copy trainning data to here. +- `test_data_dir`: containing testing data. -`PADDLE_PORTS_NUM` the number of port used for cluster communication channle. if the number of cluster nodes is small(less than 5~6nodes), recommend you set it to larger, such as 2 ~ 8, for better network performance. +## Use cluster platforms or cluster management tools -`PADDLE_PORTS_NUM_FOR_SPARSE` the number of port used for sparse updater cluster commnunication channel. if sparse remote update is used, set it like `PADDLE_PORTS_NUM` +PaddlePaddle supports running jobs on several platforms including: +- [Kubernetes](http://kubernetes.io) open-source system for automating deployment, scaling, and management of containerized applications from Google. +- [OpenMPI](https://www.open-mpi.org) Mature high performance parallel computing framework. +- [Fabric](http://www.fabfile.org) A cluster management tool. Write scripts to submit jobs or manage the cluster. -`LD_LIBRARY_PATH` set addtional LD_LIBRARY_PATH for cluster job. You can use it to set CUDA libraries path. +We'll introduce cluster job management on these platforms. The examples can be found under [cluster_train_v2](https://github.com/PaddlePaddle/Paddle/tree/develop/paddle/scripts/cluster_train_v2). -Default Configuration as follow: +These cluster platforms provide API or environment variables for training processes, when the job is dispatched to different nodes. Like node ID, IP or total number of nodes etc. -```python -HOSTS = [ - "root@192.168.100.17", - "root@192.168.100.18", - ] - -''' -workspace configuration -''' - -#root dir for workspace -ROOT_DIR = "/home/paddle" - -''' -network configuration -''' -#pserver nics -PADDLE_NIC = "eth0" -#pserver port -PADDLE_PORT = 7164 -#pserver ports num -PADDLE_PORTS_NUM = 2 -#pserver sparse ports num -PADDLE_PORTS_NUM_FOR_SPARSE = 2 - -#environments setting for all processes in cluster job -LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/lib64" -``` +### Cluster Training Using Fabric -### Launching Cluster Job -`paddle.py` provides automatical scripts to start all PaddlePaddle cluster processes in different nodes. By default, all command line options can set as `paddle.py` command options and `paddle.py` will transparently and automatically set these options to PaddlePaddle lower level processes. +#### Prepare a Linux cluster + +Run `kubectl -f ssh_servers.yaml` under the directory: `paddle/scripts/cluster_train_v2/fabric/docker_cluster` will launch a demo cluster. Run `kubectl get po -o wide` to get IP addresses of these nodes. + +#### Launching Cluster Job +`paddle.py` provides automatical scripts to start all PaddlePaddle cluster processes in different nodes. By default, all command line options can be set as `paddle.py` command options and `paddle.py` will transparently and automatically set these options to PaddlePaddle lower level processes. `paddle.py`provides two distinguished command option for easy job launching. -`job_dispatch_package` set it with local `workspace`directory, it will be dispatched to all nodes set in conf.py. It could be helpful for frequent hacking workspace files, otherwise frequent mulit-nodes workspace deployment could make your crazy. -`job_workspace` set it with already deployed workspace directory, `paddle.py` will skip dispatch stage to directly launch cluster job with all nodes. It could help to reduce heavy +- `job_dispatch_package` set it with local `workspace` directory, it will be dispatched to all nodes which is set in `conf.py`. It could be helpful for frequently manipulating workspace files. otherwise, frequent multi-nodes workspace deployment is very annoying. +- `job_workspace` set it with already deployed workspace directory, `paddle.py` will skip dispatch stage to directly launch cluster job with all nodes. It could help to reduce heavy dispatch latency. `cluster_train/run.sh` provides command line sample to run `demo/recommendation` cluster job, just modify `job_dispatch_package` and `job_workspace` with your defined directory, then: @@ -133,24 +224,70 @@ sh run.sh The cluster Job will start in several seconds. -### Kill Cluster Job -`paddle.py` can capture `Ctrl + C` SIGINT signal to automatically kill all processes launched by it. So just stop `paddle.py` to kill cluster job. You should mannally kill job if program crashed. +#### Kill Cluster Job +`paddle.py` can capture `Ctrl + C` SIGINT signal to automatically kill all processes launched by it. So just stop `paddle.py` to kill cluster job. You should manually kill the job if the program crashed. -### Check Cluster Training Result +#### Check Cluster Training Result Check log in $workspace/log for details, each node owns same log structure. `paddle_trainer.INFO` -It provides almost all interal output log for training, same as local training. Check runtime model convergence here. +It provides almost all internal output log for training, same as local training. Check runtime model convergence here. `paddle_pserver2.INFO` -It provides pserver running log, which could help to diagnose distributed error. +It provides parameter server running log, which could help to diagnose distributed error. `server.log` -It provides stderr and stdout of pserver process. Check error log if training crashs. +It provides stderr and stdout of parameter server process. Check error log if training crashes. `train.log` -It provides stderr and stdout of trainer process. Check error log if training crashs. +It provides stderr and stdout of trainer process. Check error log if training crashes. -### Check Model Output -After one pass finished, model files will be writed in `output` directory in node 0. +#### Check Model Output +After one pass finished, model files will be written in `output` directory in node 0. `nodefile` in workspace indicates the node id of current cluster job. + +### Cluster Training Using OpenMPI + +#### Prepare an OpenMPI cluster + +Run the following command to start a 3-node MPI cluster and one "head" node. + +```bash +cd paddle/scripts/cluster_train_v2/openmpi/docker_cluster +kubectl create -f head.yaml +kubectl create -f mpi-nodes.yaml +``` + +Then you can log in to every OpenMPI node using ssh without input any passwords. + +#### Launching Cluster Job + +Follow the steps to launch a PaddlePaddle training job in OpenMPI cluster:\ + +```bash +# find out node IP addresses +kubectl get po -o wide +# generate a "machines" file containing node IP addresses +kubectl get po -o wide | grep nodes | awk '{print $6}' > machines +# copy necessary files onto "head" node +scp -i ssh/id_rsa.mpi.pub machines prepare.py train.py start_mpi_train.sh tutorial@[headIP]:~ +# login to head node using ssh +ssh -i ssh/id_rsa.mpi.pub tutorial@[headIP] +# --------------- in head node --------------- +# prepare training data +python prepare.py +# copy training data and dict file to MPI nodes +cat machines | xargs -i scp word_dict.pickle train.py start_mpi_train.sh machines {}:/home/tutorial +# creat a directory for storing log files +mpirun -hostfile machines -n 3 mkdir /home/tutorial/logs +# copy training data to every node +scp train.txt-00000 test.txt-00000 [node1IP]:/home/tutorial +scp train.txt-00001 test.txt-00001 [node2IP]:/home/tutorial +scp train.txt-00002 test.txt-00002 [node3IP]:/home/tutorial +# start the job +mpirun -hostfile machines -n 3 /home/tutorial/start_mpi_train.sh +``` + +### Cluster Training Using Kubernetes + +The details can be found [here](../k8s/k8s_cn.md) diff --git a/doc/_sources/index_en.rst.txt b/doc/_sources/index_en.rst.txt index 168c7667c61..23b64b6cadf 100644 --- a/doc/_sources/index_en.rst.txt +++ b/doc/_sources/index_en.rst.txt @@ -7,4 +7,4 @@ PaddlePaddle Documentation getstarted/index_en.rst howto/index_en.rst api/index_en.rst - about/index_en.rst + mobile/index_en.rst diff --git a/doc/_sources/mobile/cross_compiling_for_android_en.md.txt b/doc/_sources/mobile/cross_compiling_for_android_en.md.txt new file mode 100644 index 00000000000..26858581fc1 --- /dev/null +++ b/doc/_sources/mobile/cross_compiling_for_android_en.md.txt @@ -0,0 +1,175 @@ +# Build PaddlePaddle for Android + +There are two approaches to build PaddlePaddle for Android: using Docker and on Linux without Docker. + +## Cross-Compiling Using Docker + +Docker-based cross-compiling is the recommended approach because Docker runs on all major operating systems, including Linux, Mac OS X, and Windows. + +### Build the Docker Image + +The following steps pack all the tools that we need to build PaddlePaddle into a Docker image. + +```bash +$ git clone https://github.com/PaddlePaddle/Paddle.git +$ cd Paddle +$ docker build -t paddle:dev-android . -f Dockerfile.android +``` + +### Build the Inference Library + +We can run the Docker image we just created to build the inference library of PaddlePaddle for Android using the command below: + +```bash +$ docker run -it --rm -v $PWD:/paddle -e "ANDROID_ABI=armeabi-v7a" -e "ANDROID_API=21" paddle:dev-android +``` + +The Docker image accepts two arguments `ANDROID_ABI` and `ANDROID_API`: + + ++ + + + + + + + + + + + + + + + + + + + + + + +
ArgumentOptional ValuesDefault
ANDROID_ABIarmeabi-v7a, arm64-v8aarmeabi-v7a
ANDROID_API>= 2121
+ +The ARM-64 architecture (`arm64-v8a`) requires at least level 21 of Android API. + +The default entry-point of the Docker image, [`paddle/scripts/docker/build_android.sh`](https://github.com/PaddlePaddle/Paddle/blob/develop/paddle/scripts/docker/build_android.sh) generates the [Android cross-compiling standalone toolchain](https://developer.android.com/ndk/guides/standalone_toolchain.html) based on the argument: `ANDROID_ABI` or `ANDROID_API`. For information about other configuration arguments, please continue reading. + +The above command generates and outputs the inference library in `$PWD/install_android` and puts third-party libraries in `$PWD/install_android/third_party`. + +## Cross-Compiling on Linux + +The Linux-base approach to cross-compile is to run steps in `Dockerfile.android` manually on a Linux x64 computer. + +### Setup the Environment + +To build for Android's, we need [Android NDK]( +https://developer.android.com/ndk/downloads/index.html): + +```bash +wget -q https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip +unzip -q android-ndk-r14b-linux-x86_64.zip +``` + +Android NDK includes everything we need to build the [*standalone toolchain*](https://developer.android.com/ndk/guides/standalone_toolchain.html), which in then used to build PaddlePaddle for Android. (We plan to remove the intermediate stage of building the standalone toolchain in the near future.) + +- To build the standalone toolchain for `armeabi-v7a` and Android API level 21: + + ```bash + your/path/to/android-ndk-r14b-linux-x86_64/build/tools/make-standalone-toolchain.sh \ + --arch=arm --platform=android-21 --install-dir=your/path/to/arm_standalone_toolchain + ``` + + The generated standalone toolchain will be in `your/path/to/arm_standalone_toolchain`. + +- To build the standalone toolchain for `arm64-v8a` and Android API level 21: + + ```bash + your/path/to/android-ndk-r14b-linux-x86_64/build/tools/make-standalone-toolchain.sh \ + --arch=arm64 --platform=android-21 --install-dir=your/path/to/arm64_standalone_toolchain + ``` + + The generated standalone toolchain will be in `your/path/to/arm64_standalone_toolchain`. + +**Please be aware that the minimum level of Android API required by PaddlePaddle is 21.** + +### Cross-Compiling Arguments + +CMake supports [choosing the toolchain](https://cmake.org/cmake/help/v3.0/manual/cmake-toolchains.7.html#cross-compiling). PaddlePaddle provides [`android.cmake`](https://github.com/PaddlePaddle/Paddle/blob/develop/cmake/cross_compiling/android.cmake), which configures the Android cross-compiling toolchain for CMake. `android.cmake` is not required for CMake >= 3.7, which support Android cross-compiling. PaddlePaddle detects the CMake version, for those newer than 3.7, it uses [the official version](https://cmake.org/cmake/help/v3.7/manual/cmake-toolchains.7.html#cross-compiling). + +Some other CMake arguments you need to know: + +- `CMAKE_SYSTEM_NAME` must be `Android`. This tells PaddlePaddle's CMake system to cross-compile third-party dependencies. This also changes some other CMake arguments like `WITH_GPU=OFF`, `WITH_AVX=OFF`, `WITH_PYTHON=OFF`, and `WITH_RDMA=OFF`. +- `WITH_C_API` must be `ON`, to build the C-based inference library for Android. +- `WITH_SWIG_PY` must be `OFF` because the Android platform doesn't support SWIG-based API. + +Some Android-specific arguments: + +- `ANDROID_STANDALONE_TOOLCHAIN`: the absolute path of the Android standalone toolchain, or the path relative to the CMake build directory. PaddlePaddle's CMake extensions would derive the cross-compiler, sysroot and Android API level from this argument. +- `ANDROID_TOOLCHAIN`: could be `gcc` or `clang`. The default value is `clang`. + - For CMake >= 3.7, it should anyway be `clang`. For older versions, it could be `gcc`. + - Android's official `clang` requires `glibc` >= 2.15. +- `ANDROID_ABI`: could be `armeabi-v7a` or `arm64-v8a`. The default value is `armeabi-v7a`. +- `ANDROID_NATIVE_API_LEVEL`: could be derived from the value of `ANDROID_STANDALONE_TOOLCHAIN`. +- `ANROID_ARM_MODE`: + - could be `ON` or `OFF`, and defaults to `ON`, when `ANDROID_ABI=armeabi-v7a`; + - no need to specify when `ANDROID_ABI=arm64-v8a`. +- `ANDROID_ARM_NEON`: indicates if to use NEON instructions. + - could be `ON` or `OFF`, and defaults to `ON`, when `ANDROID_ABI=armeabi-v7a`; + - no need to specify when `ANDROID_ABI=arm64-v8a`. + +Other useful arguments: + +- `USE_EIGEN_FOR_BLAS`: indicates if using Eigen. Could be `ON` or `OFF`, defaults to `OFF`. +- `HOST_C/CXX_COMPILER`: specifies the host compiler, which is used to build the host-specific protoc and target-specific OpenBLAS. It defaults to the value of the environment variable `CC`, or `cc`. + +Some frequent configurations for your reference: + +```bash +cmake -DCMAKE_SYSTEM_NAME=Android \ + -DANDROID_STANDALONE_TOOLCHAIN=your/path/to/arm_standalone_toolchain \ + -DANDROID_ABI=armeabi-v7a \ + -DANDROID_ARM_NEON=ON \ + -DANDROID_ARM_MODE=ON \ + -DUSE_EIGEN_FOR_BLAS=ON \ + -DCMAKE_INSTALL_PREFIX=your/path/to/install \ + -DWITH_C_API=ON \ + -DWITH_SWIG_PY=OFF \ + .. +``` + +``` +cmake -DCMAKE_SYSTEM_NAME=Android \ + -DANDROID_STANDALONE_TOOLCHAIN=your/path/to/arm64_standalone_toolchain \ + -DANDROID_ABI=arm64-v8a \ + -DUSE_EIGEN_FOR_BLAS=OFF \ + -DCMAKE_INSTALL_PREFIX=your/path/to/install \ + -DWITH_C_API=ON \ + -DWITH_SWIG_PY=OFF \ + .. +``` + + +There are some other arguments you might want to configure. + +- `CMAKE_BUILD_TYPE=MinSizeRel` minimizes the size of library. +- `CMAKE_BUILD_TYPE-Release` optimizes the runtime performance. + +Our own tip for performance optimization to use clang and Eigen or OpenBLAS: +- `CMAKE_BUILD_TYPE=Release` +- `ANDROID_TOOLCHAIN=clang` +- `USE_EIGEN_BLAS=ON` for `armeabi-v7a`, or `USE_EIGEN_FOR_BLAS=OFF` for `arm64-v8a`. + +### Build and Install + +After running `cmake`, we can run `make; make install` to build and install. + +Before building, you might want to remove the `third_party` and `build` directories including pre-built libraries for other architectures. + +After building,in the directory `CMAKE_INSTALL_PREFIX`, you will find three sub-directories: + +- `include`: the header file of the inference library, +- `lib`: the inference library built for various Android ABIs, +- `third_party`: dependent third-party libraries built for Android. diff --git a/doc/_sources/mobile/cross_compiling_for_raspberry_en.md.txt b/doc/_sources/mobile/cross_compiling_for_raspberry_en.md.txt new file mode 100644 index 00000000000..3c1a5950ff9 --- /dev/null +++ b/doc/_sources/mobile/cross_compiling_for_raspberry_en.md.txt @@ -0,0 +1,62 @@ +# Build PaddlePaddle for Raspberry Pi + +You may use any of the following two approaches to build the inference library of PaddlePaddle for Raspberry Pi: + +1. Build using SSH: Log in to a Raspberry Pi using SSH and build the library. The required development tools and third-party dependencies are listed in here: [`/Dockerfile`](https://github.com/PaddlePaddle/Paddle/blob/develop/Dockerfile). + +1. Cross-compile: We talk about how to cross-compile PaddlePaddle for Raspberry Pi on a Linux/x64 machine, in more detail in this article. + +## The Cross-Compiling Toolchain + +Step 1. Clone the Github repo by running the following command. + +```bash +git clone https://github.com/raspberrypi/tools.git +``` + +Step 2. Use the pre-built cross-compiler found in `./tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64`. To run it on a Linux computer, glibc version >= 2.14 is needed. + +## CMake Arguments + +CMake supports [cross-compiling](https://cmake.org/cmake/help/v3.0/manual/cmake-toolchains.7.html#cross-compiling). All CMake configuration arguments required for the cross-compilation for Raspberry Pi can be found in [`cmake/cross_compiling/raspberry_pi.cmake`](https://github.com/PaddlePaddle/Paddle/blob/develop/cmake/cross_compiling/raspberry_pi.cmake). + +Some important arguments that need to be set: + +- `CMAKE_SYSTEM_NAME`: The target platform. Must be `RPi`. + +- `RPI_TOOLCHAIN`: The absolute path of the cross-compiling toolchain. + +- `RPI_ARM_NEON`: Use ARM NEON Intrinsics. This is a required argument and set default to `ON`. + +- `HOST_C/CXX_COMPILER`: The C/C++ compiler for the host. It is used to build building tools running on the host, for example, protoc. + +A commonly-used CMake configuration is as follows: + +``` +cmake -DCMAKE_SYSTEM_NAME=RPi \ + -DRPI_TOOLCHAIN=your/path/to/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64 \ + -DRPI_ARM_NEON=ON \ + -DCMAKE_INSTALL_PREFIX=your/path/to/install \ + -DWITH_GPU=OFF \ + -DWITH_C_API=ON \ + -DWITH_PYTHON=OFF \ + -DWITH_SWIG_PY=OFF \ + .. +``` + +To build the inference library, please set the argument WITH\_C\_API to ON: `WITH_C_API=ON`. + +You can add more arguments. For example, to minimize the size of the generated inference library, you may use `CMAKE_BUILD_TYPE=MinSizeRel`. For performance optimization, you may use `CMAKE_BUILD_TYPE=Release`. + +## Build and Install + +The following commands build the inference library of PaddlePaddle for Raspberry Pi and third-party dependencies. + +```bash +make +make install +``` + + The intermediate files will be stored in `build`. Third-party libraries will be located in `build/third_party`. If you have already built it for other platforms like Android or iOS, you may want to clear these directories by running the command: `rm -rf build`. + +The infernece library will be in `your/path/to/install/lib`, with related header files in `your/path/to/install/include`. diff --git a/doc/_sources/mobile/index_en.rst.txt b/doc/_sources/mobile/index_en.rst.txt new file mode 100644 index 00000000000..3c08d736717 --- /dev/null +++ b/doc/_sources/mobile/index_en.rst.txt @@ -0,0 +1,8 @@ +MOBILE +====== + +.. toctree:: + :maxdepth: 1 + + cross_compiling_for_android_en.md + cross_compiling_for_raspberry_en.md diff --git a/doc/_sources/survey/cluster_bootstrapping_tools.md.txt b/doc/_sources/survey/cluster_bootstrapping_tools.md.txt new file mode 100644 index 00000000000..1cd9962700b --- /dev/null +++ b/doc/_sources/survey/cluster_bootstrapping_tools.md.txt @@ -0,0 +1,71 @@ +# Cluster bootstrapping tool survey +## Abstract +In order to bring up a cluster from bare metal machine to a fully functional kubernetes cluster for Paddlepaddle to run, we need to utilize some tools. Here we are going to compare [Sextant](https://github.com/k8sp/sextant) and [Tectonic installer](https://github.com/coreos/tectonic-installer) + +## Basic assumptions +Here are some basic assumptions before we move on to details +1. You are an administrator of a bare metal machine cluster, which means: + * you have full control to each of the machines. + * you have full control to the network which machines are connected to. +2. Machines can be booted from network with PEX or iPXE +3. You understand the [general procedure to bring up a cluster](#appendix-general-procedure-to-bring-up-a-cluster) + +if your cluster is able to mark above items with checkmarks, then keep reading. + +## Comparing Sextant and Tectonic installer +### Sextant +Sextant is an end2end solution to bring up a bare metal cluster to a fully functional k8s cluster, it integrates DHCP, name service, PEX, cloud-config-service, docker registry services altogether. + +#### Pros +1. End2End: basically all admin need to do is to config the cluster.yaml and power on the cluster. +2. Offline cluster configuration: Sextant has 2 phases during working with it, config time and deploy time. when admin is configuring, it requires admin's machine has internet connectivity, which will download some images, etc. But in deploy time, it's completely OK to go offline since all dependencies are ready during config time. +3. docker registry integrated. +4. GPU machine took care of. + +### Cons +1. k8s API server is not deployed with high availability in considering by default. +2. No grouping support. +3. No API interface, a one-off service. + + +### Tectonic installer +First of all, Tectonic is not free, it requires coreos.com account as a step of installation, and free user can only create less than 10 nodes. + +Tectonic is a suite of software which wraps around k8s and providing more utility regarding dev ops, ie, +Tectonic installer as it's named, it installs Tectonic to a bare metal cluster which means it's not totally an equivalent of Sextant. At the "booting a cluster" part, it mostly utilizes [Matchbox](https://github.com/coreos/matchbox), which is a general cluster bootstrapper. + +Matchbox's Approach is similar to Sexstant. + +### Pros +1. supports grouping machines. +2. supports running provisioning service in rtk. (not a big deal though). +3. supports http/gRPC API interface. +4. supports multi-template. + +### Cons +1. Not an e2e solution to bring up a cluster, need a lot of extra work and other software. +2. [Not fully supporting](https://github.com/coreos/matchbox/issues/550) centOS deployment yet. + +## Conclusion +Sextant is a better solution overall for paddle cloud deploying to a bare metal cluster. It would be great if Sextant can also 1) deploy k8s api server with high availability by default; 2) not designed as a one-off service. + + + +## Appendix: General procedure to bring up a cluster +It's physically impossible for a cluster admin to manually install OS and applications into cluster nodes one by one, here is what an admin would do in cloud industry: +1. setup a bootstrap machine with static IP in the cluster, which has following services: + * DHCP: assigns ip address for rest of the nodes. + * name service: to map node name to a IP + * PXE related services: the booting related info will be delivered to newly booted machines as their IP is assigned via DHCP service, PXE service will provide further booting and installing info and image with TFTP and http protocol. + * cluster config service: this is for providing cluster node with OS config via http + * optional docker registry: a built-in docker registry makes the whole cluster independent from connecting internet, and speeds up software distribution. +2. New node powers on, it will + * broadcast the request for an IP address + * DHCP server assigns the IP address, and deliver the PXE booting related info to the node. + * cluster node will request config files with booting info delivered with DHCP via the TFTP service, and in most of the cases, the config file will point to a http service for the booting image. + * Since PXE is configured with initrd, it will utilize the cloud config service and do further installations like coreOS or K8s installations. + * then restart the node. + +For further understanding, following 2 links from Matchbox are some good readings: +* [Machine lifecycle](https://github.com/coreos/matchbox/blob/master/Documentation/machine-lifecycle.md) +* [PXE booting](https://github.com/coreos/matchbox/blob/master/Documentation/network-booting.md) diff --git a/doc/_sources/tutorials/image_classification/index_en.md.txt b/doc/_sources/tutorials/image_classification/index_en.md.txt deleted file mode 100644 index 60c81a6a539..00000000000 --- a/doc/_sources/tutorials/image_classification/index_en.md.txt +++ /dev/null @@ -1,221 +0,0 @@ -Image Classification Tutorial -============================== - -This tutorial will guide you through training a convolutional neural network to classify objects using the CIFAR-10 image classification dataset. -As shown in the following figure, the convolutional neural network can recognize the main object in images, and output the classification result. - -
![Image Classification](./image_classification.png)
- -## Data Preparation -First, download CIFAR-10 dataset. CIFAR-10 dataset can be downloaded from its official website. - - - -We have prepared a script to download and process CIFAR-10 dataset. The script will download CIFAR-10 dataset from the official dataset. -It will convert it to jpeg images and organize them into a directory with the required structure for the tutorial. Make sure that you have installed pillow and its dependents. -Consider the following commands: - -1. install pillow dependents - -```bash -sudo apt-get install libjpeg-dev -pip install pillow -``` - -2. download data and preparation - -```bash -cd demo/image_classification/data/ -sh download_cifar.sh -``` - -The CIFAR-10 dataset consists of 60000 32x32 color images in 10 classes, with 6000 images per class. There are 50000 training images and 10000 test images. - -Here are the classes in the dataset, as well as 10 random images from each: -
![Image Classification](./cifar.png)
- - -After downloading and converting, we should find a directory (cifar-out) containing the dataset in the following format: - -``` -train ----airplane ----automobile ----bird ----cat ----deer ----dog ----frog ----horse ----ship ----truck -test ----airplane ----automobile ----bird ----cat ----deer ----dog ----frog ----horse ----ship ----truck -``` - -It has two directories:`train` and `test`. These two directories contain training data and testing data of CIFAR-10, respectively. Each of these two folders contains 10 sub-folders, ranging from `airplane` to `truck`. Each sub-folder contains images with the corresponding label. After the images are organized into this structure, we are ready to train an image classification model. - -## Preprocess -After the data has been downloaded, it needs to be pre-processed into the Paddle format. We can run the following command for preprocessing. - -``` -cd demo/image_classification/ -sh preprocess.sh -``` - -`preprocess.sh` calls `./demo/image_classification/preprocess.py` to preprocess image data. -```sh -export PYTHONPATH=$PYTHONPATH:../../ -data_dir=./data/cifar-out -python preprocess.py -i $data_dir -s 32 -c 1 -``` - -`./demo/image_classification/preprocess.py` has the following arguments - -- `-i` or `--input` specifes the input data directory. -- `-s` or `--size` specifies the processed size of images. -- `-c` or `--color` specifes whether images are color images or gray images. - - -## Model Training -We need to create a model config file before training the model. An example of the config file (vgg_16_cifar.py) is listed below. **Note**, it is slightly different from the `vgg_16_cifar.py` which also applies to the prediction. - -```python -from paddle.trainer_config_helpers import * -data_dir='data/cifar-out/batches/' -meta_path=data_dir+'batches.meta' -args = {'meta':meta_path, 'mean_img_size': 32, - 'img_size': 32, 'num_classes': 10, - 'use_jpeg': 1, 'color': "color"} -define_py_data_sources2(train_list=data_dir+"train.list", - test_list=data_dir+'test.list', - module='image_provider', - obj='processData', - args=args) -settings( - batch_size = 128, - learning_rate = 0.1 / 128.0, - learning_method = MomentumOptimizer(0.9), - regularization = L2Regularization(0.0005 * 128)) - -img = data_layer(name='image', size=3*32*32) -lbl = data_layer(name="label", size=10) -# small_vgg is predined in trainer_config_helpers.network -predict = small_vgg(input_image=img, num_channels=3) -outputs(classification_cost(input=predict, label=lbl)) -``` - -The first line imports python functions for defining networks. -```python -from paddle.trainer_config_helpers import * -``` - -Then define an `define_py_data_sources2` which use python data provider -interface. The arguments in `args` are used in `image_provider.py` which -yeilds image data and transform them to Paddle. - - `meta`: the mean value of training set. - - `mean_img_size`: the size of mean feature map. - - `img_size`: the height and width of input image. - - `num_classes`: the number of classes. - - `use_jpeg`: the data storage type when preprocessing. - - `color`: specify color image. - -`settings` specifies the training algorithm. In the following example, -it specifies learning rate as 0.1, but divided by batch size, and the weight decay -is 0.0005 and multiplied by batch size. -```python -settings( - batch_size = 128, - learning_rate = 0.1 / 128.0, - learning_method = MomentumOptimizer(0.9), - regularization = L2Regularization(0.0005 * 128) -) -``` - -The `small_vgg` specifies the network. We use a small version of VGG convolutional network as our network -for classification. A description of VGG network can be found here [http://www.robots.ox.ac.uk/~vgg/research/very_deep/](http://www.robots.ox.ac.uk/~vgg/research/very_deep/). -```python -# small_vgg is predined in trainer_config_helpers.network -predict = small_vgg(input_image=img, num_channels=3) -``` -After writing the config, we can train the model by running the script train.sh. - -```bash -config=vgg_16_cifar.py -output=./cifar_vgg_model -log=train.log - -paddle train \ ---config=$config \ ---dot_period=10 \ ---log_period=100 \ ---test_all_data_in_one_period=1 \ ---use_gpu=1 \ ---save_dir=$output \ -2>&1 | tee $log - -python -m paddle.utils.plotcurve -i $log > plot.png -``` - -- Here we use GPU mode to train. If you have no gpu environment, just set `use_gpu=0`. - -- `./demo/image_classification/vgg_16_cifar.py` is the network and data configuration file. The meaning of the other flags can be found in the documentation of the command line flags. - -- The script `plotcurve.py` requires the python module of `matplotlib`, so if it fails, maybe you need to install `matplotlib`. - - -After training finishes, the training and testing error curves will be saved to `plot.png` using `plotcurve.py` script. An example of the plot is shown below: - -
![Training and testing curves.](./plot.png)
- - -## Prediction -After we train the model, the model file as well as the model parameters are stored in path `./cifar_vgg_model/pass-%05d`. For example, the model of the 300-th pass is stored at `./cifar_vgg_model/pass-00299`. - -To make a prediction for an image, one can run `predict.sh` as follows. The script will output the label of the classfiication. - -``` -sh predict.sh -``` - -predict.sh: -``` -model=cifar_vgg_model/pass-00299/ -image=data/cifar-out/test/airplane/seaplane_s_000978.png -use_gpu=1 -python prediction.py $model $image $use_gpu -``` - -## Exercise -Train a image classification of birds using VGG model and CUB-200 dataset. The birds dataset can be downloaded here. It contains an image dataset with photos of 200 bird species (mostly North American). - - - - - - -## Delve into Details -### Convolutional Neural Network -A Convolutional Neural Network is a feedforward neural network that uses convolution layers. It is very suitable for building neural networks that process and understand images. A standard convolutional neural network is shown below: - -![Convolutional Neural Network](./lenet.png) - -Convolutional Neural Network contains the following layers: - -- Convolutional layer: It uses convolution operation to extract features from an image or a feature map. -- Pooling layer: It uses max-pooling to downsample feature maps. -- Fully Connected layer: It uses fully connected connections to transform features. - -Convolutional Neural Network achieves amazing performance for image classification because it exploits two important characteristics of images: *local correlation* and *spatial invariance*. By iteratively applying convolution and max-pooing operations, convolutional neural network can well represent these two characteristics of images. - - -For more details of how to define layers and their connections, please refer to the documentation of layers. diff --git a/doc/_sources/tutorials/index_en.md.txt b/doc/_sources/tutorials/index_en.md.txt deleted file mode 100644 index 77331a703b6..00000000000 --- a/doc/_sources/tutorials/index_en.md.txt +++ /dev/null @@ -1,14 +0,0 @@ -# TUTORIALS -There are several examples and demos here. - -* [Quick Start](quick_start/index_en.md) -* [MovieLens Regression](rec/ml_regression_en.rst) -* [Image Classification](image_classification/index_en.md) -* [Sentiment Analysis](sentiment_analysis/index_en.md) -* [Semantic Role Labeling](semantic_role_labeling/index_en.md) -* [Text Generation](text_generation/index_en.md) -* [Image Auto-Generation](gan/index_en.md) - -## Model Zoo -* [ImageNet: ResNet](imagenet_model/resnet_model_en.md) -* [Embedding: Chinese Word](embedding_model/index_en.md) diff --git a/doc/_sources/tutorials/rec/ml_dataset_en.md.txt b/doc/_sources/tutorials/rec/ml_dataset_en.md.txt deleted file mode 100644 index 25dea5c4afb..00000000000 --- a/doc/_sources/tutorials/rec/ml_dataset_en.md.txt +++ /dev/null @@ -1,111 +0,0 @@ -```eval_rst -.. _demo_ml_dataset: -``` - -# MovieLens Dataset - -The [MovieLens Dataset](http://grouplens.org/datasets/movielens/) was collected by GroupLens Research. -The data set contains some user information, movie information, and many movie ratings from \[1-5\]. -The data sets have many version depending on the size of set. -We use [MovieLens 1M Dataset](http://files.grouplens.org/datasets/movielens/ml-1m.zip) as a demo dataset, which contains -1 million ratings from 6000 users on 4000 movies. Released 2/2003. - -## Dataset Features - -In [ml-1m Dataset](http://files.grouplens.org/datasets/movielens/ml-1m.zip), there are many features in these dataset. -The data files (which have ".dat" extension) in [ml-1m Dataset](http://files.grouplens.org/datasets/movielens/ml-1m.zip) -is basically CSV file that delimiter is "::". The description in README we quote here. - -### RATINGS FILE DESCRIPTION(ratings.dat) - - -All ratings are contained in the file "ratings.dat" and are in the -following format: - -UserID::MovieID::Rating::Timestamp - -- UserIDs range between 1 and 6040 -- MovieIDs range between 1 and 3952 -- Ratings are made on a 5-star scale (whole-star ratings only) -- Timestamp is represented in seconds since the epoch as returned by time(2) -- Each user has at least 20 ratings - -### USERS FILE DESCRIPTION(users.dat) - -User information is in the file "users.dat" and is in the following -format: - -UserID::Gender::Age::Occupation::Zip-code - -All demographic information is provided voluntarily by the users and is -not checked for accuracy. Only users who have provided some demographic -information are included in this data set. - -- Gender is denoted by a "M" for male and "F" for female -- Age is chosen from the following ranges: - - * 1: "Under 18" - * 18: "18-24" - * 25: "25-34" - * 35: "35-44" - * 45: "45-49" - * 50: "50-55" - * 56: "56+" - -- Occupation is chosen from the following choices: - - * 0: "other" or not specified - * 1: "academic/educator" - * 2: "artist" - * 3: "clerical/admin" - * 4: "college/grad student" - * 5: "customer service" - * 6: "doctor/health care" - * 7: "executive/managerial" - * 8: "farmer" - * 9: "homemaker" - * 10: "K-12 student" - * 11: "lawyer" - * 12: "programmer" - * 13: "retired" - * 14: "sales/marketing" - * 15: "scientist" - * 16: "self-employed" - * 17: "technician/engineer" - * 18: "tradesman/craftsman" - * 19: "unemployed" - * 20: "writer" - -### MOVIES FILE DESCRIPTION(movies.dat) - -Movie information is in the file "movies.dat" and is in the following -format: - -MovieID::Title::Genres - -- Titles are identical to titles provided by the IMDB (including -year of release) -- Genres are pipe-separated and are selected from the following genres: - - * Action - * Adventure - * Animation - * Children's - * Comedy - * Crime - * Documentary - * Drama - * Fantasy - * Film-Noir - * Horror - * Musical - * Mystery - * Romance - * Sci-Fi - * Thriller - * War - * Western - -- Some MovieIDs do not correspond to a movie due to accidental duplicate -entries and/or test entries -- Movies are mostly entered by hand, so errors and inconsistencies may exist diff --git a/doc/_sources/tutorials/rec/ml_regression_en.rst.txt b/doc/_sources/tutorials/rec/ml_regression_en.rst.txt deleted file mode 100644 index 993b9a516f1..00000000000 --- a/doc/_sources/tutorials/rec/ml_regression_en.rst.txt +++ /dev/null @@ -1,348 +0,0 @@ -Regression MovieLens Ratting -============================ - -Here we demonstrate a **Cosine Similarity Regression** job in movie lens dataset. -This demo will show how paddle does (word) embedding job, -handles the similarity regression, -the character-level convolutional networks for text, and how does paddle handle -multiple types of inputs. -Note that the model structure is not fine-tuned and just a demo to show how paddle works. - - -YOU ARE WELCOME TO BUILD A BETTER DEMO -BY USING PADDLEPADDLE, AND LET US KNOW TO MAKE THIS DEMO BETTER. - -Data Preparation -```````````````` -Download and extract dataset -'''''''''''''''''''''''''''' -We use :ref:`demo_ml_dataset` here. -To download and unzip the dataset, simply run the following commands. - -.. code-block:: bash - - cd demo/recommendation/data - ./ml_data.sh - -And the directory structure of :code:`demo/recommendation/data/ml-1m` is: - -.. code-block:: text - - +--ml-1m - +--- movies.dat # movie features - +--- ratings.dat # ratings - +--- users.dat # user features - +--- README # dataset description - -Field config file -''''''''''''''''' -**Field config file** is used to specify the fields of the dataset and the file format, -i.e, specific **WHAT** type it is in each feature file. - -The field config file of ml-1m shows in :code:`demo/recommendation/data/config.json`. -It specifics the field types and file names: 1) there are four types of field for user file\: id, gender, age and occupation; -2) the filename is "users.dat", and the delimiter of file is "::". - -.. include:: ../../../demo/recommendation/data/config.json - :code: json - :literal: - -Preprocess Data -``````````````` -You need to install python 3rd party libraries. -IT IS HIGHLY RECOMMEND TO USE VIRTUALENV MAKE A CLEAN PYTHON ENVIRONMENT. - -.. code-block:: bash - - pip install -r requirements.txt - -The general command for preprocessing the dataset is: - -.. code-block:: bash - - cd demo/recommendation - ./preprocess.sh - -And the detail steps are introduced as follows. - -Extract Movie/User features to python object -''''''''''''''''''''''''''''''''''''''''''''' - -There are many features in movie or user in movielens 1m dataset. -Each line of rating file just provides a Movie/User id to refer each movie or user. -We process the movie/user feature file first, and pickle the feature (**Meta**) object as a file. - -Meta config file -................ - -**Meta config file** is used to specific **HOW** to parse each field in dataset. -It could be translated from field config file, or written by hand. -Its file format could be either json or yaml syntax file. Parser will automatically choose the file format by extension name. - -To convert Field config file to meta config file, just run: - -.. code-block:: bash - - cd demo/recommendation/data - python config_generator.py config.json > meta_config.json - -The meta config file shows below: - -.. include:: ../../../demo/recommendation/data/meta_config.json - :code: json - :literal: - -There are two kinds of features in meta\: movie and user. - -* in movie file, whose name is movies.dat - * we just split each line by "::" - * pos 0 is id. - * pos 1 feature: - * name is title. - * it uses regex to parse this feature. - * it is a char based word embedding feature. - * it is a sequence. - * pos 2 feature: - * name is genres. - * type is one hot dense vector. - * dictionary is auto generated by parsing, each key is split by '|' -* in user file, whose name is users.dat - * we just split each line by "::" - * pos 0 is id. - * pos 1 feature: - * name is gender - * just simple char based embedding. - * pos 2 feature: - * name is age - * just whole word embedding. - * embedding id will be sort by word. - * pos 3 feature: - * name is occupation. - * just simple whole word embedding. - - -Meta file -''''''''' - -After having meta config file, we can generate **Meta file**, a python pickle object which stores movie/user information. -The following commands could be run to generate it. - -.. code-block:: bash - - python meta_generator.py ml-1m meta.bin --config=meta_config.json - -And the structure of the meta file :code:`meta.bin` is: - -.. code-block:: text - - +--+ movie - | +--+ __meta__ - | | +--+ raw_meta # each feature meta config. list - | | | + - | | | | # ID Field, we use id as key - | | | +--+ {'count': 3883, 'max': 3952, 'is_key': True, 'type': 'id', 'min': 1} - | | | | - | | | | # Titile field, the dictionary list of embedding. - | | | +--+ {'dict': [ ... ], 'type': 'embedding', 'name': 'title', 'seq': 'sequence'} - | | | | - | | | | # Genres field, the genres dictionary - | | | +--+ {'dict': [ ... ], 'type': 'one_hot_dense', 'name': 'genres'} - | | | - | | +--+ feature_map [1, 2] # a list for raw_meta index for feature field. - | | # it means there are 2 features for each key. - | | # * 0 offset of feature is raw_meta[1], Title. - | | # * 1 offset of feature is raw_meta[2], Genres. - | | - | +--+ 1 # movie 1 features - | | + - | | +---+ [[...], [...]] # title ids, genres dense vector - | | - | +--+ 2 - | | - | +--+ ... - | - +--- user - +--+ __meta__ - | + - | +--+ raw_meta - | | + - | | +--+ id field as user - | | | - | | +--+ {'dict': ['F', 'M'], 'type': 'embedding', 'name': 'gender', 'seq': 'no_sequence'} - | | | - | | +--+ {'dict': ['1', '18', '25', '35', '45', '50', '56'], 'type': 'embedding', 'name': 'age', 'seq': 'no_sequence'} - | | | - | | +--+ {'dict': [...], 'type': 'embedding', 'name': 'occupation', 'seq': 'no_sequence'} - | | - | +--+ feature_map [1, 2, 3] - | - +--+ 1 # user 1 features - | - +--+ 2 - +--+ ... - - -Split Training/Testing files -'''''''''''''''''''''''''''' - -We split :code:`ml-1m/ratings.dat` into a training and testing file. The way to split file is for each user, we split the -rating by two parts. So each user in testing file will have some rating information in training file. - -Use :code:`separate.py` to separate the training and testing file. - -.. code-block:: bash - - python split.py ml-1m/ratings.dat --delimiter="::" --test_ratio=0.1 - -Then two files will be generated\: :code:`ml-1m/ratings.dat.train` and :code:`ml-1m/rating.data.test`. -Move them to workspace :code:`data`, shuffle the train file, and prepare the file list for paddle train. - -.. code-block:: bash - - shuf ml-1m/ratings.dat.train > ratings.dat.train - cp ml-1m/ratings.dat.test . - echo "./data/ratings.dat.train" > train.list - echo "./data/ratings.dat.test" > test.list - - -Neural Network Configuration -```````````````````````````` - -Trainer Config File -''''''''''''''''''' - -The network structure shows below. - -.. image:: rec_regression_network.png - :align: center - :alt: rec_regression_network - -The demo's neural network config file :code:`trainer_config.py` show as below. - -.. literalinclude:: ../../../demo/recommendation/trainer_config.py - :language: python - :lines: 15- - -In this :code:`trainer_config.py`, we just map each feature type to -a feature vector, following shows how to map each feature to a vector shows below. - -* :code:`id`\: Just simple embedding, and then add to fully connected layer. -* :code:`embedding`\: - - if is_sequence, get the embedding and do a text convolutional operation, - get the average pooling result. - - if not sequence, get the embedding and add to fully connected layer. -* :code:`one_host_dense`\: - - just two fully connected layer. - -Then we combine each features of movie into one movie feature by a -:code:`fc_layer` with multiple inputs, and do the same thing to user features, -get one user feature. Then we calculate the cosine similarity of these two -features. - -In these networks, we use several APIs in :ref:`api_trainer_config` . There are - -* Data Layer, :ref:`api_trainer_config_helpers_layers_data_layer` -* Fully Connected Layer, :ref:`api_trainer_config_helpers_layers_fc_layer` -* Embedding Layer, :ref:`api_trainer_config_helpers_layers_embedding_layer` -* Context Projection Layer, :ref:`api_trainer_config_helpers_layers_context_projection` -* Pooling Layer, :ref:`api_trainer_config_helpers_layers_pooling_layer` -* Cosine Similarity Layer, :ref:`api_trainer_config_helpers_layers_cos_sim` -* Text Convolution Pooling Layer, :ref:`api_trainer_config_helpers_network_text_conv_pool` -* Declare Python Data Sources :ref:`api_trainer_config_helpers_data_sources`. - -Data Provider -''''''''''''' - -.. literalinclude:: ../../../demo/recommendation/dataprovider.py - :language: python - :lines: 15- - -The data provider just read the meta.bin and rating file, yield each sample for training. -In this :code:`dataprovider.py`, we should set\: - -* obj.slots\: The feature types and dimension. -* use_seq\: Whether this :code:`dataprovider.py` in sequence mode or not. -* process\: Return each sample of data to :code:`paddle`. - -The data provider details document see :ref:`api_pydataprovider2`. - -Train -````` - -After prepare data, config network, writting data provider, now we can run paddle training. - -The :code:`run.sh` is shown as follow: - -.. literalinclude:: ../../../demo/recommendation/run.sh - :language: bash - :lines: 16- - -It just start a paddle training process, write the log to :code:`log.txt`, -then print it on screen. - -Each command line argument in :code:`run.sh`, please refer to the :ref:`cmd_line_index` page. The short description of these arguments is shown as follow. - -* config\: Tell paddle which file is neural network configuration. -* save_dir\: Tell paddle save model into :code:`./output`. -* use_gpu\: Use gpu or not. Default is false. -* trainer_count\: The compute thread in one machine. -* test_all_data_in_one_period\: Test All Data during one test period. Otherwise, - will test a :code:`batch_size` data in one test period. -* log_period\: Print log after train :code:`log_period` batches. -* dot_period\: Print a :code:`.` after train :code:`dot_period` batches. -* num_passes\: Train at most :code:`num_passes`. - -If training process starts successfully, the output likes follow: - -.. code-block:: text - - I0601 08:07:22.832059 10549 TrainerInternal.cpp:157] Batch=100 samples=160000 AvgCost=4.13494 CurrentCost=4.13494 Eval: CurrentEval: - - I0601 08:07:50.672627 10549 TrainerInternal.cpp:157] Batch=200 samples=320000 AvgCost=3.80957 CurrentCost=3.48421 Eval: CurrentEval: - - I0601 08:08:18.877369 10549 TrainerInternal.cpp:157] Batch=300 samples=480000 AvgCost=3.68145 CurrentCost=3.42519 Eval: CurrentEval: - - I0601 08:08:46.863963 10549 TrainerInternal.cpp:157] Batch=400 samples=640000 AvgCost=3.6007 CurrentCost=3.35847 Eval: CurrentEval: - - I0601 08:09:15.413025 10549 TrainerInternal.cpp:157] Batch=500 samples=800000 AvgCost=3.54811 CurrentCost=3.33773 Eval: CurrentEval: - I0601 08:09:36.058670 10549 TrainerInternal.cpp:181] Pass=0 Batch=565 samples=902826 AvgCost=3.52368 Eval: - I0601 08:09:46.215489 10549 Tester.cpp:101] Test samples=97383 cost=3.32155 Eval: - I0601 08:09:46.215966 10549 GradientMachine.cpp:132] Saving parameters to ./output/model/pass-00000 - I0601 08:09:46.233397 10549 ParamUtil.cpp:99] save dir ./output/model/pass-00000 - I0601 08:09:46.233438 10549 Util.cpp:209] copy trainer_config.py to ./output/model/pass-00000 - I0601 08:09:46.233541 10549 ParamUtil.cpp:147] fileName trainer_config.py - -The model is saved in :code:`output/` directory. You can use :code:`Ctrl-C` to stop training whenever you want. - -Evaluate and Predict -```````````````````` - -After training several passes, you can evaluate them and get the best pass. Just run - -.. code-block:: bash - - ./evaluate.sh - -You will see messages like this: - -.. code-block:: text - - Best pass is 00009, error is 3.06949, which means predict get error as 0.875998002281 - evaluating from pass output/pass-00009 - -Then, you can predict what any user will rate a movie. Just run - -.. code-block:: bash - - python prediction.py 'output/pass-00009/' - -Predictor will read user input, and predict scores. It has a command-line user interface as follows: - -.. code-block:: text - - Input movie_id: 9 - Input user_id: 4 - Prediction Score is 2.56 - Input movie_id: 8 - Input user_id: 2 - Prediction Score is 3.13 diff --git a/doc/_sources/tutorials/semantic_role_labeling/index_en.md.txt b/doc/_sources/tutorials/semantic_role_labeling/index_en.md.txt deleted file mode 100644 index 92d7c634832..00000000000 --- a/doc/_sources/tutorials/semantic_role_labeling/index_en.md.txt +++ /dev/null @@ -1,204 +0,0 @@ -```eval_rst -.. _semantic_role_labeling: -``` - -# Semantic Role labeling Tutorial # - -Semantic role labeling (SRL) is a form of shallow semantic parsing whose goal is to discover the predicate-argument structure of each predicate in a given input sentence. SRL is useful as an intermediate step in a wide range of natural language processing tasks, such as information extraction. automatic document categorization and question answering. An instance is as following [1]: - - [ A0 He ] [ AM-MOD would ][ AM-NEG n’t ] [ V accept] [ A1 anything of value ] from [A2 those he was writing about ]. - -- V: verb -- A0: acceptor -- A1: thing accepted -- A2: accepted-from -- A3: Attribute -- AM-MOD: modal -- AM-NEG: negation - -Given the verb "accept", the chunks in sentence would play certain semantic roles. Here, the label scheme is from Penn Proposition Bank. - -To this date, most of the successful SRL systems are built on top of some form of parsing results where pre-defined feature templates over the syntactic structure are used. This tutorial will present an end-to-end system using deep bidirectional long short-term memory (DB-LSTM)[2] for solving the SRL task, which largely outperforms the previous state-of-the-art systems. The system regards SRL task as the sequence labelling problem. - -## Data Description -The relevant paper[2] takes the data set in CoNLL-2005&2012 Shared Task for training and testing. Accordingto data license, the demo adopts the test data set of CoNLL-2005, which can be reached on website. - -To download and process the original data, user just need to execute the following command: - -```bash -cd data -./get_data.sh -``` -Several new files appear in the `data `directory as follows. -```bash -conll05st-release:the test data set of CoNll-2005 shared task -test.wsj.words:the Wall Street Journal data sentences -test.wsj.props: the propositional arguments -feature: the extracted features from data set -``` - -## Training -### DB-LSTM -Please refer to the Sentiment Analysis demo to learn more about the long short-term memory unit. - -Unlike Bidirectional-LSTM that used in Sentiment Analysis demo, the DB-LSTM adopts another way to stack LSTM layer. First a standard LSTM processes the sequence in forward direction. The input and output of this LSTM layer are taken by the next LSTM layer as input, processed in reversed direction. These two standard LSTM layers compose a pair of LSTM. Then we stack LSTM layers pair after pair to obtain the deep LSTM model. - -The following figure shows a temporal expanded 2-layer DB-LSTM network. -
-![pic](./src/network_arch.png) -
- -### Features -Two input features play an essential role in this pipeline: predicate (pred) and argument (argu). Two other features: predicate context (ctx-p) and region mark (mr) are also adopted. Because a single predicate word can not exactly describe the predicate information, especially when the same words appear more than one times in a sentence. With the predicate context, the ambiguity can be largely eliminated. Similarly, we use region mark mr = 1 to denote the argument position if it locates in the predicate context region, or mr = 0 if does not. These four simple features are all we need for our SRL system. Features of one sample with context size set to 1 is showed as following[2]: -
-![pic](./src/feature.jpg) -
- -In this sample, the coresponding labelled sentence is: - -[ A1 A record date ] has [ AM-NEG n't ] been [ V set ] . - -In the demo, we adopt the feature template as above, consists of : `argument`, `predicate`, `ctx-p (p=-1,0,1)`, `mark` and use `B/I/O` scheme to label each argument. These features and labels are stored in `feature` file, and separated by `\t`. - -### Data Provider - -`dataprovider.py` is the python file to wrap data. `hook()` function is to define the data slots for network. The Six features and label are all IndexSlots. -``` -def hook(settings, word_dict, label_dict, **kwargs): - settings.word_dict = word_dict - settings.label_dict = label_dict - #all inputs are integral and sequential type - settings.slots = [ - integer_value_sequence(len(word_dict)), - integer_value_sequence(len(predicate_dict)), - integer_value_sequence(len(word_dict)), - integer_value_sequence(len(word_dict)), - integer_value_sequence(len(word_dict)), - integer_value_sequence(len(word_dict)), - integer_value_sequence(len(word_dict)), - integer_value_sequence(2), - integer_value_sequence(len(label_dict))] -``` -The corresponding data iterator is as following: -``` -@provider(init_hook=hook, should_shuffle=True, calc_batch_size=get_batch_size, - can_over_batch_size=False, cache=CacheType.CACHE_PASS_IN_MEM) -def process(settings, file_name): - with open(file_name, 'r') as fdata: - for line in fdata: - sentence, predicate, ctx_n2, ctx_n1, ctx_0, ctx_p1, ctx_p2, mark, label = \ - line.strip().split('\t') - - words = sentence.split() - sen_len = len(words) - word_slot = [settings.word_dict.get(w, UNK_IDX) for w in words] - - predicate_slot = [settings.predicate_dict.get(predicate)] * sen_len - ctx_n2_slot = [settings.word_dict.get(ctx_n2, UNK_IDX)] * sen_len - ctx_n1_slot = [settings.word_dict.get(ctx_n1, UNK_IDX)] * sen_len - ctx_0_slot = [settings.word_dict.get(ctx_0, UNK_IDX)] * sen_len - ctx_p1_slot = [settings.word_dict.get(ctx_p1, UNK_IDX)] * sen_len - ctx_p2_slot = [settings.word_dict.get(ctx_p2, UNK_IDX)] * sen_len - - marks = mark.split() - mark_slot = [int(w) for w in marks] - - label_list = label.split() - label_slot = [settings.label_dict.get(w) for w in label_list] - yield word_slot, predicate_slot, ctx_n2_slot, ctx_n1_slot, \ - ctx_0_slot, ctx_p1_slot, ctx_p2_slot, mark_slot, label_slot -``` -The `process`function yield 9 lists which are 8 features and label. - -### Neural Network Config -`db_lstm.py` is the neural network config file to load the dictionaries and define the data provider module and network architecture during the training procedure. - -Nine `data_layer` load instances from data provider. Eight features are transformed into embedddings respectively, and mixed by `mixed_layer` . Deep bidirectional LSTM layers extract features for the softmax layer. The objective function is cross entropy of labels. - -### Run Training -The script for training is `train.sh`, user just need to execute: -```bash - ./train.sh -``` -The content in `train.sh`: -``` -paddle train \ - --config=./db_lstm.py \ - --use_gpu=0 \ - --log_period=5000 \ - --trainer_count=1 \ - --show_parameter_stats_period=5000 \ - --save_dir=./output \ - --num_passes=10000 \ - --average_test_period=10000000 \ - --init_model_path=./data \ - --load_missing_parameter_strategy=rand \ - --test_all_data_in_one_period=1 \ -2>&1 | tee 'train.log' -``` - -- \--config=./db_lstm.py : network config file. -- \--use_gpu=false: use CPU to train, set true, if you install GPU version of PaddlePaddle and want to use GPU to train, until now crf_layer do not support GPU -- \--log_period=500: print log every 20 batches. -- \--trainer_count=1: set thread number (or GPU count). -- \--show_parameter_stats_period=5000: show parameter statistic every 100 batches. -- \--save_dir=./output: output path to save models. -- \--num_passes=10000: set pass number, one pass in PaddlePaddle means training all samples in dataset one time. -- \--average_test_period=10000000: do test on average parameter every average_test_period batches -- \--init_model_path=./data: parameter initialization path -- \--load_missing_parameter_strategy=rand: random initialization unexisted parameters -- \--test_all_data_in_one_period=1: test all data in one period - - -After training, the models will be saved in directory `output`. Our training curve is as following: -
-![pic](./src/curve.jpg) -
- -### Run testing -The script for testing is `test.sh`, user just need to execute: -```bash - ./test.sh -``` -The main part in `tesh.sh` -``` -paddle train \ - --config=./db_lstm.py \ - --model_list=$model_list \ - --job=test \ - --config_args=is_test=1 \ -``` - - - \--config=./db_lstm.py: network config file - - \--model_list=$model_list.list: model list file - - \--job=test: indicate the test job - - \--config_args=is_test=1: flag to indicate test - - \--test_all_data_in_one_period=1: test all data in 1 period - - -### Run prediction -The script for prediction is `predict.sh`, user just need to execute: -```bash - ./predict.sh - -``` -In `predict.sh`, user should offer the network config file, model path, label file, word dictionary file, feature file -``` -python predict.py - -c $config_file \ - -w $best_model_path \ - -l $label_file \ - -p $predicate_dict_file \ - -d $dict_file \ - -i $input_file \ - -o $output_file -``` - -`predict.py` is the main executable python script, which includes functions: load model, load data, data prediction. The network model will output the probability distribution of labels. In the demo, we take the label with maximum probability as result. User can also implement the beam search or viterbi decoding upon the probability distribution matrix. - -After prediction, the result is saved in `predict.res`. - -## Reference -[1] Martha Palmer, Dan Gildea, and Paul Kingsbury. The Proposition Bank: An Annotated Corpus of Semantic Roles , Computational Linguistics, 31(1), 2005. - -[2] Zhou, Jie, and Wei Xu. "End-to-end learning of semantic role labeling using recurrent neural networks." Proceedings of the Annual Meeting of the Association for Computational Linguistics. 2015. diff --git a/doc/_sources/tutorials/sentiment_analysis/index_en.md.txt b/doc/_sources/tutorials/sentiment_analysis/index_en.md.txt deleted file mode 100644 index bb7681db44c..00000000000 --- a/doc/_sources/tutorials/sentiment_analysis/index_en.md.txt +++ /dev/null @@ -1,328 +0,0 @@ -# Sentiment Analysis Tutorial - -Sentiment analysis has many applications. A basic task in sentiment analysis is classifying the polarity of a given text at the document, sentence or feature/aspect level. One simple example is to classify the customer reviews in a shopping website, a tourism website, and group buying websites like Amazon, TaoBao, Tmall etc. - -Sentiment analysis is also used to monitor social media based on large amount of reviews or blogs. For example, the researchers analyzed several surveys on consumer confidence and political opinion, found they correlate to sentiment word frequencies in contemporaneous Twitter messages [1]. Another example is to forecast stock movements through analyzing the text content of a daily Twitter blog [2]. - -On the other hand, grabbing the user comments of products and analyzing their sentiment are useful to understand user preferences for companies, products, even competing products. - -This tutorial will guide you through the process of training a Long Short Term Memory (LSTM) Network to classify the sentiment of sentences from [Large Movie Review Dataset](http://ai.stanford.edu/~amaas/data/sentiment/), sometimes known as the Internet Movie Database (IMDB). This dataset contains movie reviews along with their associated binary sentiment polarity labels, namely positive and negative. So randomly guessing yields 50% accuracy. - -## Data Preparation - -### IMDB Data Introduction - -Before training models, we need to preprocess the data and build a dictionary. First, you can use following script to download IMDB dataset and [Moses](http://www.statmt.org/moses/) tool, which is a statistical machine translation system. We provide a data preprocessing script, which is capable of handling not only IMDB data, but also other user-defined data. In order to use the pre-written script, it needs to move labeled train and test samples to another path, which has been done in `get_imdb.sh`. - -``` -cd demo/sentiment/data -./get_imdb.sh -``` -If the data is obtained successfuly, you will see the following files at ```./demo/sentiment/data```: - -``` -aclImdb get_imdb.sh imdb mosesdecoder-master -``` - -* aclImdb: raw dataset downloaded from website. -* imdb: only contains train and test data. -* mosesdecoder-master: Moses tool. - -IMDB dataset contains 25,000 highly polar movie reviews for training, and 25,000 for testing. A negative review has a score ≤ 4 out of 10, and a positive review has a score ≥ 7 out of 10. After running `./get_imdb.sh`, we can find the dataset has the following structure in `aclImdb`. - -``` -imdbEr.txt imdb.vocab README test train -``` -* train: train sets. -* test : test sets. -* imdb.vocab: dictionary. -* imdbEr.txt: expected rating for each token in imdb.vocab. -* README: data documentation. - -The file in train set directory is as follows. The test set also contains them except `unsup` and `urls_unsup.txt`. - -``` -labeledBow.feat neg pos unsup unsupBow.feat urls_neg.txt urls_pos.txt urls_unsup.txt -``` - -* pos: positive samples, contains 12,500 txt files, each file is one movie review. -* neg: negative samples, contains 12,500 txt files, each file is one movie review. -* unsup: unlabeled samples, contains 50,000 txt files. -* urls_xx.txt: urls of each reviews. -* xxBow.feat: already-tokenized bag of words (BoW) features. - -### IMDB Data Preparation - -In this demo, we only use labled train and test set and not use imdb.vocab as dictionary. By default, dictionary is builded on train set. Train set is shuffled and test set is not. `tokenizer.perl` in Moses tool is used to tokenize the words and punctuation. Simply execute the following command to preprcess data. - -``` -cd demo/sentiment/ -./preprocess.sh -``` -preprocess.sh: - -``` -data_dir="./data/imdb" -python preprocess.py -i data_dir -``` - -* data_dir: input data directory. -* preprocess.py: preprocess script. - -If running successfully, you will see `demo/sentiment/data/pre-imdb` directory as follows: - -``` -dict.txt labels.list test.list test_part_000 train.list train_part_000 -``` -* test\_part\_000 and train\_part\_000: all labeled test and train sets. Train sets have be shuffled. -* train.list and test.list: train and test file lists. -* dict.txt: dictionary generated on train sets by default. -* labels.txt: neg 0, pos 1, means label 0 is negative review, label 1 is positive review. - -### User-defined Data Preparation - -If you perform other sentiment classifcation task, you can prepare data as follows. We have provided the scripts to build dictionary and preprocess data. So just organize data as follows. - -``` -dataset -|----train -| |----class1 -| | |----text_files -| |----class2 -| | |----text_files -| | ... -|----test -| |----class1 -| | |----text_files -| |----class2 -| | |----text_files -| | ... -``` -* dataset: 1st directory. -* train, test: 2nd directory. -* class1,class2,...: 3rd directory. -* text_files: samples with text file format. - -All samples with text files format under the same folder are same category. Each text file contains one or more samples and each line is one sample. In order to shuffle fully, the preprocessing is a little different for data with multiple lines in one text file, which needs to set `-m True` in `preprocess.sh`. And tokenizer.perl is used by default. If you don't need it, only set `-t False` in `preprocess.sh'. - -## Training - -In this task, we use Recurrent Neural Network (RNN) of LSTM architecure to train sentiment analysis model. LSTM model was introduced primarily in order to overcome the problem of vanishing gradients. LSTM network resembles a standard recurrent neural network with a hidden layer, but each ordinary node in the hidden layer is replaced by a memory cell. Each memory cell contains four main elements: an input gate, a neuron with a self-recurrent connection, a forget gate and an output gate. More details can be found in the literature [4]. The biggest advantage of the LSTM architecture is that it learns to memorize information over long time intervals without the loss of short time memory. At each time step with a new coming word, historical information stored in the memory block is updated to iteratively learn the sequence representation. - -
![LSTM](./lstm.png)
-
Figure 1. LSTM [3]
- -Sentiment analysis is among the most typical problems in natural language understanding. It aims at predicting the attitude expressed in a sequence. Usually, only some key words, like adjectives and adverbs words, play a major role in predicting the sentiment of sequences or paragraphs. However, some review or comment contexts are very long, such as IMDB dataset. We use LSTM to perform this task for its improved design with the gate mechanism. First, it is able to summarize the representation from word level to context level with variable context length which is adapted by the gate values. Second, it can utilize the expanded context at the sentence level, while most methods are good at utilizing n-gram level knowledge. Third, it learns the paragraph representation directly rather than combining the context level information. This results in this end-to-end framework. - -In this demo we provide two network, namely bidirectional-LSTM and three layers of stacked-LSTM. - -#### Bidirectional-LSTM - -One is a bidirectional LSTM network, connected by fully connected layer and softmax, as shown in Figure 2. - -
![BiLSTM](./bi_lstm.jpg)
-
Figure 2. Bidirectional-LSTM
- -#### Stacked-LSTM -Another is three-layer LSTM structure in Figure 3. The bottom of the figure is word embedding. Next, three LSTM-Hidden layers are connected and the second LSTM is reversed. Then extract the maximum hidden vectors of all time step of hidden and LSTM layer as the representation for the entire sequence. Finally, a fully connected feed forward layer with softmax activation is used to perform the classification task. This network is refered to paper [5]. - -
![StackedLSTM](./stacked_lstm.jpg)
-
Figure 3. Stacked-LSTM for sentiment analysis
- -**Config** - -Switch into `demo/sentiment` directory, `trainer_config.py` file is an example of the config, containing algorithm and newtork configure. The first line imports predefined networks from `sentiment_net.py`. - -trainer_config.py: - -```python -from sentiment_net import * - -data_dir = "./data/pre-imdb" -# whether this config is used for test -is_test = get_config_arg('is_test', bool, False) -# whether this config is used for prediction -is_predict = get_config_arg('is_predict', bool, False) -dict_dim, class_dim = sentiment_data(data_dir, is_test, is_predict) - -################## Algorithm Config ##################### - -settings( - batch_size=128, - learning_rate=2e-3, - learning_method=AdamOptimizer(), - average_window=0.5, - regularization=L2Regularization(8e-4), - gradient_clipping_threshold=25 -) - -#################### Network Config ###################### -stacked_lstm_net(dict_dim, class_dim=class_dim, - stacked_num=3, is_predict=is_predict) -#bidirectional_lstm_net(dict_dim, class_dim=class_dim, is_predict=is_predict) -``` - -* **Data Definition**: - * get\_config\_arg(): get arguments setted by `--config_args=xx` in commandline argument. - * Define data provider, here using Python interface to load data. For details, you can refer to the document of PyDataProvider2. - -* **Algorithm Configuration**: - * set batch size of 128. - * set global learning rate. - * use adam optimization. - * set average sgd window. - * set L2 regularization. - * set gradient clipping threshold. -* **Network Configuration**: - * dict_dim: dictionary dimension. - * class_dim: category number, IMDB has two label, namely positive and negative label. - * `stacked_lstm_net`: predefined network as shown in Figure 3, use this network by default. - * `bidirectional_lstm_net`: predefined network as shown in Figure 2. - -**Training** - -Install PaddlePaddle first if necessary. Then you can use script `train.sh` as follows to launch local training. - -``` -cd demo/sentiment/ -./train.sh -``` - -train.sh: - -``` -config=trainer_config.py -output=./model_output -paddle train --config=$config \ - --save_dir=$output \ - --job=train \ - --use_gpu=false \ - --trainer_count=4 \ - --num_passes=10 \ - --log_period=20 \ - --dot_period=20 \ - --show_parameter_stats_period=100 \ - --test_all_data_in_one_period=1 \ - 2>&1 | tee 'train.log' -``` - -* \--config=$config: set network config. -* \--save\_dir=$output: set output path to save models. -* \--job=train: set job mode to train. -* \--use\_gpu=false: use CPU to train, set true, if you install GPU version of PaddlePaddle and want to use GPU to train. -* \--trainer\_count=4: set thread number (or GPU count). -* \--num\_passes=15: set pass number, one pass in PaddlePaddle means training all samples in dataset one time. -* \--log\_period=20: print log every 20 batches. -* \--show\_parameter\_stats\_period=100: show parameter statistic every 100 batches. -* \--test\_all_data\_in\_one\_period=1: test all data every testing. - -If the run succeeds, the output log is saved in path of `demo/sentiment/train.log` and model is saved in path of `demo/sentiment/model_output/`. The output log is explained as follows. - -``` -Batch=20 samples=2560 AvgCost=0.681644 CurrentCost=0.681644 Eval: classification_error_evaluator=0.36875 CurrentEval: classification_error_evaluator=0.36875 -... -Pass=0 Batch=196 samples=25000 AvgCost=0.418964 Eval: classification_error_evaluator=0.1922 -Test samples=24999 cost=0.39297 Eval: classification_error_evaluator=0.149406 -``` -- Batch=xx: means passing xx batches. -- samples=xx: means passing xx samples. -- AvgCost=xx: averaged cost from 0-th batch to current batch. -- CurrentCost=xx: current cost of latest log_period batches. -- Eval: classification\_error\_evaluator=xx: means classfication error from 0-th batch ro current batch. -- CurrentEval: classification\_error\_evaluator: current classfication error of the lates log_period batches. -- Pass=0: Going through all training set one time is called one pass. 0 means going through training set first time. - -By default, we use the `stacked_lstm_net` network, which converges at a faster rate than `bidirectional_lstm_net` when passing same sample number. If you want to use bidirectional LSTM, just remove comment in the last line and comment `stacked_lstm_net`. - -## Testing - -Testing means evaluating the labeled validation set using trained model. - -``` -cd demo/sentiment -./test.sh -``` - -test.sh: - -```bash -function get_best_pass() { - cat $1 | grep -Pzo 'Test .*\n.*pass-.*' | \ - sed -r 'N;s/Test.* error=([0-9]+\.[0-9]+).*\n.*pass-([0-9]+)/\1 \2/g' | \ - sort | head -n 1 -} - -log=train.log -LOG=`get_best_pass $log` -LOG=(${LOG}) -evaluate_pass="model_output/pass-${LOG[1]}" - -echo 'evaluating from pass '$evaluate_pass - -model_list=./model.list -touch $model_list | echo $evaluate_pass > $model_list -net_conf=trainer_config.py -paddle train --config=$net_conf \ - --model_list=$model_list \ - --job=test \ - --use_gpu=false \ - --trainer_count=4 \ - --config_args=is_test=1 \ - 2>&1 | tee 'test.log' -``` - -The function `get_best_pass` gets the best model by classification error rate for testing. In this example, We use test dataset of IMDB as validation by default. Unlike training, it needs to specify `--job=test` and model path, namely `--model_list=$model_list` here. If running successfully, the log is saved in path of `demo/sentiment/test.log`. For example, in our test, the best model is `model_output/pass-00002`, the classification error is 0.115645 as follows. - -``` -Pass=0 samples=24999 AvgCost=0.280471 Eval: classification_error_evaluator=0.115645 -``` - -## Prediction - -`predict.py` provides a predicting interface. You should install python api of PaddlePaddle before using it. One example to predict unlabeled review of IMDB is as follows. Simply running: - -``` -cd demo/sentiment -./predict.sh -``` -predict.sh: - -``` -#Note the default model is pass-00002, you shold make sure the model path -#exists or change the mode path. -model=model_output/pass-00002/ -config=trainer_config.py -label=data/pre-imdb/labels.list -cat ./data/aclImdb/test/pos/10007_10.txt | python predict.py \ - --tconf=$config\ - --model=$model \ - --label=$label \ - --dict=./data/pre-imdb/dict.txt \ - --batch_size=1 -``` - -* `cat ./data/aclImdb/test/pos/10007_10.txt` : the input sample. -* `predict.py` : predicting interface. -* `--tconf=$config` : set network configure. -* ` --model=$model` : set model path. -* `--label=$label` : set dictionary about corresponding relation between integer label and string label. -* `--dict=data/pre-imdb/dict.txt` : set dictionary. -* `--batch_size=1` : set batch size. - -Note you should make sure the default model path `model_output/pass-00002` -exists or change the model path. - -Predicting result of this example: - -``` -Loading parameters from model_output/pass-00002/ -./data/aclImdb/test/pos/10014_7.txt: predicting label is pos -``` -We sincerely appreciate your interest and welcome your contributions. - -## Reference -[1] Brendan O'Connor, Ramnath Balasubramanyan, Bryan R. Routledge, and Noah A. Smith. 2010. [From Tweets to Polls: Linking Text Sentiment to Public Opinion Time Series](http://homes.cs.washington.edu/~nasmith/papers/oconnor+balasubramanyan+routledge+smith.icwsm10.pdf). In ICWSM-2010.
-[2] Johan Bollen, Huina Mao, Xiaojun Zeng. 2011. [Twitter mood predicts the stock market](http://arxiv.org/abs/1010.3003), Journal of Computational Science.
-[3] Alex Graves, Marcus Liwicki, Santiago Fernan- dez, Roman Bertolami, Horst Bunke, and Ju ̈rgen Schmidhuber. 2009. [A novel connectionist system for unconstrained handwriting recognition. IEEE Transactions on Pattern Analysis and Machine In- telligence](http://www.cs.toronto.edu/~graves/tpami_2009.pdf), 31(5):855–868.
-[4] Zachary C. Lipton, [A Critical Review of Recurrent Neural Networks for Sequence Learning](http://arxiv.org/abs/1506.00019v1), arXiv:1506.00019.
-[5] Jie Zhou and Wei Xu; [End-to-end Learning of Semantic Role Labeling Using Recurrent Neural Networks](http://www.aclweb.org/anthology/P/P15/P15-1109.pdf); ACL-IJCNLP 2015.
diff --git a/doc/_sources/tutorials/text_generation/index_en.md.txt b/doc/_sources/tutorials/text_generation/index_en.md.txt deleted file mode 100644 index 5d8e667c20b..00000000000 --- a/doc/_sources/tutorials/text_generation/index_en.md.txt +++ /dev/null @@ -1,338 +0,0 @@ -# Text generation Tutorial # - -Sequence to sequence has been proven to be a powerful model for language generation. It can be used for machine translation, query rewriting, image captioning, etc. - -This tutorial guides you through training a sequence to sequence model for neural machine translation (NMT) network that translates French to English. - -We follow the paper [Neural Machine Translation by Jointly Learning to Align and Translate](http://arxiv.org/abs/1409.0473) , which details the model architecture and training procedure for good performance on WMT-14 dataset. This tutorial reproduces this result in PaddlePaddle. - -We thank @caoying for the pull request that defines the model architecture and solver configurations. - -## Data Preparation ## -### Download and Extract ### -Download the WMT-14 dataset from [http://www-lium.univ-lemans.fr/~schwenk/cslm\_joint\_paper/](http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/), extract it, and divide Develop and Test data into separate folder. - -- **Train data**: [bitexts (after selection)](http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/data/bitexts.tgz) -- **Develop and Test data**: [dev+test data](http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/data/dev+test.tgz) - -To do this, simply run the following commands in linux, otherwise, you need to download, extract, divide, and rename the file suffix respectively. - -```bash -cd demo/seqToseq/data -./wmt14_data.sh -``` - -We should find that the dataset `wmt14` has three folders as shown in the following table. - ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
folder nameFrench-English parallel corpora filenumber of total filesize
train_dataccb2_pc30.src, ccb2_pc30.trg, etctwelve3.55G
test_datantst1213.src, ntst1213.trgtwo1636k
gen_datantst14.src, ntst14.trgtwo864k
-
- -- Each folder has French-English parallel corpora -- **XXX.src** are source French files; **XXX.trg** are target English files. -- The number of lines of **XXX.src** and **XXX.trg** should be the same. -- Each line is a French/English sentence. -- There is a one-to-one correspondence between the sentence at the i-th line of **XXX.src** and **XXX.trg**. - -### User Defined Dataset ### - -If you need to do other sequence-to-sequence tasks, such as Paraphrasing, you only need to organize the data as follows, and place them in `demo/seqToseq/data`: - - dataset - train - file1.src file1.trg - file2.src file2.trg - ...... - test - file1.src file1.trg - file2.src file2.trg - ...... - gen - file1.src file1.trg - file2.src file2.trg - ...... -- 1st directory: dataset folder name -- 2nd directory: folder of train, test, and gen. The names of these three folders are fixed. -- 3rd file: Source-Target parallel corpora files. - - **XXX.src** are source files, **XXX.trg** are target files. - - Each line of the file must be a sequence. - - There should be a one-to-one correspondence between the i-th sequence of **XXX.src** and **XXX.trg**. - -## Data Preprocess ## -### Preprocessing Workflow ### -- Concat each Source-Target parallel corpora to be one file: - - concat each **XXX.src** and **XXX.trg** to be **XXX**. - - the i-th line of **XXX** = the i-th line of **XXX.src** + '\t' + the i-th line of **XXX.trg** -- Build source and target dictionary of train data, each dictionary has DICTSIZE words: - - the most frequent (DICTSIZE-3) words - - 3 special token: - - ``: the start of a sequence - - ``: the end of a sequence - - ``: a word not included in dictionary - -### Preprocessing Command and Result -The general command for preprocessing the dataset is: - -```python -cd demo/seqToseq/ -python preprocess.py -i INPUT [-d DICTSIZE] [-m] -``` - -- `-i INPUT`: the path of input original dataset -- `-d DICTSIZE`: the specified word count of dictionary, if not set, dictionary will contain all the words in input dataset -- `-m --mergeDict`: merge source and target dictionary, thus, two dictionaries have the same context - -And you will see messages like this: - - concat parallel corpora for dataset - build source dictionary for train data - build target dictionary for train data - dictionary size is XXX - -Here, you can simply run the command: - -```python -python preprocess.py -i data/wmt14 -d 30000 -``` - -It will take several minutes, and store the preprocessed dataset in `demo/seqToseq/data/pre-wmt14`, the directory has following structure. - - train test gen train.list test.list gen.list src.dict trg.dict - -- **train, test, gen**: folder contains French-English parallel corpora of train data, test data and gen data respectively. Each line of file in folder contains two parts, the former is a French sequence, and the latter is a corresponding English sequence. -- **train.list, test.list, gen.list**: text contains a file list in train folder, test folder and gen folder respectively -- **src.dict, trg.dict**: source (French) / target (English) dictionary, each dictionary has 30000 words: the most frequent 29997 words and 3 special token - -## Model Training ## -### Introduction ### - -Neural machine translation (NMT) aims at building a single neural network that can be jointly tuned to maximize translation performance. Recently proposed NMT models often belong to a family of encoder–decoder models. Encoder-Decoder models encode a source sentence into a fixed-length vector from which a decoder generates a target sentence. - -In this task, we use an extension to the encoder–decoder model which learns to align and translate jointly. Each time the model generates a word in a translation, it searches for a set of positions in the source sentence for the most relevant information. The decoder predicts a target word based on the context vectors associated with these source positions and all the previous generated target words. For more detailed explanation, readers can refer to paper [Neural Machine Translation by Jointly Learning to Align and Translate](http://arxiv.org/abs/1409.0473). - -The most distinguishing feature of this model is that it doesn't encode an input sentence into a single fixed-length vector. Instead, it encodes the input sentence into a sequence of vectors, where one vector corresponds to an input element. A subset of these vectors is chosen adaptively while decoding the translated sentence. This frees a NMT model from having to squash all the information of a source sentence, regardless of its length, into a fixed-length vector. The improvement of this model is more apparent for longer sentences, but the improvement can be observed for sentences of any length. -
![](./encoder-decoder-attention-model.png)
-
Figure 1. Encoder-Decoder-Attention-Model
- -### Training Model in PaddlePaddle ### -We need to create a model config file before training. Here is an example `demo/seqToseq/translation/train.conf`. The first three lines import python function for defining network, and define the job_mode and attention_mode. - -```python -from seqToseq_net import * -is_generating = False - -### Data Definiation -train_conf = seq_to_seq_data(data_dir = "./data/pre-wmt14", - is_generating = is_generating) - -### Algorithm Configuration -settings( - learning_method = AdamOptimizer(), - batch_size = 50, - learning_rate = 5e-4) - -### Network Architecture -gru_encoder_decoder(train_conf, is_generating) -``` - -1. **Data Definiation**: We define a SeqToSeq train and test data in our example. It returns train_conf as the configuration, following is its input arguments: - - data_dir: directory of train data and test data - - is\_generating: whether this config is used for generating, here is false -2. **Algorithm Configuration**: We use the SGD training algorithm (default), ADAM learning method in our example, specify batch_size as 50, and learning rate as 5e-4. -3. **Network Architecture**: We use an attention version of GRU Encoder-Decoder network in our example. It consists a bidirectional GRU as an encoder and a decoder that emulates searching through a source sentence during decoding a translation. - -### Training Command and Result### -After writing the model config, we can train the model by running the command: - -```bash -cd demo/seqToseq/translation -./train.sh -``` - -The `train.sh` is shown as follows: - -```bash -paddle train \ ---config='translation/train.conf' \ ---save_dir='translation/model' \ ---use_gpu=false \ ---num_passes=16 \ ---show_parameter_stats_period=100 \ ---trainer_count=4 \ ---log_period=10 \ ---dot_period=5 \ -2>&1 | tee 'translation/train.log' -``` -- config: set config of neural network -- save_dir: set output path to save models -- use_gpu: whether to use GPU to train, here use CPU -- num_passes: set number of passes. One pass in paddle means training all samples in dataset one time -- show_parameter_stats_period: here show parameter statistic every 100 batches -- trainer_count: set number of CPU threads or GPU devices -- log_period: here print log every 10 batches -- dot_period: here print '.' every 5 batches - -The training loss function is printed every 10 batch by default, and you will see messages like this: - - I0719 19:16:45.952062 15563 TrainerInternal.cpp:160] Batch=10 samples=500 AvgCost=198.475 CurrentCost=198.475 Eval: classification_error_evaluator=0.737155 CurrentEval: classification_error_evaluator=0.737155 - I0719 19:17:56.707319 15563 TrainerInternal.cpp:160] Batch=20 samples=1000 AvgCost=157.479 CurrentCost=116.483 Eval: classification_error_evaluator=0.698392 CurrentEval: classification_error_evaluator=0.659065 - ..... -- AvgCost: Average Cost from 0th batch to current batch -- CurrentCost: Cost in current batch -- classification\_error\_evaluator(Eval): False prediction rate for each word from 0th evaluation to current evaluation -- classification\_error\_evaluator(CurrentEval): False prediction rate for each word in current evaluation - -And when the classification\_error\_evaluator is less than 0.35, the model is trained sucessfully. - -## Text Generation ## -### Introduction ### - -Generally speaking, the NMT model is conditioned on the encodings of the source sentence, and then to predict the next target word by given the current target word. In the training process, the current word is always knowns as the ground truth, by contrast. In the generating process, the current word is the output of the decoder in last time step, which is accessed to from a memory in PaddlePaddle. - -Besides, we use Beam Search to generate sequences. Beam search uses breadth-first search to build its search tree. At each level of the tree, it generates all successors of the states at the current level, sorting them in increasing order of heuristic cost. However, it only stores a predetermined number of best states at each level (called the beam size). - -### Pretrained model ### -We trained the model on a cluster with 50 nodes, each node has two 6-core CPUs. We trained 16 passes in 5 days, where each pass takes 7 hours. The model_dir has 16 sub-folder, each of which contains the whole model parameters with 202MB size. And we find pass-00012 model has the highest BLEU 27.77 (see paper [BLEU: a Method for Automatic Evaluation of Machine Translation](http://www.aclweb.org/anthology/P02-1040.pdf)). To download and extract this model, simply run the following commands in linux. - -```bash -cd demo/seqToseq/data -./wmt14_model.sh -``` - -### Generating Model in PaddlePaddle ### -We need to create a model config file before translating French sequence. Here is an example `demo/seqToseq/translation/gen.conf`, the first three lines import python function for defining network, and define the job\_mode and attention\_mode. - -```python -from seqToseq_net import * -is_generating = True - -################## Data Definiation ##################### -gen_conf = seq_to_seq_data(data_dir = "./data/pre-wmt14", - is_generating = is_generating, - gen_result = "./translation/gen_result") - -############## Algorithm Configuration ################## -settings( - learning_method = AdamOptimizer(), - batch_size = 1, - learning_rate = 0) - -################# Network configure ##################### -gru_encoder_decoder(gen_conf, is_generating) -``` - -1. **Data Definiation**: We defines an SeqToSeq gen data in our example. It returns gen_conf as the configuration, following is its input arguments: - - data\_dir: directory of gen data -   - is\_generating: whether this config is used for generating, here is true -   - gen\_result: file to store the generation result -2. **Algorithm Configuration**: We use SGD traing algorithm in generation, and specify batch_size as 1 (each time generate one sequence), and learning rate as 0. -3. **Network Architecture**: Essentially the same as the training model. - -### Generating Command and Result ### -After writing the model config, we can do text translation from French to English by running the command: - -```bash -cd demo/seqToseq/translation -./gen.sh -``` - -The `gen.sh` is shown as follows, unlike training, there are some different arguments to specify: - -```bash -paddle train \ ---job=test \ ---config='translation/gen.conf' \ ---save_dir='data/wmt14_model' \ ---use_gpu=true \ ---num_passes=13 \ ---test_pass=12 \ ---trainer_count=1 \ -2>&1 | tee 'translation/gen.log' -``` -- job: set job mode to test -- save_dir: the path of saved models -- num_passes and test_pass: loading model parameters from test_pass to (num_passes - 1), here only loads `data/wmt14_model/pass-00012` - -You will see messages like this: - - I0706 14:48:31.178915 31441 GradientMachine.cpp:143] Loading parameters from data/wmt14_model/pass-00012 - I0706 14:48:40.012039 31441 Tester.cpp:125] Batch=100 samples=100 AvgCost=0 - I0706 14:48:48.898632 31441 Tester.cpp:125] Batch=200 samples=200 AvgCost=0 - ... - -And the generating result in `demo/seqToseq/translation/gen_result` likes: - - 0 - 0 -11.1314 The about the width of the seats while large controls are at stake - 1 -11.1519 The on the width of the seats while large controls are at stake - 2 -11.5988 The about the width of the seats while large controls are at stake . - - 1 - 0 -24.4149 The dispute is between the major aircraft manufacturers about the width of the tourist seats on the flights , paving the way for a confrontation during the month of the Dubai . - 1 -26.9524 The dispute is between the major aircraft manufacturers about the width of the tourist seats on the flights , paving the way for a confrontation during the month of Dubai ' s . - 2 -27.9574 The dispute is between the major aircraft manufacturers about the width of the tourist seats on the flights , paving the way for a confrontation during the month of Dubai ' s Dubai . - ... - -- This is the beam search result, where beam size is 3 -- '0' in 1st-line and '1' in 6th-line mean the sequence-id in gen data -- Other six lines list the beam search results - - The 2nd-column is the score of beam search (from large to small) - - The 3rd-colunm is the generating English sequence -- There is 2 special tokens: - - ``: the end of a sequence - - ``: a word not included in dictionary - -### Bleu Evalutaion ### -Human evaluations of machine translation are extensive but expensive. Paper [BLEU: a Method for Automatic Evaluation of Machine Translation](http://www.aclweb.org/anthology/P02-1040.pdf) presents a method as an automated understudy to skilled human judges which substitutes for them when there is need for quick or frequent evaluations. [Moses](http://www.statmt.org/moses/) is a statistical machine translation system, and we use [multi-bleu.perl](https://github.com/moses-smt/mosesdecoder/blob/master/scripts/generic/multi-bleu.perl) of it to do Bleu Evalution. To download this script, simply run the following command: - -```bash -cd demo/seqToseq/translation -./moses_bleu.sh -``` - -Since the standard translation is alrealy downloaded as `data/wmt14/gen/ntst14.trg`, we can do Bleu Evalution by running the command: - -```bash -cd demo/seqToseq/translation -./eval_bleu.sh FILE BEAMSIZE -``` - -- FILE: the generation result file -- BEAMSIZE: expand width in beam search diff --git a/doc/_sources/v1_api_tutorials/README.md.txt b/doc/_sources/v1_api_tutorials/README.md.txt new file mode 100644 index 00000000000..071b8da61fb --- /dev/null +++ b/doc/_sources/v1_api_tutorials/README.md.txt @@ -0,0 +1,5 @@ +The tutorials in v1_api_tutorials are using v1_api currently, and will be upgraded to v2_api later. +Thus, v1_api_tutorials is a temporary directory. We decide not to maintain it and will delete it in future. + +Please go to [PaddlePaddle/book](https://github.com/PaddlePaddle/book) and +[PaddlePaddle/models](https://github.com/PaddlePaddle/models) to learn PaddlePaddle. diff --git a/doc/_sources/tutorials/embedding_model/index_en.md.txt b/doc/_sources/v1_api_tutorials/embedding_model/index_en.md.txt similarity index 100% rename from doc/_sources/tutorials/embedding_model/index_en.md.txt rename to doc/_sources/v1_api_tutorials/embedding_model/index_en.md.txt diff --git a/doc/_sources/tutorials/gan/index_en.md.txt b/doc/_sources/v1_api_tutorials/gan/index_en.md.txt similarity index 100% rename from doc/_sources/tutorials/gan/index_en.md.txt rename to doc/_sources/v1_api_tutorials/gan/index_en.md.txt diff --git a/doc/_sources/tutorials/imagenet_model/resnet_model_en.md.txt b/doc/_sources/v1_api_tutorials/imagenet_model/resnet_model_en.md.txt similarity index 100% rename from doc/_sources/tutorials/imagenet_model/resnet_model_en.md.txt rename to doc/_sources/v1_api_tutorials/imagenet_model/resnet_model_en.md.txt diff --git a/doc/_sources/tutorials/quick_start/index_en.md.txt b/doc/_sources/v1_api_tutorials/quick_start/index_en.md.txt similarity index 100% rename from doc/_sources/tutorials/quick_start/index_en.md.txt rename to doc/_sources/v1_api_tutorials/quick_start/index_en.md.txt diff --git a/doc/api/index_en.html b/doc/api/index_en.html index 1738caea7d0..61396b4c43e 100644 --- a/doc/api/index_en.html +++ b/doc/api/index_en.html @@ -64,7 +64,7 @@

ll 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 diff --git a/doc/_images/paddleci.png b/doc/_images/paddleci.png new file mode 100644 index 0000000000000000000000000000000000000000..16087ce059aa3c07ce8c927d983eb86351915825 GIT binary patch literal 40242 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 TDaF2yYT()L>EluB9!dQV$m`bb literal 0 HcmV?d00001 diff --git a/doc/_images/parameters.png b/doc/_images/parameters.png deleted file mode 100644 index 2ec67480951e21f0400bce1c34b3108dcd65c18c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44469 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 H?dSgm&LiL= diff --git a/doc/_images/pprof_1.png b/doc/_images/pprof_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9edbf377672d0ef40f2fc7bd39e746923550cb GIT binary patch literal 352710 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 f5jO zzQ4W+S#)+pL)wdCh^koBxWYYDef~%YXa)tQK^dFqO})8M=k=S_B&8?And^FpI7ydN z!RmIvf|+%{ZZ{eVpDcAxHmt)Q*|~{>Q6v!O?HfS6Ker7ORm)N-Gvy=<#CC4;*$RSJ zJVWl=3nBcjkY@roOE+c%AVFh&VDAZH#IgBvv8)PXHo4le*qtUgpIq!!fzr1?W*|Iz zwOvjaaI=w7)QQ6(vJebMWd4DvvpXlA_i(n1e~Gs6I2ny*f|%R^p&^1?Ew7}6TwGcT z_qld0e5{@HuWq>h<#ahXC2C=Yg$0T-MQr9OD%0%8rzSvR))9aa6B~O96NZr_>~-`L ze{5i3rHHt=WI8mhS2GtVo{XmIgxK{&iVYGr{( zWEK<$^Fn(U9WXBJB|J>wZscV`jD&d{Y1>|5PtMkh``-5(1tSM$R{IZ1Vmv5l!TH)! zHLJGHIR%Q4DTV{+<^3@!=|4g_o)(CCHW|IFV+xv=%2Bt6OyIutGHI~`3r#@~lN zaPLc*ar}4v@j7*@W&dyNZ)UK4$si0dm+Eu`4h|k9Gup1FZR|e7KrFUL32B`6W_H2w z+lxAwqHo_9$Vf?Ne=ZCt;i00^j>>6pxeW3gZ=C^o6Z{c?y*;t#Na8Lr!^-iIx(RPunVFZL{IXV^N4*qYh>eTq@D!T6Ns{@;+RtWVrc4fhN6?jwRq_L)X&DUVqrBo+Z- zDt^G!1Ea12q`4md4XeB&GBC9Jx&t06N_&Wh`+W$s!2!?ionJ{B>2bzI^G7q0(Fmn( zhsuH4hyO?>-G9BRRnV{cHdb=`U?OdX{8Ai#hbb~PDkNBe1~qyvp8=#?SrV^o_EtIG zZkp;IJ2^A;#Kp=&Dx8Ew@oP_}RTaHZGQL29C82+x+6&d(5OL6(!iY?+RRm*PUxFN0 zUc6pN_EHDW%7axKUguP9Va`{ZcZ6J7R~H-_iNMWQ#FoZbX9?Lf$DQP?T;kUjZMtOD zcH22wr1a+K+Xv(G09U_IvOw7q$nVFQRc%Uy`=$^*P6+s4ckziWpa%iSD}LL?Xf@J* zYTQ|7ULgt_T0~9ENPxLhp&%Bpg#y@@J#%rgZ2(*3%Y^UH{Vp0wc4ifE}re>KT~o{j=}>9wV_I zz`{KPe}cPOZ>t0uA59HE0aLCln_^|$fI&rDm8`z}c6s(}_yum}834%_@LthU*f^+) z)8AIWM;wGu6MQsmw&vGC58SPiIBeOXe2r(JG@b=sGF2_hRE8%Ed>=f#1=rCLSJu-b zlm22;8|j- zBhiUiW0O}<=!-W4DK3{3`K&MXwl#Xg?**N89(!a6KcEDG;MKu521did{cMHF=iF2a z1A;0VhSif)L@HH$qa2bgsZ=mtK0bI>*5Ai>)6;WeS{)iF$BusC4YR$0!TOFjy&8#) z01FftxQ45@4S80EOj08*2&h?m39$=wU&d-N(Q8VGT?z|T#;Dk+h{ocGAB83)4qs>Sf#Sg8`Lsfv3VtGEVVOZ@Rw?9VVlrR>MwUoSIPK{l2gELOY}z`9 z`Q-0+tD&UqzsleQgN{vMW)KjE)V4q=7g9ckcYW(jlHJ#oobl z-$m%aq2MxWg!Bzrkyk@hCnO=juG&JQGn<&$a;P2)u}{zt86ySO=iBze0=v!!yrzf* zv|^k#<%Bn+;%VehmpmDor9dSp+Uj0=L=y%^AVxKc1V&0Aq8hIoM1lCJMA#+USlAqrQy!S&)#HvoHPg6s@rS`s(*}X!=yXS#_Y2qcp0iXGP zN*&vy*o;+mWj+7MXK}ex9!U=#{e98N#~Z95*dm-Ax(S1FSe+OoHfBxRb;&!>{RFr1 zF<6Ksnx0`L7W$Gv#_&EuUfs47DYAH=Iq$=Za$Rp(DTCh9Ugu5F<~>@hRzS=x#|$wpS-QOh9t`hIS)4-}!F%3#(xa)y zlBWhMFEt7y~fEr}r8GKj+qHET>S%0D4>n=6A#88;o%T!y8)I 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

+ +
+

SoftSign

+
+
+class paddle.v2.activation.SoftSign
+

SoftSign Activation.

+
+\[f(z)=\frac{z}{1 + |z|}\]
+
+
diff --git a/doc/api/v2/config/attr.html b/doc/api/v2/config/attr.html index f6cbaf8e58f..2b368d6b528 100644 --- a/doc/api/v2/config/attr.html +++ b/doc/api/v2/config/attr.html @@ -65,7 +65,7 @@