From e9c61b67e25f37324131bd8f54afc0b45d992c6d Mon Sep 17 00:00:00 2001 From: Peng Li Date: Wed, 30 Nov 2016 21:55:29 +0800 Subject: [PATCH 001/186] Fix bug in processing instance weight and coeff in CRFLayer The instance weight and coeff are only mulipled to the gradient with respect to input. --- paddle/gserver/layers/CRFDecodingLayer.cpp | 2 +- paddle/gserver/layers/CRFLayer.cpp | 29 ++- paddle/gserver/layers/CRFLayer.h | 1 + paddle/gserver/layers/LinearChainCRF.cpp | 72 ++++---- paddle/gserver/layers/LinearChainCRF.h | 26 ++- paddle/gserver/tests/CMakeLists.txt | 9 + paddle/gserver/tests/test_CRFLayerGrad.cpp | 178 +++++++++++++++++++ paddle/gserver/tests/test_LayerGrad.cpp | 21 --- paddle/gserver/tests/test_LinearChainCRF.cpp | 2 +- 9 files changed, 260 insertions(+), 80 deletions(-) create mode 100644 paddle/gserver/tests/test_CRFLayerGrad.cpp diff --git a/paddle/gserver/layers/CRFDecodingLayer.cpp b/paddle/gserver/layers/CRFDecodingLayer.cpp index 8986741dc3..3c66f4191a 100644 --- a/paddle/gserver/layers/CRFDecodingLayer.cpp +++ b/paddle/gserver/layers/CRFDecodingLayer.cpp @@ -24,7 +24,7 @@ bool CRFDecodingLayer::init(const LayerMap& layerMap, return false; } crf_.reset(new LinearChainCRF( - numClasses_, parameter_->getBuf(PARAMETER_VALUE)->getData(), nullptr)); + numClasses_, parameter_->getBuf(PARAMETER_VALUE)->getData())); return true; } diff --git a/paddle/gserver/layers/CRFLayer.cpp b/paddle/gserver/layers/CRFLayer.cpp index ed4f864ba9..fa434cda00 100644 --- a/paddle/gserver/layers/CRFLayer.cpp +++ b/paddle/gserver/layers/CRFLayer.cpp @@ -42,6 +42,8 @@ bool CRFLayer::init(const LayerMap& layerMap, CHECK_EQ(parameters_[0]->getSize(), numClasses_ * (numClasses_ + 2)); parameter_ = parameters_[0]; + weight_.reset( + new Weight(numClasses_ + 2, numClasses_, parameter_)); // We don't need sequenceStartPositions because each sample of output_ is // for the cost of one sequence. @@ -69,11 +71,7 @@ void CRFLayer::forward(PassType passType) { for (size_t i = 0; i < numSequences; ++i) { if (i >= crfs_.size()) { - crfs_.emplace_back(numClasses_, - parameter_->getBuf(PARAMETER_VALUE)->getData(), - parameter_->getBuf(PARAMETER_GRADIENT) - ? parameter_->getBuf(PARAMETER_GRADIENT)->getData() - : nullptr); + crfs_.emplace_back(numClasses_, weight_->getW()->getData()); } output_.value->getData()[i] = crfs_[i].forward(output.value->getData() + numClasses_ * starts[i], @@ -94,21 +92,22 @@ void CRFLayer::backward(const UpdateCallback& callback) { int numSequences = label.sequenceStartPositions->getSize() - 1; for (int i = 0; i < numSequences; ++i) { + bool needWGrad = weight_->getWGrad() ? true : false; crfs_[i].backward(output.value->getData() + numClasses_ * starts[i], - output.grad->getData() + numClasses_ * starts[i], label.ids->getData() + starts[i], - starts[i + 1] - starts[i]); - if (weightLayer_) { - real weight = getInputValue(*weightLayer_)->getElement(i, 0); - MatrixPtr grad = output.grad->subRowMatrix(starts[i], starts[i + 1]); - grad->mulScalar(weight); + starts[i + 1] - starts[i], needWGrad); + real instanceWeight = weightLayer_ ? + getInputValue(*weightLayer_)->getElement(i, 0) : real(1.0f); + instanceWeight *= coeff_; + + MatrixPtr grad = output.grad->subRowMatrix(starts[i], starts[i + 1]); + grad->add(*crfs_[i].getXGrad(), real(1.0f), instanceWeight); + if (needWGrad) { + weight_->getWGrad()->add(*crfs_[i].getWGrad(), real(1.0f), + instanceWeight); } } - if (coeff_ != real(1.0f)) { - output.grad->mulScalar(coeff_); - } - parameter_->incUpdate(callback); } diff --git a/paddle/gserver/layers/CRFLayer.h b/paddle/gserver/layers/CRFLayer.h index 21c7fc61e1..ae024b8fa3 100644 --- a/paddle/gserver/layers/CRFLayer.h +++ b/paddle/gserver/layers/CRFLayer.h @@ -38,6 +38,7 @@ protected: ParameterPtr parameter_; std::vector crfs_; LayerPtr weightLayer_; // weight for each sequence + std::unique_ptr weight_; // parameters real coeff_; // weight for the layer }; diff --git a/paddle/gserver/layers/LinearChainCRF.cpp b/paddle/gserver/layers/LinearChainCRF.cpp index 2b3a50b2e2..f9e4bb83d4 100644 --- a/paddle/gserver/layers/LinearChainCRF.cpp +++ b/paddle/gserver/layers/LinearChainCRF.cpp @@ -17,18 +17,12 @@ limitations under the License. */ namespace paddle { -LinearChainCRF::LinearChainCRF(int numClasses, real* para, real* grad) +LinearChainCRF::LinearChainCRF(int numClasses, real* para) : numClasses_(numClasses) { a_ = Matrix::create(para, 1, numClasses_); b_ = Matrix::create(para + numClasses_, 1, numClasses_); w_ = Matrix::create(para + 2 * numClasses_, numClasses_, numClasses_); - if (grad) { - da_ = Matrix::create(grad, 1, numClasses_); - db_ = Matrix::create(grad + numClasses_, 1, numClasses_); - dw_ = Matrix::create(grad + 2 * numClasses_, numClasses_, numClasses_); - } - ones_ = Matrix::create(1, numClasses_); ones_->one(); @@ -107,19 +101,24 @@ real LinearChainCRF::forward(real* x, int* s, int length) { return -ll; } -void LinearChainCRF::backward(real* x, real* dx, int* s, int length) { +void LinearChainCRF::backward(real* x, int* s, int length, bool needWGrad) { MatrixPtr matX = Matrix::create(x, length, numClasses_); - MatrixPtr matDX = Matrix::create(dx, length, numClasses_); - MatrixPtr matGrad = Matrix::create(length, numClasses_); + Matrix::resizeOrCreate(matGrad_, length, numClasses_); Matrix::resizeOrCreate(beta_, length, numClasses_); real* b = b_->getData(); - real* dw = dw_ ? dw_->getData() : nullptr; + if (needWGrad) { + Matrix::resizeOrCreate(matWGrad_, numClasses_ + 2, numClasses_); + matWGrad_->zeroMem(); + da_ = matWGrad_->subRowMatrix(0, 1); + db_ = matWGrad_->subRowMatrix(1, 2); + dw_ = matWGrad_->subRowMatrix(2, numClasses_ + 2); + } real* alpha = alpha_->getData(); real* beta = beta_->getData(); real* expW = expW_->getData(); real* expX = expX_->getData(); - real* grad = matGrad->getData(); + real* grad = matGrad_->getData(); for (int i = 0; i < numClasses_; ++i) { beta[(length - 1) * numClasses_ + i] = exp(b[i]); @@ -140,39 +139,38 @@ void LinearChainCRF::backward(real* x, real* dx, int* s, int length) { normalizeL1(beta + k * numClasses_, numClasses_); } - matGrad->dotMul(*alpha_, *beta_); - matGrad->rowNormalizeL1(*matGrad); + matGrad_->dotMul(*alpha_, *beta_); + matGrad_->rowNormalizeL1(*matGrad_); for (int k = 0; k < length; ++k) { grad[k * numClasses_ + s[k]] -= (real)1; } - matDX->add(*matGrad); - if (da_) { - da_->add(*matGrad->subMatrix(/* startRow= */ 0, /* numRows= */ 1)); - } - if (db_) { - db_->add(*matGrad->subMatrix(/* startRow= */ length - 1, 1)); - } - beta_->dotMul(*beta_, *expX_); - beta_->rowNormalizeL1(*beta_); + if (needWGrad) { + da_->add(*matGrad_->subMatrix(/* startRow= */ 0, /* numRows= */ 1)); + db_->add(*matGrad_->subMatrix(/* startRow= */ length - 1, 1)); - for (int k = 1; dw && k < length; ++k) { - real sum = 0; - for (int i = 0; i < numClasses_; ++i) { - for (int j = 0; j < numClasses_; ++j) { - sum += expW[i * numClasses_ + j] * alpha[(k - 1) * numClasses_ + i] * - beta[k * numClasses_ + j]; + beta_->dotMul(*beta_, *expX_); + beta_->rowNormalizeL1(*beta_); + + real* dw = dw_->getData(); + for (int k = 1; k < length; ++k) { + real sum = 0; + for (int i = 0; i < numClasses_; ++i) { + for (int j = 0; j < numClasses_; ++j) { + sum += expW[i * numClasses_ + j] * alpha[(k - 1) * numClasses_ + i] * + beta[k * numClasses_ + j]; + } } - } - sum = 1 / sum; - for (int i = 0; i < numClasses_; ++i) { - for (int j = 0; j < numClasses_; ++j) { - dw[i * numClasses_ + j] += sum * expW[i * numClasses_ + j] * - alpha[(k - 1) * numClasses_ + i] * - beta[k * numClasses_ + j]; + sum = 1 / sum; + for (int i = 0; i < numClasses_; ++i) { + for (int j = 0; j < numClasses_; ++j) { + dw[i * numClasses_ + j] += sum * expW[i * numClasses_ + j] * + alpha[(k - 1) * numClasses_ + i] * + beta[k * numClasses_ + j]; + } } + dw[s[k - 1] * numClasses_ + s[k]] -= (real)1; } - dw[s[k - 1] * numClasses_ + s[k]] -= (real)1; } } diff --git a/paddle/gserver/layers/LinearChainCRF.h b/paddle/gserver/layers/LinearChainCRF.h index 6368f2b9de..f58ac6b581 100644 --- a/paddle/gserver/layers/LinearChainCRF.h +++ b/paddle/gserver/layers/LinearChainCRF.h @@ -21,7 +21,7 @@ namespace paddle { class LinearChainCRF { public: /** - * The size of para and grad must be \f$(numClasses + 2) * numClasses\f$. + * The size of para must be \f$(numClasses + 2) * numClasses\f$. * The first numClasses values of para are for starting weights (\f$a\f$). * The next numClasses values of para are for ending weights (\f$b\f$), * The remaning values are for transition weights (\f$w\f$). @@ -34,7 +34,7 @@ public: * all possible * sequences is \f$1\f$, and \f$x\f$ is the input feature to the CRF. */ - LinearChainCRF(int numClasses, real* para, real* grad); + LinearChainCRF(int numClasses, real* para); /** * Calculate the negative log likelihood of s given x. @@ -45,29 +45,45 @@ public: /** * Calculate the gradient with respect to x, a, b, and w. - * The gradient of x will be stored in dx. * backward() can only be called after a corresponding call to forward() with * the same x, s and length. - * @note The gradient is added to dx and grad (provided at constructor). + * The gradient with respect to a, b, and w will not be calculated if + * needWGrad is false. + * @note Please call getWGrad() and getXGrad() to get the gradient with + * respect to (a, b, w) and x respectively. */ - void backward(real* x, real* dx, int* s, int length); + void backward(real* x, int* s, int length, bool needWGrad); /** * Find the most probable sequence given x. The result will be stored in s. */ void decode(real* x, int* s, int length); + /* + * Return the gradient with respect to (a, b, w). It can only be called after + * a corresponding call to backward(). + */ + MatrixPtr getWGrad() { return matWGrad_; } + + /* + * Return the gradient with respect to x. It can only be called after a + * corresponding call to backward(). + */ + MatrixPtr getXGrad() { return matGrad_; } + protected: int numClasses_; MatrixPtr a_; MatrixPtr b_; MatrixPtr w_; + MatrixPtr matWGrad_; MatrixPtr da_; MatrixPtr db_; MatrixPtr dw_; MatrixPtr ones_; MatrixPtr expX_; + MatrixPtr matGrad_; MatrixPtr alpha_; MatrixPtr beta_; MatrixPtr maxX_; diff --git a/paddle/gserver/tests/CMakeLists.txt b/paddle/gserver/tests/CMakeLists.txt index 0651d0b473..1525960ffd 100644 --- a/paddle/gserver/tests/CMakeLists.txt +++ b/paddle/gserver/tests/CMakeLists.txt @@ -20,6 +20,15 @@ add_unittest_without_exec(test_LayerGrad add_test(NAME test_LayerGrad COMMAND test_LayerGrad) +################ test_CRFLayerGrad #################### +add_unittest_without_exec(test_CRFLayerGrad + test_CRFLayerGrad.cpp + LayerGradUtil.cpp + TestUtil.cpp) +add_test(NAME test_CRFLayerGrad + COMMAND test_CRFLayerGrad) + + add_unittest_without_exec(test_ActivationGrad test_ActivationGrad.cpp LayerGradUtil.cpp diff --git a/paddle/gserver/tests/test_CRFLayerGrad.cpp b/paddle/gserver/tests/test_CRFLayerGrad.cpp new file mode 100644 index 0000000000..bc1d5f3061 --- /dev/null +++ b/paddle/gserver/tests/test_CRFLayerGrad.cpp @@ -0,0 +1,178 @@ +/* Copyright (c) 2016 Baidu, Inc. All Rights Reserve. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. */ + +#include +#include "paddle/gserver/layers/DataLayer.h" +#include "paddle/trainer/Trainer.h" +#include "paddle/gserver/layers/LinearChainCRF.h" +#include "ModelConfig.pb.h" + +#include "TestUtil.h" +#include "LayerGradUtil.h" + +using namespace paddle; // NOLINT + +P_DECLARE_bool(use_gpu); +P_DECLARE_int32(gpu_id); +P_DECLARE_double(checkgrad_eps); +P_DECLARE_bool(thread_local_rand_use_global_seed); +P_DECLARE_bool(prev_batch_state); + +static inline bool getNextSequence(std::vector& seq, int numClasses) { + for (auto& v : seq) { + if (++v < numClasses) { + return true; + } + v = 0; + } + return false; +} + +// log(exp(x) + exp(y)) +static inline real logSum(real x, real y) { + real maxValue = std::max(x, y); + if (std::isinf(maxValue)) { + return -std::numeric_limits::infinity(); + } else { + return maxValue + log(exp(x - maxValue) + exp(y - maxValue)); + } +} + +static inline std::vector genRandLabels(int numClasses, int length) { + std::vector labels(length); + for (int i = 0; i < length; ++i) { + labels[i] = rand() % numClasses; // NOLINT + } + return labels; +} + +TEST(CRFLayer, cost) { + const int numClasses = 4; + CpuVector para(numClasses * (numClasses + 2)); + real* a = para.getData(); + real* b = para.getData() + numClasses; + real* w = para.getData() + 2 * numClasses; + LinearChainCRF crf(4, para.getData()); + for (int length : {1, 2, 3, 10}) { + for (int tries = 0; tries < 10; ++tries) { + CpuMatrix x(length, numClasses); + x.randomizeUniform(); + para.randnorm(0, 2); + + std::vector goldenLabels = genRandLabels(numClasses, length); + + real cost = crf.forward(x.getData(), goldenLabels.data(), length); + + real logZ = -std::numeric_limits::infinity(); + real logNominator = -std::numeric_limits::infinity(); + std::vector testResult(length, 0); + do { + real score = a[testResult.front()]; + score += x.getElement(0, testResult.front()); + for (int k = 1; k < length; ++k) { + score += x.getElement(k, testResult[k]) + + w[numClasses * testResult[k - 1] + testResult[k]]; + } + score += b[testResult.back()]; + logZ = logSum(logZ, score); + + if (goldenLabels == testResult) { + logNominator = score; + } + } while (getNextSequence(testResult, numClasses)); + + real trueCost = -logNominator + logZ; + + real diff = fabs(trueCost - cost); + diff /= fabs(cost) < fabs(trueCost) ? fabs(cost) : fabs(trueCost); + VLOG(1) << "cost=" << cost << " trueCost=" << trueCost + << " diff=" << diff << std::endl; + if (typeid(real) == typeid(double)) { // NOLINT + EXPECT_LE(diff, 1e-10); + } else { + EXPECT_LE(diff, 5e-3); + } + } + } +} + +inline real epsilon() { + return typeid(real) == typeid(double) ? 1e-10 : 0.05; +} + +TestConfig initTestConfig(size_t numClasses, bool withWeight) { + TestConfig config; + config.layerConfig.set_type("crf"); + config.layerConfig.set_size(numClasses); + config.biasSize = 0; + + config.inputDefs.push_back({INPUT_SEQUENCE_DATA, "layer_0", + numClasses, numClasses * (numClasses + 2)}); + config.layerConfig.add_inputs(); + config.inputDefs.push_back({INPUT_SEQUENCE_LABEL, "layer_label", + numClasses, 0}); + config.layerConfig.add_inputs(); + + if (withWeight) { + config.inputDefs.push_back({INPUT_DENSE_DIM_DATA, "layer_weight", + 1, 0}); + config.layerConfig.add_inputs(); + } + + return config; +} + +TEST(Layer, CRFLayer) { + size_t numClasses = 10; + for (int tries = 0; tries < 5; ++tries) { + TestConfig config = initTestConfig(numClasses, /* withWeight= */ false); + for (int length : {1, 3, 100}) { + // Not support GPU now + testLayerGrad(config, + "crf", + length, + /* trans= */ false, + /* useGpu= */ false, + /* useWeight= */ false, + epsilon()); + } + } +} + +TEST(Layer, CRFLayerUseWeight) { + size_t numClasses = 10; + for (int tries = 0; tries < 5; ++tries) { + TestConfig config = initTestConfig(numClasses, /* withWeight= */ true); + for (int length : {1, 3, 100}) { + // Not support GPU now + testLayerGrad(config, + "crf", + length, + /* trans= */ false, + /* useGpu= */ false, + /* useWeight= */ false, + epsilon()); + } + } +} + +int main(int argc, char** argv) { + initMain(argc, argv); + hl_start(); + hl_init(FLAGS_gpu_id); + FLAGS_thread_local_rand_use_global_seed = true; + srand(1); + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/paddle/gserver/tests/test_LayerGrad.cpp b/paddle/gserver/tests/test_LayerGrad.cpp index 374ae57dd3..2aa86cc65c 100644 --- a/paddle/gserver/tests/test_LayerGrad.cpp +++ b/paddle/gserver/tests/test_LayerGrad.cpp @@ -270,27 +270,6 @@ TEST(Layer, AddtoLayer) { } } -TEST(Layer, CRFLayer) { - TestConfig config; - config.layerConfig.set_type("crf"); - config.layerConfig.set_size(10); - config.biasSize = 0; - - config.inputDefs.push_back({INPUT_SEQUENCE_DATA, "layer_0", 10, 120}); - config.inputDefs.push_back({INPUT_SEQUENCE_LABEL, "layer_1", 10, 0}); - config.layerConfig.add_inputs(); - config.layerConfig.add_inputs(); - - // Not support GPU now - testLayerGrad(config, - "crf", - 100, - /* trans */ false, - /* useGpu */ false, - false /*useWeight*/, - 0.03 /*epsilon*/); -} - TEST(Layer, CTCLayer) { TestConfig config; config.layerConfig.set_type("ctc"); diff --git a/paddle/gserver/tests/test_LinearChainCRF.cpp b/paddle/gserver/tests/test_LinearChainCRF.cpp index 913d6ed751..82361fa551 100644 --- a/paddle/gserver/tests/test_LinearChainCRF.cpp +++ b/paddle/gserver/tests/test_LinearChainCRF.cpp @@ -36,7 +36,7 @@ TEST(LinearChainCRF, decoding) { real* a = para.getData(); real* b = para.getData() + numClasses; real* w = para.getData() + 2 * numClasses; - LinearChainCRF crf(4, para.getData(), nullptr); + LinearChainCRF crf(4, para.getData()); for (int length : {1, 2, 3, 10}) { for (int tries = 0; tries < 10; ++tries) { CpuMatrix x(length, numClasses); From d60d34ef3f7fdcf54126e7a8342b50b35bae7f47 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Thu, 1 Dec 2016 13:38:42 +0800 Subject: [PATCH 002/186] Fix bug in python/paddle/trainer/config_parser.py The dims for crf and crf_decoding layers are wrong, i.e. height and width are swapped. --- python/paddle/trainer/config_parser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py index 9db42bf172..08b54bf0e1 100644 --- a/python/paddle/trainer/config_parser.py +++ b/python/paddle/trainer/config_parser.py @@ -2960,7 +2960,7 @@ class CRFLayer(LayerBase): super(CRFLayer, self).__init__(name, 'crf', size, inputs, device=device) config_assert(2 <= len(self.inputs) <= 3, 'CRFLayer must have 2 or 3 inputs') - self.create_input_parameter(0, size * (size + 2), [size, size + 2]) + self.create_input_parameter(0, size * (size + 2), [size + 2, size]) self.config.coeff = coeff @@ -2982,7 +2982,7 @@ class CRFDecodingLayer(LayerBase): config_assert( len(self.inputs) <= 2, 'CRFDecodingLayer cannot have more than 2 inputs') - self.create_input_parameter(0, size * (size + 2), [size, size + 2]) + self.create_input_parameter(0, size * (size + 2), [size + 2, size]) @config_layer('ctc') From 749456bd600c623ed327420949bab677656ae1f8 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Thu, 1 Dec 2016 19:20:46 +0800 Subject: [PATCH 003/186] Fix test_layerHelpers bug The values for ____crf_layer_0__.w0 in python/paddle/trainer_config_helpers/tests/configs/protostr/test_cost_layers.protostr is not correct due to swapped height and width in config_parser --- .../tests/configs/protostr/test_cost_layers.protostr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/paddle/trainer_config_helpers/tests/configs/protostr/test_cost_layers.protostr b/python/paddle/trainer_config_helpers/tests/configs/protostr/test_cost_layers.protostr index f6045fe1f6..2c16ebcf81 100644 --- a/python/paddle/trainer_config_helpers/tests/configs/protostr/test_cost_layers.protostr +++ b/python/paddle/trainer_config_helpers/tests/configs/protostr/test_cost_layers.protostr @@ -225,9 +225,9 @@ parameters { name: "___crf_layer_0__.w0" size: 24 initial_mean: 0.0 - initial_std: 0.5 - dims: 4 + initial_std: 0.408248290464 dims: 6 + dims: 4 initial_strategy: 0 initial_smart: true } From 62eaa1fbabaf2ae751bc40d6be5c8cb3f7c2f291 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Thu, 1 Dec 2016 20:38:33 +0800 Subject: [PATCH 004/186] Move one line with identical value across loops out of the loop. --- paddle/gserver/layers/CRFLayer.cpp | 2 +- paddle/gserver/tests/test_CRFLayerGrad.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/paddle/gserver/layers/CRFLayer.cpp b/paddle/gserver/layers/CRFLayer.cpp index fa434cda00..b9fb7e54bd 100644 --- a/paddle/gserver/layers/CRFLayer.cpp +++ b/paddle/gserver/layers/CRFLayer.cpp @@ -91,8 +91,8 @@ void CRFLayer::backward(const UpdateCallback& callback) { const int* starts = label.sequenceStartPositions->getData(false); int numSequences = label.sequenceStartPositions->getSize() - 1; + bool needWGrad = weight_->getWGrad() ? true : false; for (int i = 0; i < numSequences; ++i) { - bool needWGrad = weight_->getWGrad() ? true : false; crfs_[i].backward(output.value->getData() + numClasses_ * starts[i], label.ids->getData() + starts[i], starts[i + 1] - starts[i], needWGrad); diff --git a/paddle/gserver/tests/test_CRFLayerGrad.cpp b/paddle/gserver/tests/test_CRFLayerGrad.cpp index bc1d5f3061..ad5149306c 100644 --- a/paddle/gserver/tests/test_CRFLayerGrad.cpp +++ b/paddle/gserver/tests/test_CRFLayerGrad.cpp @@ -108,7 +108,7 @@ TEST(CRFLayer, cost) { } inline real epsilon() { - return typeid(real) == typeid(double) ? 1e-10 : 0.05; + return typeid(real) == typeid(double) ? 1e-10 : 0.06; } TestConfig initTestConfig(size_t numClasses, bool withWeight) { From 35279398966bdd05fa56c5c4a017cc10f5224c99 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Wed, 21 Dec 2016 20:54:31 +0800 Subject: [PATCH 005/186] Fix merge and style error --- paddle/gserver/layers/CRFLayer.cpp | 15 ++++++----- paddle/gserver/layers/CRFLayer.h | 4 +-- paddle/gserver/tests/test_CRFLayerGrad.cpp | 30 ++++++++++------------ 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/paddle/gserver/layers/CRFLayer.cpp b/paddle/gserver/layers/CRFLayer.cpp index 16cc738488..0b54442009 100644 --- a/paddle/gserver/layers/CRFLayer.cpp +++ b/paddle/gserver/layers/CRFLayer.cpp @@ -42,8 +42,7 @@ bool CRFLayer::init(const LayerMap& layerMap, CHECK_EQ(parameters_[0]->getSize(), numClasses_ * (numClasses_ + 2)); parameter_ = parameters_[0]; - weight_.reset( - new Weight(numClasses_ + 2, numClasses_, parameter_)); + weight_.reset(new Weight(numClasses_ + 2, numClasses_, parameter_)); // We don't need sequenceStartPositions because each sample of output_ is // for the cost of one sequence. @@ -95,16 +94,18 @@ void CRFLayer::backward(const UpdateCallback& callback) { for (int i = 0; i < numSequences; ++i) { crfs_[i].backward(output.value->getData() + numClasses_ * starts[i], label.ids->getData() + starts[i], - starts[i + 1] - starts[i], needWGrad); - real instanceWeight = weightLayer_ ? - getInputValue(*weightLayer_)->getElement(i, 0) : real(1.0f); + starts[i + 1] - starts[i], + needWGrad); + real instanceWeight = weightLayer_ + ? getInputValue(*weightLayer_)->getElement(i, 0) + : real(1.0f); instanceWeight *= coeff_; MatrixPtr grad = output.grad->subRowMatrix(starts[i], starts[i + 1]); grad->add(*crfs_[i].getXGrad(), real(1.0f), instanceWeight); if (needWGrad) { - weight_->getWGrad()->add(*crfs_[i].getWGrad(), real(1.0f), - instanceWeight); + weight_->getWGrad()->add( + *crfs_[i].getWGrad(), real(1.0f), instanceWeight); } } diff --git a/paddle/gserver/layers/CRFLayer.h b/paddle/gserver/layers/CRFLayer.h index 000c48e2d5..3c7192913f 100644 --- a/paddle/gserver/layers/CRFLayer.h +++ b/paddle/gserver/layers/CRFLayer.h @@ -37,9 +37,9 @@ protected: size_t numClasses_; ParameterPtr parameter_; std::vector crfs_; - LayerPtr weightLayer_; // weight for each sequence + LayerPtr weightLayer_; // weight for each sequence std::unique_ptr weight_; // parameters - real coeff_; // weight for the layer + real coeff_; // weight for the layer }; } // namespace paddle diff --git a/paddle/gserver/tests/test_CRFLayerGrad.cpp b/paddle/gserver/tests/test_CRFLayerGrad.cpp index ad5149306c..6985977aed 100644 --- a/paddle/gserver/tests/test_CRFLayerGrad.cpp +++ b/paddle/gserver/tests/test_CRFLayerGrad.cpp @@ -21,13 +21,10 @@ limitations under the License. */ #include "TestUtil.h" #include "LayerGradUtil.h" -using namespace paddle; // NOLINT +using namespace paddle; // NOLINT -P_DECLARE_bool(use_gpu); -P_DECLARE_int32(gpu_id); -P_DECLARE_double(checkgrad_eps); -P_DECLARE_bool(thread_local_rand_use_global_seed); -P_DECLARE_bool(prev_batch_state); +DECLARE_int32(gpu_id); +DECLARE_bool(thread_local_rand_use_global_seed); static inline bool getNextSequence(std::vector& seq, int numClasses) { for (auto& v : seq) { @@ -96,8 +93,8 @@ TEST(CRFLayer, cost) { real diff = fabs(trueCost - cost); diff /= fabs(cost) < fabs(trueCost) ? fabs(cost) : fabs(trueCost); - VLOG(1) << "cost=" << cost << " trueCost=" << trueCost - << " diff=" << diff << std::endl; + VLOG(1) << "cost=" << cost << " trueCost=" << trueCost << " diff=" << diff + << std::endl; if (typeid(real) == typeid(double)) { // NOLINT EXPECT_LE(diff, 1e-10); } else { @@ -107,9 +104,7 @@ TEST(CRFLayer, cost) { } } -inline real epsilon() { - return typeid(real) == typeid(double) ? 1e-10 : 0.06; -} +inline real epsilon() { return typeid(real) == typeid(double) ? 1e-10 : 0.06; } TestConfig initTestConfig(size_t numClasses, bool withWeight) { TestConfig config; @@ -117,16 +112,17 @@ TestConfig initTestConfig(size_t numClasses, bool withWeight) { config.layerConfig.set_size(numClasses); config.biasSize = 0; - config.inputDefs.push_back({INPUT_SEQUENCE_DATA, "layer_0", - numClasses, numClasses * (numClasses + 2)}); + config.inputDefs.push_back({INPUT_SEQUENCE_DATA, + "layer_0", + numClasses, + numClasses * (numClasses + 2)}); config.layerConfig.add_inputs(); - config.inputDefs.push_back({INPUT_SEQUENCE_LABEL, "layer_label", - numClasses, 0}); + config.inputDefs.push_back( + {INPUT_SEQUENCE_LABEL, "layer_label", numClasses, 0}); config.layerConfig.add_inputs(); if (withWeight) { - config.inputDefs.push_back({INPUT_DENSE_DIM_DATA, "layer_weight", - 1, 0}); + config.inputDefs.push_back({INPUT_DENSE_DIM_DATA, "layer_weight", 1, 0}); config.layerConfig.add_inputs(); } From 5c3b8f6bd18bfadfa23e2a4eb4821bf383a3fd77 Mon Sep 17 00:00:00 2001 From: Peng Li Date: Wed, 21 Dec 2016 22:01:15 +0800 Subject: [PATCH 006/186] fix pre-commit style problem --- paddle/gserver/tests/test_CRFLayerGrad.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/paddle/gserver/tests/test_CRFLayerGrad.cpp b/paddle/gserver/tests/test_CRFLayerGrad.cpp index 6985977aed..c267dcd9ab 100644 --- a/paddle/gserver/tests/test_CRFLayerGrad.cpp +++ b/paddle/gserver/tests/test_CRFLayerGrad.cpp @@ -13,13 +13,13 @@ See the License for the specific language governing permissions and limitations under the License. */ #include +#include "ModelConfig.pb.h" #include "paddle/gserver/layers/DataLayer.h" -#include "paddle/trainer/Trainer.h" #include "paddle/gserver/layers/LinearChainCRF.h" -#include "ModelConfig.pb.h" +#include "paddle/trainer/Trainer.h" -#include "TestUtil.h" #include "LayerGradUtil.h" +#include "TestUtil.h" using namespace paddle; // NOLINT From e022c065d7728bd768addf7d723e6527d87b9311 Mon Sep 17 00:00:00 2001 From: caoying03 Date: Wed, 28 Dec 2016 10:08:09 +0800 Subject: [PATCH 007/186] enable dropout in average and max layer. --- python/paddle/trainer/config_parser.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py index 2eb7b17a0b..8397659fff 100644 --- a/python/paddle/trainer/config_parser.py +++ b/python/paddle/trainer/config_parser.py @@ -2305,9 +2305,10 @@ class MaxLayer(LayerBase): active_type='linear', device=None, bias=False, - output_max_index=None): + output_max_index=None, + **xargs): super(MaxLayer, self).__init__( - name, 'max', 0, inputs=inputs, device=device) + name, 'max', 0, inputs=inputs, device=device, **xargs) config_assert(len(self.inputs) == 1, 'MaxLayer must have 1 input') self.config.trans_type = trans_type self.config.active_type = active_type @@ -2609,14 +2610,16 @@ class AverageLayer(LayerBase): trans_type='non-seq', active_type='linear', device=None, - bias=False): + bias=False, + **xargs): super(AverageLayer, self).__init__( name, 'average', 0, inputs=inputs, device=device, - active_type=active_type) + active_type=active_type, + **xargs) self.config.average_strategy = average_strategy self.config.trans_type = trans_type config_assert(len(inputs) == 1, 'AverageLayer must have 1 input') @@ -3490,7 +3493,7 @@ def parse_config(config_file, config_arg_str): def parse_config_and_serialize(config_file, config_arg_str): try: config = parse_config(config_file, config_arg_str) - #logger.info(config) + # logger.info(config) return config.SerializeToString() except: traceback.print_exc() From ce939b30ba3f6dc50ca49fab56b907990d7c1de2 Mon Sep 17 00:00:00 2001 From: caoying03 Date: Wed, 28 Dec 2016 15:21:43 +0800 Subject: [PATCH 008/186] enable dropout rate in several computation layers. --- python/paddle/trainer/config_parser.py | 74 +++++++++++++++----------- 1 file changed, 42 insertions(+), 32 deletions(-) diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py index bdd0e001fe..18cbd44f49 100644 --- a/python/paddle/trainer/config_parser.py +++ b/python/paddle/trainer/config_parser.py @@ -1803,9 +1803,9 @@ class ConvTransLayer(ConvTransLayerBase): @config_layer('norm') class NormLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(NormLayer, self).__init__( - name, 'norm', 0, inputs=inputs, device=device) + name, 'norm', 0, inputs=inputs, device=device, **xargs) for input_index in xrange(len(self.inputs)): input_layer = self.get_input_layer(input_index) norm_conf = self.config.inputs[input_index].norm_conf @@ -1817,9 +1817,9 @@ class NormLayer(LayerBase): @config_layer('pool') class PoolLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(PoolLayer, self).__init__( - name, 'pool', 0, inputs=inputs, device=device) + name, 'pool', 0, inputs=inputs, device=device, **xargs) for input_index in xrange(len(self.inputs)): input_layer = self.get_input_layer(input_index) pool_conf = self.config.inputs[input_index].pool_conf @@ -1927,9 +1927,9 @@ class BatchNormLayer(LayerBase): @config_layer('trans') class TransLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(TransLayer, self).__init__( - name, 'trans', 0, inputs=inputs, device=device) + name, 'trans', 0, inputs=inputs, device=device, **xargs) config_assert( len(self.inputs) == 1, 'TransLayer must have one and only one input') @@ -1938,9 +1938,9 @@ class TransLayer(LayerBase): @config_layer('resize') class ResizeLayer(LayerBase): - def __init__(self, name, size, inputs, device=None): + def __init__(self, name, size, inputs, device=None, **xargs): super(ResizeLayer, self).__init__( - name, 'resize', size=size, inputs=inputs, device=device) + name, 'resize', size=size, inputs=inputs, device=device, **xargs) config_assert( len(self.inputs) == 1, 'ResizeLayer must have one and only one input') @@ -2270,9 +2270,10 @@ class ExpandLayer(LayerBase): inputs, trans_type='non-seq', device=None, - bias=False): + bias=False, + **xargs): super(ExpandLayer, self).__init__( - name, 'expand', 0, inputs=inputs, device=device) + name, 'expand', 0, inputs=inputs, device=device, **xargs) config_assert( len(self.inputs) == 2, 'ExpandLayer takes 2 and only 2 inputs') self.config.trans_type = trans_type @@ -2356,14 +2357,16 @@ class SequenceLastInstanceLayer(LayerBase): active_type='linear', trans_type='non-seq', device=None, - bias=False): + bias=False, + **xargs): super(SequenceLastInstanceLayer, self).__init__( name, 'seqlastins', 0, inputs=inputs, device=device, - active_type=active_type) + active_type=active_type, + **xargs) config_assert( len(inputs) == 1, 'SequenceLastInstanceLayer must have 1 input') self.config.trans_type = trans_type @@ -2400,14 +2403,16 @@ class SequenceConcatLayer(LayerBase): inputs, active_type='linear', device=None, - bias=False): + bias=False, + **xargs): super(SequenceConcatLayer, self).__init__( name, 'seqconcat', 0, inputs=inputs, device=device, - active_type=active_type) + active_type=active_type, + **xargs) config_assert( len(inputs) == 2, 'SequenceConcatLayer must have 2 inputs') for input_index in xrange(len(self.inputs)): @@ -2424,14 +2429,16 @@ class SequenceReshapeLayer(LayerBase): inputs, active_type='linear', device=None, - bias=False): + bias=False, + **xargs): super(SequenceReshapeLayer, self).__init__( name, 'seqreshape', size, inputs=inputs, device=device, - active_type=active_type) + active_type=active_type, + **xargs) config_assert( len(inputs) == 1, 'SequenceReshapeLayer must have 1 inputs') self.set_layer_size(size) @@ -2445,14 +2452,16 @@ class SubSequenceLayer(LayerBase): inputs, active_type='linear', device=None, - bias=False): + bias=False, + **xargs): super(SubSequenceLayer, self).__init__( name, 'subseq', 0, inputs=inputs, device=device, - active_type=active_type) + active_type=active_type, + **xargs) config_assert(len(inputs) == 3, 'SubSequenceLayer must have 3 inputs') input_layer0 = self.get_input_layer(0) size = input_layer0.size @@ -2462,9 +2471,9 @@ class SubSequenceLayer(LayerBase): @config_layer('out_prod') class OuterProdLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(OuterProdLayer, self).__init__( - name, 'out_prod', 0, inputs=inputs, device=device) + name, 'out_prod', 0, inputs=inputs, device=device, **xargs) config_assert(len(inputs) == 2, 'OuterProdLayer must have 2 inputs') input_layer0 = self.get_input_layer(0) input_layer1 = self.get_input_layer(1) @@ -2473,9 +2482,9 @@ class OuterProdLayer(LayerBase): @config_layer('power') class PowerLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(PowerLayer, self).__init__( - name, 'power', 0, inputs=inputs, device=device) + name, 'power', 0, inputs=inputs, device=device, **xargs) config_assert(len(inputs) == 2, 'PowerLayer must have 2 inputs') input_layer1 = self.get_input_layer(1) self.set_layer_size(input_layer1.size) @@ -2486,9 +2495,10 @@ class PowerLayer(LayerBase): @config_layer('slope_intercept') class SlopeInterceptLayer(LayerBase): - def __init__(self, name, inputs, slope=1.0, intercept=0.0, device=None): + def __init__(self, name, inputs, slope=1.0, intercept=0.0, + device=None, **xargs): super(SlopeInterceptLayer, self).__init__( - name, 'slope_intercept', 0, inputs=inputs, device=device) + name, 'slope_intercept', 0, inputs=inputs, device=device, **xargs) self.config.slope = slope self.config.intercept = intercept config_assert(len(inputs) == 1, 'SlopeInterceptLayer must have 1 input') @@ -2498,9 +2508,9 @@ class SlopeInterceptLayer(LayerBase): @config_layer('scaling') class ScalingLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(ScalingLayer, self).__init__( - name, 'scaling', 0, inputs=inputs, device=device) + name, 'scaling', 0, inputs=inputs, device=device, **xargs) config_assert(len(inputs) == 2, 'ScalingLayer must have 2 inputs') input_layer1 = self.get_input_layer(1) self.set_layer_size(input_layer1.size) @@ -2511,9 +2521,9 @@ class ScalingLayer(LayerBase): @config_layer('conv_shift') class ConvShiftLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(ConvShiftLayer, self).__init__( - name, 'conv_shift', 0, inputs=inputs, device=device) + name, 'conv_shift', 0, inputs=inputs, device=device, **xargs) config_assert(len(inputs) == 2, 'ConvShiftLayer must have 2 inputs') input_layer0 = self.get_input_layer(0) self.set_layer_size(input_layer0.size) @@ -2521,9 +2531,9 @@ class ConvShiftLayer(LayerBase): @config_layer('convex_comb') class ConvexCombinationLayer(LayerBase): - def __init__(self, name, size, inputs, device=None): + def __init__(self, name, size, inputs, device=None, **xargs): super(ConvexCombinationLayer, self).__init__( - name, 'convex_comb', size, inputs=inputs, device=device) + name, 'convex_comb', size, inputs=inputs, device=device, **xargs) config_assert( len(self.inputs) == 2, 'ConvexCombinationLayer must have 2 inputs') config_assert( @@ -2562,9 +2572,9 @@ class BilinearInterpLayer(LayerBase): @config_layer('sum_to_one_norm') class SumToOneNormLayer(LayerBase): - def __init__(self, name, inputs, device=None): + def __init__(self, name, inputs, device=None, **xargs): super(SumToOneNormLayer, self).__init__( - name, 'sum_to_one_norm', 0, inputs=inputs, device=device) + name, 'sum_to_one_norm', 0, inputs=inputs, device=device, **xargs) config_assert( len(self.inputs) == 1, 'SumToOneNormLayer must have 1 input') input_layer0 = self.get_input_layer(0) From 08a817e3fbb76c1d6dc003b14f8935eb54671558 Mon Sep 17 00:00:00 2001 From: caoying03 Date: Wed, 28 Dec 2016 16:12:02 +0800 Subject: [PATCH 009/186] delete unnecessary parameters and modifications for some mathmatical layers. --- python/paddle/trainer/config_parser.py | 127 +++++++++---------------- 1 file changed, 45 insertions(+), 82 deletions(-) diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py index 18cbd44f49..e0a43f6b6e 100644 --- a/python/paddle/trainer/config_parser.py +++ b/python/paddle/trainer/config_parser.py @@ -1803,9 +1803,8 @@ class ConvTransLayer(ConvTransLayerBase): @config_layer('norm') class NormLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): - super(NormLayer, self).__init__( - name, 'norm', 0, inputs=inputs, device=device, **xargs) + def __init__(self, name, inputs, **xargs): + super(NormLayer, self).__init__(name, 'norm', 0, inputs=inputs, **xargs) for input_index in xrange(len(self.inputs)): input_layer = self.get_input_layer(input_index) norm_conf = self.config.inputs[input_index].norm_conf @@ -1817,9 +1816,8 @@ class NormLayer(LayerBase): @config_layer('pool') class PoolLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): - super(PoolLayer, self).__init__( - name, 'pool', 0, inputs=inputs, device=device, **xargs) + def __init__(self, name, inputs, **xargs): + super(PoolLayer, self).__init__(name, 'pool', 0, inputs=inputs, **xargs) for input_index in xrange(len(self.inputs)): input_layer = self.get_input_layer(input_index) pool_conf = self.config.inputs[input_index].pool_conf @@ -1851,7 +1849,6 @@ class BatchNormLayer(LayerBase): inputs, active_type="linear", bias=True, - device=None, use_global_stats=True, moving_average_fraction=0.9, batch_norm_type=None, @@ -1893,7 +1890,6 @@ class BatchNormLayer(LayerBase): 0, active_type=active_type, inputs=inputs, - device=device, **xargs) if use_global_stats is not None: @@ -1927,9 +1923,9 @@ class BatchNormLayer(LayerBase): @config_layer('trans') class TransLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): + def __init__(self, name, inputs, **xargs): super(TransLayer, self).__init__( - name, 'trans', 0, inputs=inputs, device=device, **xargs) + name, 'trans', 0, inputs=inputs, **xargs) config_assert( len(self.inputs) == 1, 'TransLayer must have one and only one input') @@ -1938,9 +1934,9 @@ class TransLayer(LayerBase): @config_layer('resize') class ResizeLayer(LayerBase): - def __init__(self, name, size, inputs, device=None, **xargs): + def __init__(self, name, size, inputs, **xargs): super(ResizeLayer, self).__init__( - name, 'resize', size=size, inputs=inputs, device=device, **xargs) + name, 'resize', size=size, inputs=inputs, **xargs) config_assert( len(self.inputs) == 1, 'ResizeLayer must have one and only one input') @@ -2265,15 +2261,9 @@ def Generator( @config_layer('expand') class ExpandLayer(LayerBase): - def __init__(self, - name, - inputs, - trans_type='non-seq', - device=None, - bias=False, - **xargs): + def __init__(self, name, inputs, trans_type='non-seq', bias=False, **xargs): super(ExpandLayer, self).__init__( - name, 'expand', 0, inputs=inputs, device=device, **xargs) + name, 'expand', 0, inputs=inputs, **xargs) config_assert( len(self.inputs) == 2, 'ExpandLayer takes 2 and only 2 inputs') self.config.trans_type = trans_type @@ -2304,12 +2294,10 @@ class MaxLayer(LayerBase): inputs, trans_type='non-seq', active_type='linear', - device=None, bias=False, output_max_index=None, **xargs): - super(MaxLayer, self).__init__( - name, 'max', 0, inputs=inputs, device=device, **xargs) + super(MaxLayer, self).__init__(name, 'max', 0, inputs=inputs, **xargs) config_assert(len(self.inputs) == 1, 'MaxLayer must have 1 input') self.config.trans_type = trans_type self.config.active_type = active_type @@ -2356,7 +2344,6 @@ class SequenceLastInstanceLayer(LayerBase): inputs, active_type='linear', trans_type='non-seq', - device=None, bias=False, **xargs): super(SequenceLastInstanceLayer, self).__init__( @@ -2364,7 +2351,6 @@ class SequenceLastInstanceLayer(LayerBase): 'seqlastins', 0, inputs=inputs, - device=device, active_type=active_type, **xargs) config_assert( @@ -2378,39 +2364,32 @@ class SequenceLastInstanceLayer(LayerBase): @config_layer('seqfirstins') class SequenceFirstInstanceLayer(SequenceLastInstanceLayer): - def __init__( - self, - name, - inputs, - active_type='linear', - trans_type='non-seq', - device=None, - bias=False, ): + def __init__(self, + name, + inputs, + active_type='linear', + trans_type='non-seq', + bias=False, + **xargs): super(SequenceFirstInstanceLayer, self).__init__( name, inputs=inputs, active_type=active_type, device=device, - bias=bias) + bias=bias, + **xargs) self.config.trans_type = trans_type self.config.select_first = True @config_layer('seqconcat') class SequenceConcatLayer(LayerBase): - def __init__(self, - name, - inputs, - active_type='linear', - device=None, - bias=False, - **xargs): + def __init__(self, name, inputs, active_type='linear', bias=False, **xargs): super(SequenceConcatLayer, self).__init__( name, 'seqconcat', 0, inputs=inputs, - device=device, active_type=active_type, **xargs) config_assert( @@ -2428,7 +2407,6 @@ class SequenceReshapeLayer(LayerBase): size, inputs, active_type='linear', - device=None, bias=False, **xargs): super(SequenceReshapeLayer, self).__init__( @@ -2436,7 +2414,6 @@ class SequenceReshapeLayer(LayerBase): 'seqreshape', size, inputs=inputs, - device=device, active_type=active_type, **xargs) config_assert( @@ -2447,21 +2424,9 @@ class SequenceReshapeLayer(LayerBase): @config_layer('subseq') class SubSequenceLayer(LayerBase): - def __init__(self, - name, - inputs, - active_type='linear', - device=None, - bias=False, - **xargs): + def __init__(self, name, inputs, active_type='linear', bias=False, **xargs): super(SubSequenceLayer, self).__init__( - name, - 'subseq', - 0, - inputs=inputs, - device=device, - active_type=active_type, - **xargs) + name, 'subseq', 0, inputs=inputs, active_type=active_type, **xargs) config_assert(len(inputs) == 3, 'SubSequenceLayer must have 3 inputs') input_layer0 = self.get_input_layer(0) size = input_layer0.size @@ -2471,9 +2436,9 @@ class SubSequenceLayer(LayerBase): @config_layer('out_prod') class OuterProdLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): + def __init__(self, name, inputs, device=None): super(OuterProdLayer, self).__init__( - name, 'out_prod', 0, inputs=inputs, device=device, **xargs) + name, 'out_prod', 0, inputs=inputs, device=device) config_assert(len(inputs) == 2, 'OuterProdLayer must have 2 inputs') input_layer0 = self.get_input_layer(0) input_layer1 = self.get_input_layer(1) @@ -2482,9 +2447,9 @@ class OuterProdLayer(LayerBase): @config_layer('power') class PowerLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): + def __init__(self, name, inputs, device=None): super(PowerLayer, self).__init__( - name, 'power', 0, inputs=inputs, device=device, **xargs) + name, 'power', 0, inputs=inputs, device=device) config_assert(len(inputs) == 2, 'PowerLayer must have 2 inputs') input_layer1 = self.get_input_layer(1) self.set_layer_size(input_layer1.size) @@ -2495,8 +2460,13 @@ class PowerLayer(LayerBase): @config_layer('slope_intercept') class SlopeInterceptLayer(LayerBase): - def __init__(self, name, inputs, slope=1.0, intercept=0.0, - device=None, **xargs): + def __init__(self, + name, + inputs, + slope=1.0, + intercept=0.0, + device=None, + **xargs): super(SlopeInterceptLayer, self).__init__( name, 'slope_intercept', 0, inputs=inputs, device=device, **xargs) self.config.slope = slope @@ -2508,9 +2478,9 @@ class SlopeInterceptLayer(LayerBase): @config_layer('scaling') class ScalingLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): + def __init__(self, name, inputs, device=None): super(ScalingLayer, self).__init__( - name, 'scaling', 0, inputs=inputs, device=device, **xargs) + name, 'scaling', 0, inputs=inputs, device=device) config_assert(len(inputs) == 2, 'ScalingLayer must have 2 inputs') input_layer1 = self.get_input_layer(1) self.set_layer_size(input_layer1.size) @@ -2521,9 +2491,9 @@ class ScalingLayer(LayerBase): @config_layer('conv_shift') class ConvShiftLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): + def __init__(self, name, inputs, device=None): super(ConvShiftLayer, self).__init__( - name, 'conv_shift', 0, inputs=inputs, device=device, **xargs) + name, 'conv_shift', 0, inputs=inputs, device=device) config_assert(len(inputs) == 2, 'ConvShiftLayer must have 2 inputs') input_layer0 = self.get_input_layer(0) self.set_layer_size(input_layer0.size) @@ -2531,9 +2501,9 @@ class ConvShiftLayer(LayerBase): @config_layer('convex_comb') class ConvexCombinationLayer(LayerBase): - def __init__(self, name, size, inputs, device=None, **xargs): + def __init__(self, name, size, inputs, device=None): super(ConvexCombinationLayer, self).__init__( - name, 'convex_comb', size, inputs=inputs, device=device, **xargs) + name, 'convex_comb', size, inputs=inputs, device=device) config_assert( len(self.inputs) == 2, 'ConvexCombinationLayer must have 2 inputs') config_assert( @@ -2572,9 +2542,9 @@ class BilinearInterpLayer(LayerBase): @config_layer('sum_to_one_norm') class SumToOneNormLayer(LayerBase): - def __init__(self, name, inputs, device=None, **xargs): + def __init__(self, name, inputs, device=None): super(SumToOneNormLayer, self).__init__( - name, 'sum_to_one_norm', 0, inputs=inputs, device=device, **xargs) + name, 'sum_to_one_norm', 0, inputs=inputs, device=device) config_assert( len(self.inputs) == 1, 'SumToOneNormLayer must have 1 input') input_layer0 = self.get_input_layer(0) @@ -2619,17 +2589,10 @@ class AverageLayer(LayerBase): average_strategy='average', trans_type='non-seq', active_type='linear', - device=None, bias=False, **xargs): super(AverageLayer, self).__init__( - name, - 'average', - 0, - inputs=inputs, - device=device, - active_type=active_type, - **xargs) + name, 'average', 0, inputs=inputs, active_type=active_type, **xargs) self.config.average_strategy = average_strategy self.config.trans_type = trans_type config_assert(len(inputs) == 1, 'AverageLayer must have 1 input') @@ -2653,9 +2616,9 @@ class CosSimLayer(LayerBase): @config_layer('tensor') class TensorLayer(LayerBase): - def __init__(self, name, size, inputs, device=None, bias=True, **xargs): + def __init__(self, name, size, inputs, bias=True, **xargs): super(TensorLayer, self).__init__( - name, 'tensor', size, inputs=inputs, device=device, **xargs) + name, 'tensor', size, inputs=inputs, **xargs) config_assert(len(self.inputs) == 2, 'TensorLayer must have 2 inputs') config_assert(size > 0, 'size must be positive') config_assert(inputs[1].parameter_name == None, From cbbad4202ae10e0ef9851861c77eab820bf6cce3 Mon Sep 17 00:00:00 2001 From: caoying03 Date: Wed, 28 Dec 2016 16:20:59 +0800 Subject: [PATCH 010/186] delete the modification of SlopeInterceptLayer. --- python/paddle/trainer/config_parser.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py index e0a43f6b6e..b88853ea00 100644 --- a/python/paddle/trainer/config_parser.py +++ b/python/paddle/trainer/config_parser.py @@ -2460,15 +2460,9 @@ class PowerLayer(LayerBase): @config_layer('slope_intercept') class SlopeInterceptLayer(LayerBase): - def __init__(self, - name, - inputs, - slope=1.0, - intercept=0.0, - device=None, - **xargs): + def __init__(self, name, inputs, slope=1.0, intercept=0.0, device=None): super(SlopeInterceptLayer, self).__init__( - name, 'slope_intercept', 0, inputs=inputs, device=device, **xargs) + name, 'slope_intercept', 0, inputs=inputs, device=device) self.config.slope = slope self.config.intercept = intercept config_assert(len(inputs) == 1, 'SlopeInterceptLayer must have 1 input') From 55b96287aeb08305b90d3351c602c207d9c38290 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Thu, 23 Feb 2017 22:45:51 +0800 Subject: [PATCH 011/186] support rnn --- python/paddle/v2/layer.py | 87 +++++++++++++++++++++++++++++++++++---- 1 file changed, 79 insertions(+), 8 deletions(-) diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 507725ee4f..bebe7c6690 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -73,6 +73,7 @@ from paddle.trainer_config_helpers.config_parser_utils import \ parse_network_config as __parse__ from paddle.trainer_config_helpers.default_decorators import wrap_name_default +import activation import data_type __all__ = [ @@ -97,10 +98,11 @@ def parse_network(*outputs): class Layer(object): - def __init__(self, name, parent_layers): + def __init__(self, name, parent_layers, step_input=None): assert isinstance(parent_layers, dict) assert isinstance(name, basestring) self.name = name + self.step_input = step_input self.__parent_layers__ = parent_layers def to_proto(self, context): @@ -116,8 +118,14 @@ class Layer(object): else: v1_layer = map(lambda x: x.to_proto(context=context), self.__parent_layers__[layer_name]) + if layer_name == "input" and self.step_input is not None: + v1_layer.insert(0, self.step_input) kwargs[layer_name] = v1_layer + # memory may have the same name with some layer + if isinstance(self, MemoryV2): + return self.to_proto_impl(**kwargs) + if self.name not in context: context[self.name] = self.to_proto_impl(**kwargs) return context[self.name] @@ -133,7 +141,7 @@ def __convert_to_v2__(method_name, name_prefix, parent_names): wrapper = None class V2LayerImpl(Layer): - def __init__(self, name=None, **kwargs): + def __init__(self, name=None, step_input=None, **kwargs): parent_layers = dict() other_kwargs = dict() for pname in parent_names: @@ -143,7 +151,7 @@ def __convert_to_v2__(method_name, name_prefix, parent_names): if key not in parent_names: other_kwargs[key] = kwargs[key] - super(V2LayerImpl, self).__init__(name, parent_layers) + super(V2LayerImpl, self).__init__(name, parent_layers, step_input) self.__other_kwargs__ = other_kwargs if wrapper is not None: @@ -186,6 +194,22 @@ class DataLayerV2(Layer): return getattr(conf_helps, self.__method_name__)(name=self.name, **args) +class MemoryV2(Layer): + def __init__(self, name, size, **kwargs): + self.name = name + self.size = size + self.__kwargs__ = kwargs + super(MemoryV2, self).__init__(name=name, parent_layers=dict()) + + def to_proto_impl(self, **kwargs): + args = dict() + for each in kwargs: + args[each] = kwargs[each] + for each in self.__kwargs__: + args[each] = self.__kwargs__[each] + return conf_helps.memory(name=self.name, size=self.size, **args) + + data = DataLayerV2 fc = __convert_to_v2__('fc_layer', name_prefix='fc', parent_names=['input']) max_id = __convert_to_v2__( @@ -198,6 +222,13 @@ cross_entropy_cost = __convert_to_v2__( 'cross_entropy', name_prefix='cross_entropy', parent_names=['input', 'label']) +embedding = __convert_to_v2__( + 'embedding_layer', name_prefix='embedding', parent_names=['input']) +last_seq = __convert_to_v2__( + 'last_seq', name_prefix='last_seq', parent_names=['input']) +recurrent_group = __convert_to_v2__( + 'recurrent_group', name_prefix='recurrent_layer', parent_names=['input']) +memory = MemoryV2 if __name__ == '__main__': pixel = data(name='pixel', type=data_type.dense_vector(784)) @@ -208,8 +239,48 @@ if __name__ == '__main__': cost1 = classification_cost(input=inference, label=label) cost2 = cross_entropy_cost(input=inference, label=label) - print parse_network(cost1) - print parse_network(cost2) - print parse_network(cost1, cost2) - print parse_network(cost2) - print parse_network(inference, maxid) + mem = memory(name="rnn_state", size=10) + + # print parse_network(cost1) + # print parse_network(cost2) + # print parse_network(cost1, cost2) + # print parse_network(cost2) + # print parse_network(inference, maxid) + + dict_dim = 10 + word_dim = 8 + hidden_dim = 8 + label_dim = 3 + + def step(y): + mem = conf_helps.memory(name="rnn_state", size=hidden_dim) + out = conf_helps.fc_layer( + input=[y, mem], + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out + + def test(): + data1 = conf_helps.data_layer(name="word", size=dict_dim) + embd = conf_helps.embedding_layer(input=data1, size=word_dim) + conf_helps.recurrent_group(name="rnn", step=step, input=embd) + + # print __parse__(test) + + # yyyyyyyy + def new_step(y): + mem = memory(name="rnn_state", size=hidden_dim) + out = fc(input=[mem], + step_input=y, + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out.to_proto(dict()) + + data1 = data(name="word", type=data_type.integer_value(dict_dim)) + embd = embedding(input=data1, size=word_dim) + aaa = recurrent_group(name="rnn", step=new_step, input=embd) + print parse_network(aaa) From 92f52e3bb7a1a203a01d3641887c6bdfd03dce67 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Fri, 24 Feb 2017 13:46:59 +0800 Subject: [PATCH 012/186] add rnn test --- demo/mnist/api_train_v2.py | 3 ++ python/paddle/v2/layer.py | 43 +---------------- python/paddle/v2/tests/layer_test.py | 72 ++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 41 deletions(-) create mode 100644 python/paddle/v2/tests/layer_test.py diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 6fc01ce58b..5e66b7399a 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -3,6 +3,9 @@ import paddle.v2 as paddle import mnist_util +import pudb +pudb.set_trace() + def train_reader(): train_file = './data/raw_data/train' diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 44ebebcaea..e1952ce747 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -73,16 +73,15 @@ from paddle.trainer_config_helpers.config_parser_utils import \ parse_network_config as __parse__ from paddle.trainer_config_helpers.default_decorators import wrap_name_default -import activation -import data_type import activation import attr +import data_type __all__ = [ 'parse_network', 'data', 'fc', 'max_id', 'classification_cost', 'cross_entropy_cost', 'cross_entropy_with_selfnorm_cost', 'regression_cost', 'multi_binary_label_cross_entropy_cost', 'rank_cost', 'lambda_cost', - 'sum_cost', 'huber_cost' + 'sum_cost', 'huber_cost', 'memory', 'embedding', 'recurrent_group' ] @@ -294,41 +293,3 @@ if __name__ == '__main__': print parse_network(cost5, cost6) print parse_network(cost7, cost8, cost9, cost10, cost11) print parse_network(inference, maxid) - - dict_dim = 10 - word_dim = 8 - hidden_dim = 8 - label_dim = 3 - - def step(y): - mem = conf_helps.memory(name="rnn_state", size=hidden_dim) - out = conf_helps.fc_layer( - input=[y, mem], - size=hidden_dim, - act=activation.Tanh(), - bias_attr=True, - name="rnn_state") - return out - - def test(): - data1 = conf_helps.data_layer(name="word", size=dict_dim) - embd = conf_helps.embedding_layer(input=data1, size=word_dim) - conf_helps.recurrent_group(name="rnn", step=step, input=embd) - - # print __parse__(test) - - # yyyyyyyy - def new_step(y): - mem = memory(name="rnn_state", size=hidden_dim) - out = fc(input=[mem], - step_input=y, - size=hidden_dim, - act=activation.Tanh(), - bias_attr=True, - name="rnn_state") - return out.to_proto(dict()) - - data1 = data(name="word", type=data_type.integer_value(dict_dim)) - embd = embedding(input=data1, size=word_dim) - aaa = recurrent_group(name="rnn", step=new_step, input=embd) - print parse_network(aaa) diff --git a/python/paddle/v2/tests/layer_test.py b/python/paddle/v2/tests/layer_test.py new file mode 100644 index 0000000000..87e601a60a --- /dev/null +++ b/python/paddle/v2/tests/layer_test.py @@ -0,0 +1,72 @@ +# Copyright PaddlePaddle contributors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import difflib +import unittest + +import paddle.trainer_config_helpers as conf_helps +import paddle.v2.activation as activation +import paddle.v2.data_type as data_type +import paddle.v2.layer as layer +from paddle.trainer_config_helpers.config_parser_utils import \ + parse_network_config as parse_network + + +class RNNTest(unittest.TestCase): + def test_simple_rnn(self): + dict_dim = 10 + word_dim = 8 + hidden_dim = 8 + + def test_old_rnn(): + def step(y): + mem = conf_helps.memory(name="rnn_state", size=hidden_dim) + out = conf_helps.fc_layer( + input=[y, mem], + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out + + def test(): + data1 = conf_helps.data_layer(name="word", size=dict_dim) + embd = conf_helps.embedding_layer(input=data1, size=word_dim) + conf_helps.recurrent_group(name="rnn", step=step, input=embd) + + return str(parse_network(test)) + + def test_new_rnn(): + def new_step(y): + mem = layer.memory(name="rnn_state", size=hidden_dim) + out = layer.fc(input=[mem], + step_input=y, + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out.to_proto(dict()) + + data1 = layer.data( + name="word", type=data_type.integer_value(dict_dim)) + embd = layer.embedding(input=data1, size=word_dim) + aaa = layer.recurrent_group(name="rnn", step=new_step, input=embd) + return str(layer.parse_network(aaa)) + + diff = difflib.unified_diff(test_old_rnn().splitlines(1), + test_new_rnn().splitlines(1)) + print ''.join(diff) + + +if __name__ == '__main__': + unittest.main() From 6b80c2b4f9a626efa911f715dcb45bee99d80729 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Fri, 24 Feb 2017 15:29:11 +0800 Subject: [PATCH 013/186] add cost test --- python/paddle/v2/layer.py | 2 -- python/paddle/v2/tests/layer_test.py | 35 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index e1952ce747..f333c0af96 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -281,8 +281,6 @@ if __name__ == '__main__': cost10 = sum_cost(input=inference) cost11 = huber_cost(input=score, label=label) - mem = memory(name="rnn_state", size=10) - # print parse_network(cost1) # print parse_network(cost2) # print parse_network(cost1, cost2) diff --git a/python/paddle/v2/tests/layer_test.py b/python/paddle/v2/tests/layer_test.py index 87e601a60a..6c4b458914 100644 --- a/python/paddle/v2/tests/layer_test.py +++ b/python/paddle/v2/tests/layer_test.py @@ -18,10 +18,45 @@ import paddle.trainer_config_helpers as conf_helps import paddle.v2.activation as activation import paddle.v2.data_type as data_type import paddle.v2.layer as layer +import paddle.v2.attr as attr from paddle.trainer_config_helpers.config_parser_utils import \ parse_network_config as parse_network +class CostLyaerTest(unittest.TestCase): + def test_cost_layer(self): + pixel = layer.data(name='pixel', type=data_type.dense_vector(784)) + label = layer.data(name='label', type=data_type.integer_value(10)) + weight = layer.data(name='weight', type=data_type.dense_vector(10)) + score = layer.data(name='score', type=data_type.dense_vector(1)) + hidden = layer.fc(input=pixel, + size=100, + act=activation.Sigmoid(), + param_attr=attr.Param(name='hidden')) + inference = layer.fc(input=hidden, size=10, act=activation.Softmax()) + + cost1 = layer.classification_cost(input=inference, label=label) + cost2 = layer.classification_cost( + input=inference, label=label, weight=weight) + cost3 = layer.cross_entropy_cost(input=inference, label=label) + cost4 = layer.cross_entropy_with_selfnorm_cost( + input=inference, label=label) + cost5 = layer.regression_cost(input=inference, label=label) + cost6 = layer.regression_cost( + input=inference, label=label, weight=weight) + cost7 = layer.multi_binary_label_cross_entropy_cost( + input=inference, label=label) + cost8 = layer.rank_cost(left=score, right=score, label=score) + cost9 = layer.lambda_cost(input=inference, score=score) + cost10 = layer.sum_cost(input=inference) + cost11 = layer.huber_cost(input=score, label=label) + + print layer.parse_network(cost1, cost2) + print layer.parse_network(cost3, cost4) + print layer.parse_network(cost5, cost6) + print layer.parse_network(cost7, cost8, cost9, cost10, cost11) + + class RNNTest(unittest.TestCase): def test_simple_rnn(self): dict_dim = 10 From db92e3c884a586d0f28dcc7c7e3be99c1e6203f6 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Fri, 24 Feb 2017 16:04:59 +0800 Subject: [PATCH 014/186] refine code --- python/paddle/v2/layer.py | 35 ---------------------------- python/paddle/v2/tests/layer_test.py | 7 +++--- 2 files changed, 4 insertions(+), 38 deletions(-) diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index f333c0af96..5ecc96c685 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -256,38 +256,3 @@ sum_cost = __convert_to_v2__( 'sum_cost', name_prefix='sum_cost', parent_names=['input']) huber_cost = __convert_to_v2__( 'huber_cost', name_prefix='huber_cost', parent_names=['input', 'label']) - -if __name__ == '__main__': - pixel = data(name='pixel', type=data_type.dense_vector(784)) - label = data(name='label', type=data_type.integer_value(10)) - weight = data(name='weight', type=data_type.dense_vector(10)) - score = data(name='score', type=data_type.dense_vector(1)) - - hidden = fc(input=pixel, - size=100, - act=activation.Sigmoid(), - param_attr=attr.Param(name='hidden')) - inference = fc(input=hidden, size=10, act=activation.Softmax()) - maxid = max_id(input=inference) - cost1 = classification_cost(input=inference, label=label) - cost2 = classification_cost(input=inference, label=label, weight=weight) - cost3 = cross_entropy_cost(input=inference, label=label) - cost4 = cross_entropy_with_selfnorm_cost(input=inference, label=label) - cost5 = regression_cost(input=inference, label=label) - cost6 = regression_cost(input=inference, label=label, weight=weight) - cost7 = multi_binary_label_cross_entropy_cost(input=inference, label=label) - cost8 = rank_cost(left=score, right=score, label=score) - cost9 = lambda_cost(input=inference, score=score) - cost10 = sum_cost(input=inference) - cost11 = huber_cost(input=score, label=label) - - # print parse_network(cost1) - # print parse_network(cost2) - # print parse_network(cost1, cost2) - # print parse_network(cost2) - # print parse_network(inference, maxid) - print parse_network(cost1, cost2) - print parse_network(cost3, cost4) - print parse_network(cost5, cost6) - print parse_network(cost7, cost8, cost9, cost10, cost11) - print parse_network(inference, maxid) diff --git a/python/paddle/v2/tests/layer_test.py b/python/paddle/v2/tests/layer_test.py index 6c4b458914..2958cbd9eb 100644 --- a/python/paddle/v2/tests/layer_test.py +++ b/python/paddle/v2/tests/layer_test.py @@ -16,9 +16,9 @@ import unittest import paddle.trainer_config_helpers as conf_helps import paddle.v2.activation as activation +import paddle.v2.attr as attr import paddle.v2.data_type as data_type import paddle.v2.layer as layer -import paddle.v2.attr as attr from paddle.trainer_config_helpers.config_parser_utils import \ parse_network_config as parse_network @@ -95,8 +95,9 @@ class RNNTest(unittest.TestCase): data1 = layer.data( name="word", type=data_type.integer_value(dict_dim)) embd = layer.embedding(input=data1, size=word_dim) - aaa = layer.recurrent_group(name="rnn", step=new_step, input=embd) - return str(layer.parse_network(aaa)) + rnn_layer = layer.recurrent_group( + name="rnn", step=new_step, input=embd) + return str(layer.parse_network(rnn_layer)) diff = difflib.unified_diff(test_old_rnn().splitlines(1), test_new_rnn().splitlines(1)) From e4327a7cd9408839900c0f82b4aedf2ce6672cbd Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Fri, 24 Feb 2017 16:11:02 +0800 Subject: [PATCH 015/186] add CMakeLists.txt --- python/paddle/v2/tests/CMakeLists.txt | 4 ++++ python/paddle/v2/tests/layer_test.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 python/paddle/v2/tests/CMakeLists.txt diff --git a/python/paddle/v2/tests/CMakeLists.txt b/python/paddle/v2/tests/CMakeLists.txt new file mode 100644 index 0000000000..dc5efdab6a --- /dev/null +++ b/python/paddle/v2/tests/CMakeLists.txt @@ -0,0 +1,4 @@ +add_test(NAME layer_test + COMMAND ${PROJ_ROOT}/paddle/.set_python_path.sh -d ${PROJ_ROOT}/python/ + ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/layer_test.py + WORKING_DIRECTORY ${PROJ_ROOT}/python/paddle) diff --git a/python/paddle/v2/tests/layer_test.py b/python/paddle/v2/tests/layer_test.py index 2958cbd9eb..83c8c26d6b 100644 --- a/python/paddle/v2/tests/layer_test.py +++ b/python/paddle/v2/tests/layer_test.py @@ -23,7 +23,7 @@ from paddle.trainer_config_helpers.config_parser_utils import \ parse_network_config as parse_network -class CostLyaerTest(unittest.TestCase): +class CostLayerTest(unittest.TestCase): def test_cost_layer(self): pixel = layer.data(name='pixel', type=data_type.dense_vector(784)) label = layer.data(name='label', type=data_type.integer_value(10)) From f13f1f1ce5cfe428c272e90f85dc9a9c1ed55f6b Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Fri, 24 Feb 2017 17:37:38 +0800 Subject: [PATCH 016/186] use test_layer instead of layer_test --- python/paddle/v2/tests/test_layer.py | 57 +++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/python/paddle/v2/tests/test_layer.py b/python/paddle/v2/tests/test_layer.py index b600e8cf76..73d769a358 100644 --- a/python/paddle/v2/tests/test_layer.py +++ b/python/paddle/v2/tests/test_layer.py @@ -51,12 +51,57 @@ class CostLayerTest(unittest.TestCase): cost10 = layer.sum_cost(input=inference) cost11 = layer.huber_cost(input=score, label=label) - print dir(layer) - layer.parse_network(cost1, cost2) - print dir(layer) - #print layer.parse_network(cost3, cost4) - #print layer.parse_network(cost5, cost6) - #print layer.parse_network(cost7, cost8, cost9, cost10, cost11) + print layer.parse_network(cost1, cost2) + print layer.parse_network(cost3, cost4) + print layer.parse_network(cost5, cost6) + print layer.parse_network(cost7, cost8, cost9, cost10, cost11) + + +class RNNTest(unittest.TestCase): + def test_simple_rnn(self): + dict_dim = 10 + word_dim = 8 + hidden_dim = 8 + + def test_old_rnn(): + def step(y): + mem = conf_helps.memory(name="rnn_state", size=hidden_dim) + out = conf_helps.fc_layer( + input=[y, mem], + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out + + def test(): + data1 = conf_helps.data_layer(name="word", size=dict_dim) + embd = conf_helps.embedding_layer(input=data1, size=word_dim) + conf_helps.recurrent_group(name="rnn", step=step, input=embd) + + return str(parse_network(test)) + + def test_new_rnn(): + def new_step(y): + mem = layer.memory(name="rnn_state", size=hidden_dim) + out = layer.fc(input=[mem], + step_input=y, + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out.to_proto(dict()) + + data1 = layer.data( + name="word", type=data_type.integer_value(dict_dim)) + embd = layer.embedding(input=data1, size=word_dim) + rnn_layer = layer.recurrent_group( + name="rnn", step=new_step, input=embd) + return str(layer.parse_network(rnn_layer)) + + diff = difflib.unified_diff(test_old_rnn().splitlines(1), + test_new_rnn().splitlines(1)) + print ''.join(diff) if __name__ == '__main__': From ad4ab5ac811d90dd2bbb661ad34ba5ee3aa510a1 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Sun, 26 Feb 2017 16:29:02 +0800 Subject: [PATCH 017/186] remove step_input in recurrent_group step_input --- .../paddle/trainer_config_helpers/layers.py | 8 ++- python/paddle/v2/layer.py | 61 +++++++++++++++---- python/paddle/v2/tests/test_layer.py | 13 ++-- 3 files changed, 62 insertions(+), 20 deletions(-) diff --git a/python/paddle/trainer_config_helpers/layers.py b/python/paddle/trainer_config_helpers/layers.py index 00aef80691..4e200517fc 100755 --- a/python/paddle/trainer_config_helpers/layers.py +++ b/python/paddle/trainer_config_helpers/layers.py @@ -3042,7 +3042,8 @@ def recurrent_group(step, reverse=False, name=None, targetInlink=None, - is_generating=False): + is_generating=False, + in_args_converter=None): """ Recurrent layer group is an extremely flexible recurrent unit in PaddlePaddle. As long as the user defines the calculation done within a @@ -3185,7 +3186,10 @@ def recurrent_group(step, assert (is_generating != has_LayerOutput) - layer_outs = step(*in_args) + if in_args_converter is None: + layer_outs = step(*in_args) + else: + layer_outs = step(*in_args_converter(*in_args)).to_proto(dict()) if isinstance(layer_outs, LayerOutput): layer_outs = [layer_outs] diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 5ecc96c685..44c7661b24 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -73,8 +73,6 @@ from paddle.trainer_config_helpers.config_parser_utils import \ parse_network_config as __parse__ from paddle.trainer_config_helpers.default_decorators import wrap_name_default -import activation -import attr import data_type __all__ = [ @@ -101,11 +99,10 @@ def parse_network(*outputs): class Layer(object): - def __init__(self, name, parent_layers, step_input=None): + def __init__(self, name, parent_layers): assert isinstance(parent_layers, dict) assert isinstance(name, basestring) self.name = name - self.step_input = step_input self.__parent_layers__ = parent_layers def to_proto(self, context): @@ -121,12 +118,13 @@ class Layer(object): else: v1_layer = map(lambda x: x.to_proto(context=context), self.__parent_layers__[layer_name]) - if layer_name == "input" and self.step_input is not None: - v1_layer.insert(0, self.step_input) kwargs[layer_name] = v1_layer + if self.name is None: + return self.to_proto_impl(**kwargs) + # memory may have the same name with some layer - if isinstance(self, MemoryV2): + if isinstance(self, MemoryV2) or isinstance(self, LayerOutputV2): return self.to_proto_impl(**kwargs) if self.name not in context: @@ -144,7 +142,7 @@ def __convert_to_v2__(method_name, name_prefix, parent_names): wrapper = None class V2LayerImpl(Layer): - def __init__(self, name=None, step_input=None, **kwargs): + def __init__(self, name=None, **kwargs): parent_layers = dict() other_kwargs = dict() for pname in parent_names: @@ -155,7 +153,7 @@ def __convert_to_v2__(method_name, name_prefix, parent_names): if key not in parent_names: other_kwargs[key] = kwargs[key] - super(V2LayerImpl, self).__init__(name, parent_layers, step_input) + super(V2LayerImpl, self).__init__(name, parent_layers) self.__other_kwargs__ = other_kwargs if wrapper is not None: @@ -214,6 +212,48 @@ class MemoryV2(Layer): return conf_helps.memory(name=self.name, size=self.size, **args) +class LayerOutputV2(Layer): + def __init__(self, layer_output): + assert isinstance(layer_output, conf_helps.LayerOutput) + self.layer_output = layer_output + super(LayerOutputV2, self).__init__( + name=layer_output.name, parent_layers=dict()) + + def to_proto_impl(self): + return self.layer_output + + +class RecurrentGroupV2(Layer): + def __init__(self, name, **kwargs): + self.__parent_names__ = ['input'] + other_kwargs = dict() + parent_layers = dict() + for pname in self.__parent_names__: + if kwargs.has_key(pname): + parent_layers[pname] = kwargs[pname] + for key in kwargs.keys(): + if key not in self.__parent_names__: + other_kwargs[key] = kwargs[key] + self.__kwargs__ = other_kwargs + + super(RecurrentGroupV2, self).__init__( + name=name, parent_layers=parent_layers) + + def to_proto_impl(self, **kwargs): + def in_args_converter(in_args): + if not isinstance(in_args, collections.Sequence): + in_args = [in_args] + return [LayerOutputV2(input) for input in in_args] + + args = dict() + for each in kwargs: + args[each] = kwargs[each] + for each in self.__kwargs__: + args[each] = self.__kwargs__[each] + return conf_helps.recurrent_group( + name=self.name, in_args_converter=in_args_converter, **args) + + data = DataLayerV2 fc = __convert_to_v2__('fc_layer', name_prefix='fc', parent_names=['input']) max_id = __convert_to_v2__( @@ -234,8 +274,7 @@ embedding = __convert_to_v2__( 'embedding_layer', name_prefix='embedding', parent_names=['input']) last_seq = __convert_to_v2__( 'last_seq', name_prefix='last_seq', parent_names=['input']) -recurrent_group = __convert_to_v2__( - 'recurrent_group', name_prefix='recurrent_layer', parent_names=['input']) +recurrent_group = RecurrentGroupV2 memory = MemoryV2 cross_entropy_with_selfnorm_cost = __convert_to_v2__( diff --git a/python/paddle/v2/tests/test_layer.py b/python/paddle/v2/tests/test_layer.py index 73d769a358..04c0fc7cb0 100644 --- a/python/paddle/v2/tests/test_layer.py +++ b/python/paddle/v2/tests/test_layer.py @@ -63,7 +63,7 @@ class RNNTest(unittest.TestCase): word_dim = 8 hidden_dim = 8 - def test_old_rnn(): + def parse_old_rnn(): def step(y): mem = conf_helps.memory(name="rnn_state", size=hidden_dim) out = conf_helps.fc_layer( @@ -81,16 +81,15 @@ class RNNTest(unittest.TestCase): return str(parse_network(test)) - def test_new_rnn(): + def parse_new_rnn(): def new_step(y): mem = layer.memory(name="rnn_state", size=hidden_dim) - out = layer.fc(input=[mem], - step_input=y, + out = layer.fc(input=[y, mem], size=hidden_dim, act=activation.Tanh(), bias_attr=True, name="rnn_state") - return out.to_proto(dict()) + return out data1 = layer.data( name="word", type=data_type.integer_value(dict_dim)) @@ -99,8 +98,8 @@ class RNNTest(unittest.TestCase): name="rnn", step=new_step, input=embd) return str(layer.parse_network(rnn_layer)) - diff = difflib.unified_diff(test_old_rnn().splitlines(1), - test_new_rnn().splitlines(1)) + diff = difflib.unified_diff(parse_old_rnn().splitlines(1), + parse_new_rnn().splitlines(1)) print ''.join(diff) From 632ad5c9e25c906b0189be308ecf22c2409abb2c Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Mon, 27 Feb 2017 19:59:38 +0800 Subject: [PATCH 018/186] support sequence_rnn_multi_input --- demo/mnist/api_train_v2.py | 3 - python/paddle/trainer/config_parser.py | 6 +- python/paddle/v2/layer.py | 30 ++++- python/paddle/v2/tests/CMakeLists.txt | 6 +- python/paddle/v2/tests/test_layer.py | 50 -------- python/paddle/v2/tests/test_rnn_layer.py | 143 +++++++++++++++++++++++ 6 files changed, 178 insertions(+), 60 deletions(-) create mode 100644 python/paddle/v2/tests/test_rnn_layer.py diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 5e66b7399a..6fc01ce58b 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -3,9 +3,6 @@ import paddle.v2 as paddle import mnist_util -import pudb -pudb.set_trace() - def train_reader(): train_file = './data/raw_data/train' diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py index da937152ee..487d4dfd5b 100644 --- a/python/paddle/trainer/config_parser.py +++ b/python/paddle/trainer/config_parser.py @@ -3474,6 +3474,8 @@ def update_g_config(): for name in g_config.model_config.output_layer_names: assert name in g_layer_map, \ 'input name "%s" does not correspond to a layer name' % name + for hook in _parse_config_hooks: + hook() return g_config @@ -3485,8 +3487,8 @@ def parse_config(trainer_config, config_arg_str): passed to config script as a dictionary CONFIG_ARGS ''' init_config_environment() - for hook in _parse_config_hooks: - hook() + # for hook in _parse_config_hooks: + # hook() config_args = {} diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 44c7661b24..5328070456 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -124,11 +124,13 @@ class Layer(object): return self.to_proto_impl(**kwargs) # memory may have the same name with some layer - if isinstance(self, MemoryV2) or isinstance(self, LayerOutputV2): + if isinstance(self, MemoryV2): return self.to_proto_impl(**kwargs) + # store v1 API's layer_output in context with the key of it's name. if self.name not in context: context[self.name] = self.to_proto_impl(**kwargs) + return context[self.name] def to_proto_impl(self, **kwargs): @@ -200,8 +202,19 @@ class MemoryV2(Layer): def __init__(self, name, size, **kwargs): self.name = name self.size = size - self.__kwargs__ = kwargs - super(MemoryV2, self).__init__(name=name, parent_layers=dict()) + + parent_names = ['boot_layer'] + parent_layers = dict() + other_kwargs = dict() + for pname in parent_names: + if kwargs.has_key(pname): + parent_layers[pname] = kwargs[pname] + + for key in kwargs.keys(): + if key not in parent_names: + other_kwargs[key] = kwargs[key] + super(MemoryV2, self).__init__(name=name, parent_layers=parent_layers) + self.__kwargs__ = other_kwargs def to_proto_impl(self, **kwargs): args = dict() @@ -209,10 +222,16 @@ class MemoryV2(Layer): args[each] = kwargs[each] for each in self.__kwargs__: args[each] = self.__kwargs__[each] + return conf_helps.memory(name=self.name, size=self.size, **args) class LayerOutputV2(Layer): + """ + LayerOutputV2 is used to store the result of LayerOutput in v1 api. + It will not store it's parents because layer_output has been parsed already. + """ + def __init__(self, layer_output): assert isinstance(layer_output, conf_helps.LayerOutput) self.layer_output = layer_output @@ -239,8 +258,11 @@ class RecurrentGroupV2(Layer): super(RecurrentGroupV2, self).__init__( name=name, parent_layers=parent_layers) + wrapper = wrap_name_default(name_prefix='recurrent_group') + __init__ = wrapper(__init__) + def to_proto_impl(self, **kwargs): - def in_args_converter(in_args): + def in_args_converter(*in_args): if not isinstance(in_args, collections.Sequence): in_args = [in_args] return [LayerOutputV2(input) for input in in_args] diff --git a/python/paddle/v2/tests/CMakeLists.txt b/python/paddle/v2/tests/CMakeLists.txt index ceb71c1454..bc0f247927 100644 --- a/python/paddle/v2/tests/CMakeLists.txt +++ b/python/paddle/v2/tests/CMakeLists.txt @@ -1,3 +1,7 @@ add_test(NAME test_v2_layer COMMAND ${PROJ_ROOT}/paddle/.set_python_path.sh -d ${PROJ_ROOT}/python/ - ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_layer.py + ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_layer.py) + +add_test(NAME test_v2_rnn_layer + COMMAND ${PROJ_ROOT}/paddle/.set_python_path.sh -d ${PROJ_ROOT}/python/ + ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_rnn_layer.py) diff --git a/python/paddle/v2/tests/test_layer.py b/python/paddle/v2/tests/test_layer.py index 04c0fc7cb0..41d9683464 100644 --- a/python/paddle/v2/tests/test_layer.py +++ b/python/paddle/v2/tests/test_layer.py @@ -11,16 +11,12 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -import difflib import unittest -import paddle.trainer_config_helpers as conf_helps import paddle.v2.activation as activation import paddle.v2.attr as attr import paddle.v2.data_type as data_type import paddle.v2.layer as layer -from paddle.trainer_config_helpers.config_parser_utils import \ - parse_network_config as parse_network pixel = layer.data(name='pixel', type=data_type.dense_vector(784)) label = layer.data(name='label', type=data_type.integer_value(10)) @@ -57,51 +53,5 @@ class CostLayerTest(unittest.TestCase): print layer.parse_network(cost7, cost8, cost9, cost10, cost11) -class RNNTest(unittest.TestCase): - def test_simple_rnn(self): - dict_dim = 10 - word_dim = 8 - hidden_dim = 8 - - def parse_old_rnn(): - def step(y): - mem = conf_helps.memory(name="rnn_state", size=hidden_dim) - out = conf_helps.fc_layer( - input=[y, mem], - size=hidden_dim, - act=activation.Tanh(), - bias_attr=True, - name="rnn_state") - return out - - def test(): - data1 = conf_helps.data_layer(name="word", size=dict_dim) - embd = conf_helps.embedding_layer(input=data1, size=word_dim) - conf_helps.recurrent_group(name="rnn", step=step, input=embd) - - return str(parse_network(test)) - - def parse_new_rnn(): - def new_step(y): - mem = layer.memory(name="rnn_state", size=hidden_dim) - out = layer.fc(input=[y, mem], - size=hidden_dim, - act=activation.Tanh(), - bias_attr=True, - name="rnn_state") - return out - - data1 = layer.data( - name="word", type=data_type.integer_value(dict_dim)) - embd = layer.embedding(input=data1, size=word_dim) - rnn_layer = layer.recurrent_group( - name="rnn", step=new_step, input=embd) - return str(layer.parse_network(rnn_layer)) - - diff = difflib.unified_diff(parse_old_rnn().splitlines(1), - parse_new_rnn().splitlines(1)) - print ''.join(diff) - - if __name__ == '__main__': unittest.main() diff --git a/python/paddle/v2/tests/test_rnn_layer.py b/python/paddle/v2/tests/test_rnn_layer.py new file mode 100644 index 0000000000..bf2c4db61a --- /dev/null +++ b/python/paddle/v2/tests/test_rnn_layer.py @@ -0,0 +1,143 @@ +# Copyright PaddlePaddle contributors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import difflib +import unittest + +import paddle.trainer_config_helpers as conf_helps +import paddle.v2.activation as activation +import paddle.v2.data_type as data_type +import paddle.v2.layer as layer +from paddle.trainer_config_helpers.config_parser_utils import \ + parse_network_config as parse_network + + +class RNNTest(unittest.TestCase): + def test_simple_rnn(self): + dict_dim = 10 + word_dim = 8 + hidden_dim = 8 + + def parse_old_rnn(): + def step(y): + mem = conf_helps.memory(name="rnn_state", size=hidden_dim) + out = conf_helps.fc_layer( + input=[y, mem], + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out + + def test(): + data = conf_helps.data_layer(name="word", size=dict_dim) + embd = conf_helps.embedding_layer(input=data, size=word_dim) + conf_helps.recurrent_group(name="rnn", step=step, input=embd) + + return str(parse_network(test)) + + def parse_new_rnn(): + def new_step(y): + mem = layer.memory(name="rnn_state", size=hidden_dim) + out = layer.fc(input=[y, mem], + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out + + data = layer.data( + name="word", type=data_type.integer_value(dict_dim)) + embd = layer.embedding(input=data, size=word_dim) + rnn_layer = layer.recurrent_group( + name="rnn", step=new_step, input=embd) + return str(layer.parse_network(rnn_layer)) + + diff = difflib.unified_diff(parse_old_rnn().splitlines(1), + parse_new_rnn().splitlines(1)) + print ''.join(diff) + + def test_sequence_rnn_multi_input(self): + dict_dim = 10 + word_dim = 8 + hidden_dim = 8 + label_dim = 3 + + def parse_old_rnn(): + def step(y, wid): + z = conf_helps.embedding_layer(input=wid, size=word_dim) + mem = conf_helps.memory(name="rnn_state", size=hidden_dim) + out = conf_helps.fc_layer( + input=[y, z, mem], + size=hidden_dim, + act=conf_helps.TanhActivation(), + bias_attr=True, + name="rnn_state") + return out + + def test(): + data = conf_helps.data_layer(name="word", size=dict_dim) + label = conf_helps.data_layer(name="label", size=label_dim) + emb = conf_helps.embedding_layer(input=data, size=word_dim) + out = conf_helps.recurrent_group( + name="rnn", step=step, input=[emb, data]) + + rep = conf_helps.last_seq(input=out) + prob = conf_helps.fc_layer( + size=label_dim, + input=rep, + act=conf_helps.SoftmaxActivation(), + bias_attr=True) + + conf_helps.outputs( + conf_helps.classification_cost( + input=prob, label=label)) + + return str(parse_network(test)) + + def parse_new_rnn(): + def step(y, wid): + z = layer.embedding(input=wid, size=word_dim) + mem = layer.memory(name="rnn_state", size=hidden_dim) + out = layer.fc(input=[y, z, mem], + size=hidden_dim, + act=activation.Tanh(), + bias_attr=True, + name="rnn_state") + return out + + data = layer.data( + name="word", type=data_type.dense_vector(dict_dim)) + label = layer.data( + name="label", type=data_type.dense_vector(label_dim)) + emb = layer.embedding(input=data, size=word_dim) + out = layer.recurrent_group( + name="rnn", step=step, input=[emb, data]) + + rep = layer.last_seq(input=out) + prob = layer.fc(size=label_dim, + input=rep, + act=activation.Softmax(), + bias_attr=True) + + cost = layer.classification_cost(input=prob, label=label) + + return str(layer.parse_network(cost)) + + diff = difflib.unified_diff(parse_old_rnn().splitlines(1), + parse_new_rnn().splitlines(1)) + print ''.join(diff) + + +if __name__ == '__main__': + unittest.main() From 876d597495015ba416639af7426258d32587986e Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Mon, 27 Feb 2017 20:41:00 +0800 Subject: [PATCH 019/186] memory have same name with some layer --- python/paddle/v2/layer.py | 2 ++ python/paddle/v2/tests/CMakeLists.txt | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 6dea3afbcf..dbd802bee8 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -139,6 +139,8 @@ class Layer(object): if self.name is None: return self.to_proto_impl(**kwargs) + elif isinstance(self, MemoryV2): + return self.to_proto_impl(**kwargs) elif self.name not in context: context[self.name] = self.to_proto_impl(**kwargs) diff --git a/python/paddle/v2/tests/CMakeLists.txt b/python/paddle/v2/tests/CMakeLists.txt index bc0f247927..b2f43c42de 100644 --- a/python/paddle/v2/tests/CMakeLists.txt +++ b/python/paddle/v2/tests/CMakeLists.txt @@ -1,7 +1,11 @@ add_test(NAME test_v2_layer COMMAND ${PROJ_ROOT}/paddle/.set_python_path.sh -d ${PROJ_ROOT}/python/ - ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_layer.py) + ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_layer.py + WORKING_DIRECTORY ${PROJ_ROOT}/python/paddle) add_test(NAME test_v2_rnn_layer COMMAND ${PROJ_ROOT}/paddle/.set_python_path.sh -d ${PROJ_ROOT}/python/ ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_rnn_layer.py) + +add_test(NAME test_v2_api + COMMAND bash ${PROJ_ROOT}/python/paddle/v2/tests/run_tests.sh ${PYTHON_EXECUTABLE}) From 32b168c78ff807ca178bfb016b3d178178b66202 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Tue, 28 Feb 2017 12:35:22 +0800 Subject: [PATCH 020/186] Refine code --- demo/recommendation/api_train_v2.py | 12 ++++++++++++ python/paddle/v2/dataset/__init__.py | 4 +++- python/paddle/v2/dataset/movielens.py | 10 ++++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 demo/recommendation/api_train_v2.py diff --git a/demo/recommendation/api_train_v2.py b/demo/recommendation/api_train_v2.py new file mode 100644 index 0000000000..64dff9ae43 --- /dev/null +++ b/demo/recommendation/api_train_v2.py @@ -0,0 +1,12 @@ +import paddle.v2 as paddle + + +def main(): + movie_title_dict = paddle.dataset.movielens.get_movie_title_dict() + title_word_count = len(movie_title_dict) + + paddle.layer.mixed + + +if __name__ == '__main__': + main() diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py index 9647e98503..a947edd2cc 100644 --- a/python/paddle/v2/dataset/__init__.py +++ b/python/paddle/v2/dataset/__init__.py @@ -1,3 +1,5 @@ import mnist +import cifar +import movielens -__all__ = ['mnist'] +__all__ = ['mnist', 'cifar', 'movielens'] diff --git a/python/paddle/v2/dataset/movielens.py b/python/paddle/v2/dataset/movielens.py index dcffcff2f5..b66448fafe 100644 --- a/python/paddle/v2/dataset/movielens.py +++ b/python/paddle/v2/dataset/movielens.py @@ -4,7 +4,7 @@ import re import random import functools -__all__ = ['train_creator', 'test_creator'] +__all__ = ['train_creator', 'test_creator', 'get_movie_title_dict'] class MovieInfo(object): @@ -40,7 +40,8 @@ USER_INFO = None def __initialize_meta_info__(): fn = download( url='http://files.grouplens.org/datasets/movielens/ml-1m.zip', - md5='c4d9eecfca2ab87c1945afe126590906') + module_name='movielens', + md5sum='c4d9eecfca2ab87c1945afe126590906') global MOVIE_INFO if MOVIE_INFO is None: pattern = re.compile(r'^(.*)\((\d+)\)$') @@ -107,6 +108,11 @@ train_creator = functools.partial(__reader_creator__, is_test=False) test_creator = functools.partial(__reader_creator__, is_test=True) +def get_movie_title_dict(): + __initialize_meta_info__() + return MOVIE_TITLE_DICT + + def unittest(): for train_count, _ in enumerate(train_creator()()): pass From 9ccc94f4a4d5bd87793730be1a73888c09a55cb3 Mon Sep 17 00:00:00 2001 From: dangqingqing Date: Mon, 27 Feb 2017 19:56:33 +0800 Subject: [PATCH 021/186] srl api training --- demo/semantic_role_labeling/api_train_v2.py | 112 ++++++++++++++++++++ demo/semantic_role_labeling/model_v2.py | 103 ++++++++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 demo/semantic_role_labeling/api_train_v2.py create mode 100644 demo/semantic_role_labeling/model_v2.py diff --git a/demo/semantic_role_labeling/api_train_v2.py b/demo/semantic_role_labeling/api_train_v2.py new file mode 100644 index 0000000000..33b966cca5 --- /dev/null +++ b/demo/semantic_role_labeling/api_train_v2.py @@ -0,0 +1,112 @@ +import numpy +import paddle.v2 as paddle +from paddle.trainer_config_helpers.atts import ParamAttr + +from mode_v2 import db_lstm + +word_dict_file = './data/wordDict.txt' +label_dict_file = './data/targetDict.txt' +predicate_file = './data/verbDict.txt' + +word_dict = dict() +label_dict = dict() +predicate_dict = dict() + +with open(word_dict_file, 'r') as f_word, \ + open(label_dict_file, 'r') as f_label, \ + open(predicate_file, 'r') as f_pre: + for i, line in enumerate(f_word): + w = line.strip() + word_dict[w] = i + + for i, line in enumerate(f_label): + w = line.strip() + label_dict[w] = i + + for i, line in enumerate(f_pre): + w = line.strip() + predicate_dict[w] = i + +word_dict_len = len(word_dict) +label_dict_len = len(label_dict) +pred_len = len(predicate_dict) + + +def train_reader(file_name="data/feature"): + def reader(): + 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 = [word_dict.get(w, UNK_IDX) for w in words] + + predicate_slot = [predicate_dict.get(predicate)] * sen_len + ctx_n2_slot = [word_dict.get(ctx_n2, UNK_IDX)] * sen_len + ctx_n1_slot = [word_dict.get(ctx_n1, UNK_IDX)] * sen_len + ctx_0_slot = [word_dict.get(ctx_0, UNK_IDX)] * sen_len + ctx_p1_slot = [word_dict.get(ctx_p1, UNK_IDX)] * sen_len + ctx_p2_slot = [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 = [label_dict.get(w) for w in label_list] + yield word_slot, ctx_n2_slot, ctx_n1_slot, \ + ctx_0_slot, ctx_p1_slot, ctx_p2_slot, predicate_slot, mark_slot, label_slot + + return reader + + +def main(): + paddle.init(use_gpu=False, trainer_count=1) + + label_dict_len = 500 + # define network topology + output = db_lstm() + target = paddle.layer.data(name='target', size=label_dict_len) + crf_cost = paddle.layer.crf_layer( + size=500, + input=output, + label=target, + param_attr=paddle.attr.Param( + name='crfw', initial_std=default_std, learning_rate=mix_hidden_lr)) + + crf_dec = paddle.layer.crf_decoding_layer( + name='crf_dec_l', + size=label_dict_len, + input=output, + label=target, + param_attr=paddle.attr.Param(name='crfw')) + + topo = [crf_cost, crf_dec] + parameters = paddle.parameters.create(topo) + optimizer = paddle.optimizer.Momentum(momentum=0.01, learning_rate=2e-2) + + def event_handler(event): + if isinstance(event, paddle.event.EndIteration): + para = parameters.get('___fc_2__.w0') + print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id, + event.cost, para.mean()) + + else: + pass + + trainer = paddle.trainer.SGD(update_equation=optimizer) + + trainer.train( + train_data_reader=train_reader, + batch_size=32, + topology=topo, + parameters=parameters, + event_handler=event_handler, + num_passes=10000, + data_types=[], + reader_dict={}) + + +if __name__ == '__main__': + main() diff --git a/demo/semantic_role_labeling/model_v2.py b/demo/semantic_role_labeling/model_v2.py new file mode 100644 index 0000000000..d4d011770d --- /dev/null +++ b/demo/semantic_role_labeling/model_v2.py @@ -0,0 +1,103 @@ +import paddle.v2 as paddle + + +def db_lstm(word_dict_len, label_dict_len, pred_len): + mark_dict_len = 2 + word_dim = 32 + mark_dim = 5 + hidden_dim = 512 + depth = 8 + + #8 features + word = paddle.layer.data(name='word_data', size=word_dict_len) + predicate = paddle.layer.data(name='verb_data', size=pred_len) + + ctx_n2 = paddle.layer.data(name='ctx_n2_data', size=word_dict_len) + ctx_n1 = paddle.layer.data(name='ctx_n1_data', size=word_dict_len) + ctx_0 = paddle.layer.data(name='ctx_0_data', size=word_dict_len) + ctx_p1 = paddle.layer.data(name='ctx_p1_data', size=word_dict_len) + ctx_p2 = paddle.layer.data(name='ctx_p2_data', size=word_dict_len) + mark = paddle.layer.data(name='mark_data', size=mark_dict_len) + + default_std = 1 / math.sqrt(hidden_dim) / 3.0 + + emb_para = paddle.attr.Param(name='emb', initial_std=0., learning_rate=0.) + std_0 = paddle.attr.Param(initial_std=0.) + std_default = paddle.attr.Param(initial_std=default_std) + + predicate_embedding = paddle.layer.embeding( + size=word_dim, + input=predicate, + param_attr=paddle.attr.Param( + name='vemb', initial_std=default_std)) + mark_embedding = paddle.layer.embeding( + name='word_ctx-in_embedding', + size=mark_dim, + input=mark, + param_attr=std_0) + + word_input = [word, ctx_n2, ctx_n1, ctx_0, ctx_p1, ctx_p2] + emb_layers = [ + paddle.layer.embeding( + size=word_dim, input=x, param_attr=emb_para) for x in word_input + ] + emb_layers.append(predicate_embedding) + emb_layers.append(mark_embedding) + + hidden_0 = paddle.layer.mixed( + size=hidden_dim, + bias_attr=std_default, + input=[ + paddle.layer.full_matrix_projection( + input=emb, param_attr=std_default) for emb in emb_layers + ]) + + mix_hidden_lr = 1e-3 + lstm_para_attr = paddle.attr.Param(initial_std=0.0, learning_rate=1.0) + hidden_para_attr = paddle.attr.Param( + initial_std=default_std, learning_rate=mix_hidden_lr) + + lstm_0 = paddle.layer.lstmemory( + input=hidden_0, + act=paddle.activation.Relu(), + gate_act=paddle.activation.Sigmoid(), + state_act=paddle.activation.Sigmoid(), + bias_attr=std_0, + param_attr=lstm_para_attr) + + #stack L-LSTM and R-LSTM with direct edges + input_tmp = [hidden_0, lstm_0] + + for i in range(1, depth): + mix_hidden = paddle.layer.mixed( + size=hidden_dim, + bias_attr=std_default, + input=[ + paddle.layer.full_matrix_projection( + input=input_tmp[0], param_attr=hidden_para_attr), + paddle.layer.full_matrix_projection( + input=input_tmp[1], param_attr=lstm_para_attr) + ]) + + lstm = paddle.layer.lstmemory( + input=mix_hidden, + act=paddle.activation.Relu(), + gate_act=paddle.activation.Sigmoid(), + state_act=paddle.activation.Sigmoid(), + reverse=((i % 2) == 1), + bias_attr=std_0, + param_attr=lstm_para_attr) + + input_tmp = [mix_hidden, lstm] + + feature_out = paddle.layer.mixed( + size=label_dict_len, + bias_attr=std_default, + input=[ + paddle.layer.full_matrix_projection( + input=input_tmp[0], param_attr=hidden_para_attr), + paddle.layer.full_matrix_projection( + input=input_tmp[1], param_attr=lstm_para_attr) + ], ) + + return feature_out From da754d85de3ffcf850ad2b375d8922110c7279e1 Mon Sep 17 00:00:00 2001 From: dangqingqing Date: Tue, 28 Feb 2017 14:55:16 +0800 Subject: [PATCH 022/186] srl api training --- demo/semantic_role_labeling/api_train_v2.py | 21 +++++++++++------ demo/semantic_role_labeling/model_v2.py | 25 +++++++++++---------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/demo/semantic_role_labeling/api_train_v2.py b/demo/semantic_role_labeling/api_train_v2.py index 33b966cca5..daaf0f0582 100644 --- a/demo/semantic_role_labeling/api_train_v2.py +++ b/demo/semantic_role_labeling/api_train_v2.py @@ -1,8 +1,6 @@ import numpy import paddle.v2 as paddle -from paddle.trainer_config_helpers.atts import ParamAttr - -from mode_v2 import db_lstm +from model_v2 import db_lstm word_dict_file = './data/wordDict.txt' label_dict_file = './data/targetDict.txt' @@ -64,9 +62,8 @@ def train_reader(file_name="data/feature"): def main(): paddle.init(use_gpu=False, trainer_count=1) - label_dict_len = 500 # define network topology - output = db_lstm() + output = db_lstm(word_dict_len, label_dict_len, pred_len) target = paddle.layer.data(name='target', size=label_dict_len) crf_cost = paddle.layer.crf_layer( size=500, @@ -97,6 +94,17 @@ def main(): trainer = paddle.trainer.SGD(update_equation=optimizer) + reader_dict = { + 'word_data': 0, + 'verb_data': 1, + 'ctx_n2_data': 2, + 'ctx_n1_data': 3, + 'ctx_0_data': 4, + 'ctx_p1_data': 5, + 'ctx_p2_data': 6, + 'mark_data': 7, + 'target': 8 + } trainer.train( train_data_reader=train_reader, batch_size=32, @@ -104,8 +112,7 @@ def main(): parameters=parameters, event_handler=event_handler, num_passes=10000, - data_types=[], - reader_dict={}) + reader_dict=reader_dict) if __name__ == '__main__': diff --git a/demo/semantic_role_labeling/model_v2.py b/demo/semantic_role_labeling/model_v2.py index d4d011770d..a78190a2b2 100644 --- a/demo/semantic_role_labeling/model_v2.py +++ b/demo/semantic_role_labeling/model_v2.py @@ -1,3 +1,4 @@ +import math import paddle.v2 as paddle @@ -9,15 +10,18 @@ def db_lstm(word_dict_len, label_dict_len, pred_len): depth = 8 #8 features - word = paddle.layer.data(name='word_data', size=word_dict_len) - predicate = paddle.layer.data(name='verb_data', size=pred_len) + def d_type(size): + return paddle.data_type.integer_value_sequence(size) - ctx_n2 = paddle.layer.data(name='ctx_n2_data', size=word_dict_len) - ctx_n1 = paddle.layer.data(name='ctx_n1_data', size=word_dict_len) - ctx_0 = paddle.layer.data(name='ctx_0_data', size=word_dict_len) - ctx_p1 = paddle.layer.data(name='ctx_p1_data', size=word_dict_len) - ctx_p2 = paddle.layer.data(name='ctx_p2_data', size=word_dict_len) - mark = paddle.layer.data(name='mark_data', size=mark_dict_len) + word = paddle.layer.data(name='word_data', type=d_type(word_dict_len)) + predicate = paddle.layer.data(name='verb_data', type=d_type(pred_len)) + + ctx_n2 = paddle.layer.data(name='ctx_n2_data', type=d_type(word_dict_len)) + ctx_n1 = paddle.layer.data(name='ctx_n1_data', type=d_type(word_dict_len)) + ctx_0 = paddle.layer.data(name='ctx_0_data', type=d_type(word_dict_len)) + ctx_p1 = paddle.layer.data(name='ctx_p1_data', type=d_type(word_dict_len)) + ctx_p2 = paddle.layer.data(name='ctx_p2_data', type=d_type(word_dict_len)) + mark = paddle.layer.data(name='mark_data', type=d_type(mark_dict_len)) default_std = 1 / math.sqrt(hidden_dim) / 3.0 @@ -31,10 +35,7 @@ def db_lstm(word_dict_len, label_dict_len, pred_len): param_attr=paddle.attr.Param( name='vemb', initial_std=default_std)) mark_embedding = paddle.layer.embeding( - name='word_ctx-in_embedding', - size=mark_dim, - input=mark, - param_attr=std_0) + size=mark_dim, input=mark, param_attr=std_0) word_input = [word, ctx_n2, ctx_n1, ctx_0, ctx_p1, ctx_p2] emb_layers = [ From 07a86b52f4a792c3f2350fb1fadb3f34513c37b1 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Tue, 28 Feb 2017 16:42:51 +0800 Subject: [PATCH 023/186] Refine --- demo/recommendation/api_train_v2.py | 34 +++++++++++++++++++++++++-- python/paddle/v2/dataset/movielens.py | 34 ++++++++++++++++++++++----- 2 files changed, 60 insertions(+), 8 deletions(-) diff --git a/demo/recommendation/api_train_v2.py b/demo/recommendation/api_train_v2.py index 64dff9ae43..c726fa5bdb 100644 --- a/demo/recommendation/api_train_v2.py +++ b/demo/recommendation/api_train_v2.py @@ -3,9 +3,39 @@ import paddle.v2 as paddle def main(): movie_title_dict = paddle.dataset.movielens.get_movie_title_dict() - title_word_count = len(movie_title_dict) + uid = paddle.layer.data( + name='user_id', + type=paddle.data_type.integer_value( + paddle.dataset.movielens.max_user_id() + 1)) + usr_emb = paddle.layer.embedding(input=uid, size=32) - paddle.layer.mixed + usr_gender_id = paddle.layer.data( + name='gender_id', type=paddle.data_type.integer_value(2)) + usr_gender_emb = paddle.layer.embedding(input=usr_gender_id, size=16) + + usr_age_id = paddle.layer.data( + name='age_id', + type=paddle.data_type.integer_value( + len(paddle.dataset.movielens.age_table))) + usr_age_emb = paddle.embedding(input=usr_age_id, size=16) + + usr_combined_features = paddle.fc( + input=[usr_emb, usr_gender_emb, usr_age_emb], + size=200, + act=paddle.activation.Tanh()) + + mov_id = paddle.layer.data( + name='movie_id', + type=paddle.data_type.integer_value( + paddle.dataset.movielens.max_movie_id() + 1)) + mov_emb = paddle.layer.embedding(input=mov_id, size=32) + + mov_title_id = paddle.layer.data( + name='movie_title', + type=paddle.data_type.integer_value(len(movie_title_dict))) + mov_title_emb = paddle.embedding(input=mov_title_id, size=32) + with paddle.layer.mixed() as mixed: + pass if __name__ == '__main__': diff --git a/python/paddle/v2/dataset/movielens.py b/python/paddle/v2/dataset/movielens.py index b66448fafe..6efe42adba 100644 --- a/python/paddle/v2/dataset/movielens.py +++ b/python/paddle/v2/dataset/movielens.py @@ -4,7 +4,12 @@ import re import random import functools -__all__ = ['train_creator', 'test_creator', 'get_movie_title_dict'] +__all__ = [ + 'train', 'test', 'get_movie_title_dict', 'max_movie_id', 'max_user_id', + 'age_table' +] + +age_table = [1, 18, 25, 35, 45, 50, 56] class MovieInfo(object): @@ -24,7 +29,7 @@ class UserInfo(object): def __init__(self, index, gender, age, job_id): self.index = int(index) self.is_male = gender == 'M' - self.age = [1, 18, 25, 35, 45, 50, 56].index(int(age)) + self.age = age_table.index(int(age)) self.job_id = int(job_id) def value(self): @@ -104,8 +109,8 @@ def __reader_creator__(**kwargs): return lambda: __reader__(**kwargs) -train_creator = functools.partial(__reader_creator__, is_test=False) -test_creator = functools.partial(__reader_creator__, is_test=True) +train = functools.partial(__reader_creator__, is_test=False) +test = functools.partial(__reader_creator__, is_test=True) def get_movie_title_dict(): @@ -113,10 +118,27 @@ def get_movie_title_dict(): return MOVIE_TITLE_DICT +def __max_index_info__(a, b): + if a.index > b.index: + return a + else: + return b + + +def max_movie_id(): + __initialize_meta_info__() + return reduce(__max_index_info__, MOVIE_INFO.viewvalues()).index + + +def max_user_id(): + __initialize_meta_info__() + return reduce(__max_index_info__, USER_INFO.viewvalues()).index + + def unittest(): - for train_count, _ in enumerate(train_creator()()): + for train_count, _ in enumerate(train()()): pass - for test_count, _ in enumerate(test_creator()()): + for test_count, _ in enumerate(test()()): pass print train_count, test_count From 60e0df0eeff0ba4155077f2fce93a55c30884028 Mon Sep 17 00:00:00 2001 From: "yi.wu" Date: Tue, 28 Feb 2017 17:19:00 +0800 Subject: [PATCH 024/186] refine k8s distributed training doc --- doc/howto/usage/k8s/k8s_basis.md | 77 +++++++ doc/howto/usage/k8s/k8s_distributed_cn.md | 241 +++++++++----------- doc/howto/usage/k8s/src/k8s-paddle-arch.png | Bin 22084 -> 530508 bytes 3 files changed, 182 insertions(+), 136 deletions(-) create mode 100644 doc/howto/usage/k8s/k8s_basis.md diff --git a/doc/howto/usage/k8s/k8s_basis.md b/doc/howto/usage/k8s/k8s_basis.md new file mode 100644 index 0000000000..e296d69dce --- /dev/null +++ b/doc/howto/usage/k8s/k8s_basis.md @@ -0,0 +1,77 @@ +# Kubernetes 简介 + +[*Kubernetes*](http://kubernetes.io/)是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。Kubernetes可以在物理机或虚拟机上运行,且支持部署到[AWS](http://kubernetes.io/docs/getting-started-guides/aws),[Azure](http://kubernetes.io/docs/getting-started-guides/azure/),[GCE](http://kubernetes.io/docs/getting-started-guides/gce)等多种公有云环境。介绍分布式训练之前,需要对[Kubernetes](http://kubernetes.io/)有一个基本的认识,下面先简要介绍一下本文用到的几个Kubernetes概念。 + +- [*Node*](http://kubernetes.io/docs/admin/node/) 表示一个Kubernetes集群中的一个工作节点,这个节点可以是物理机或者虚拟机,Kubernetes集群就是由node节点与master节点组成的。 + +- [*Pod*](http://kubernetes.io/docs/user-guide/pods/) 是一组(一个或多个)容器,pod是Kubernetes的最小调度单元,一个pod中的所有容器会被调度到同一个node上。Pod中的容器共享NET,PID,IPC,UTS等Linux namespace。由于容器之间共享NET namespace,所以它们使用同一个IP地址,可以通过*localhost*互相通信。不同pod之间可以通过IP地址访问。 + +- [*Job*](http://kubernetes.io/docs/user-guide/jobs/) 描述Kubernetes上运行的作业,一次作业称为一个job,通常每个job包括一个或者多个pods,job启动后会创建这些pod并开始执行一个程序,等待这个程序执行成功并返回0则成功退出,如果执行失败,也可以配置不同的重试机制。 + +- [*Volume*](http://kubernetes.io/docs/user-guide/volumes/) 存储卷,是pod内的容器都可以访问的共享目录,也是容器与node之间共享文件的方式,因为容器内的文件都是暂时存在的,当容器因为各种原因被销毁时,其内部的文件也会随之消失。通过volume,就可以将这些文件持久化存储。Kubernetes支持多种volume,例如hostPath(宿主机目录),gcePersistentDisk,awsElasticBlockStore等。 + +- [*Namespaces*](https://kubernetes.io/docs/user-guide/namespaces/) 命名空间,在kubernetes中创建的所有资源对象(例如上文的pod,job)等都属于一个命名空间,在同一个命名空间中,资源对象的名字是唯一的,不同空间的资源名可以重复,命名空间主要为了对象进行逻辑上的分组便于管理。本文只使用了默认命名空间。 + +- [*PersistentVolume*]() + +- [*PersistentVolumeClaim*]() + +# 部署Kubernetes集群 + +Kubernetes提供了多种集群部署的方案,本文档内不重复介绍。这里给出集中常见的部署方法: + +- [*minikube*](https://kubernetes.io/docs/getting-started-guides/minikube/): 快速在本地启动一个单机的kubernetes服务器,便于本地验证和测试。 +- [*kubeadm*](http://kubernetes.io/docs/getting-started-guides/kubeadm/): 在不同操作系统,不同主机(Bare-Metal, AWS, GCE)条件下,快速部署集群。 +- [*AWS EC2*](https://kubernetes.io/docs/getting-started-guides/aws/): 在aws上快速部署集群。 +- [*Bare-Metal*](https://kubernetes.io/docs/getting-started-guides/centos/centos_manual_config/): 在物理机上手动部署。 + +可以参考[这个表格](https://kubernetes.io/docs/getting-started-guides/#table-of-solutions)选择适合您的场景的合适方案。 + +# 选择存储方案 + +容器不会保留在运行时生成的数据,job或者应用程序在容器中运行时生成的数据会在容器销毁时消失。为了完成分布式机器学习训练任务,需要有一个外部的存储服务来保存训练所需数据和训练输出。 +常见的可选存储服务包括: + +- [*NFS*](https://github.com/kubernetes/kubernetes/tree/master/examples/volumes/nfs): 可以将磁盘上某个目录共享给网络中其他机器访问。部署和配置比较简单,可以用于小量数据的验证。不提供分布式存储,高可用,冗余等功能。NFS的部署方法可以参考[这里](http://www.tecmint.com/how-to-setup-nfs-server-in-linux/)。 +- [*GlusterFS*](http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Quickstart/): 网络分布式文件系统,可以在Kubernetes中按照[这个](https://github.com/kubernetes/kubernetes/tree/master/examples/volumes/glusterfs)例子使用。 +- [*Ceph*](http://docs.ceph.com/docs/master/): 分布式文件系统,支持rbd,POSIX API接口(ceph fs)和对象存储API,参考[这里](https://kubernetes.io/docs/user-guide/volumes/#rbd)。 +- [*MooseFS*](https://moosefs.com/documentation.html): 一个分布式的存储系统。需要先挂载到服务器Node上再通过kubernetes hostPath Volume挂载到容器中。 + +# 配置kubectl + +## 安装kubectl +``` +# OS X +curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl + +# Linux +curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl + +# Windows +curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe +``` + +## 配置kubectl访问你的kubernetes集群 + +编辑`~/.kube/config`这个配置文件,修改`Master-IP`的地址。如果使用SSL认证,则需要配置`certificate-authority`和`users`中的用户证书。如果是使用非SSL方式访问(比如通过8080都安口),也可以去掉这些证书的配置。 +``` +apiVersion: v1 +clusters: +- cluster: + certificate-authority: /path/to/ca.crt + server: https://[Master-IP]:443 + name: minikube +contexts: +- context: + cluster: minikube + user: minikube + name: minikube +current-context: minikube +kind: Config +preferences: {} +users: +- name: minikube + user: + client-certificate: /path/to/apiserver.crt + client-key: /Users/wuyi/.minikube/apiserver.key +``` diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md index 2063b98ca8..cfc3086036 100644 --- a/doc/howto/usage/k8s/k8s_distributed_cn.md +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md @@ -1,169 +1,51 @@ -# Kubernetes分布式训练 +# 使用Paddle在Kubernetes集群上完成分布式训练 前一篇文章介绍了如何在Kubernetes集群上启动一个单机PaddlePaddle训练作业 (Job)。在这篇文章里,我们介绍如何在Kubernetes集群上进行分布式PaddlePaddle训练作业。关于PaddlePaddle的分布式训练,文章 [Cluster Training](https://github.com/baidu/Paddle/blob/develop/doc/cluster/opensource/cluster_train.md)介绍了一种通过SSH远程分发任务,进行分布式训练的方法,与此不同的是,本文将介绍在Kubernetes容器管理平台上快速构建PaddlePaddle容器集群,进行分布式训练的方案。 -## Kubernetes 基本概念 - -[*Kubernetes*](http://kubernetes.io/)是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。Kubernetes可以在物理机或虚拟机上运行,且支持部署到[AWS](http://kubernetes.io/docs/getting-started-guides/aws),[Azure](http://kubernetes.io/docs/getting-started-guides/azure/),[GCE](http://kubernetes.io/docs/getting-started-guides/gce)等多种公有云环境。介绍分布式训练之前,需要对[Kubernetes](http://kubernetes.io/)有一个基本的认识,下面先简要介绍一下本文用到的几个Kubernetes概念。 - -- [*Node*](http://kubernetes.io/docs/admin/node/) 表示一个Kubernetes集群中的一个工作节点,这个节点可以是物理机或者虚拟机,Kubernetes集群就是由node节点与master节点组成的。 - -- [*Pod*](http://kubernetes.io/docs/user-guide/pods/) 是一组(一个或多个)容器,pod是Kubernetes的最小调度单元,一个pod中的所有容器会被调度到同一个node上。Pod中的容器共享NET,PID,IPC,UTS等Linux namespace。由于容器之间共享NET namespace,所以它们使用同一个IP地址,可以通过*localhost*互相通信。不同pod之间可以通过IP地址访问。 - -- [*Job*](http://kubernetes.io/docs/user-guide/jobs/) 是Kubernetes上运行的作业,一次作业称为一个job,通常每个job包括一个或者多个pods。 - -- [*Volume*](http://kubernetes.io/docs/user-guide/volumes/) 存储卷,是pod内的容器都可以访问的共享目录,也是容器与node之间共享文件的方式,因为容器内的文件都是暂时存在的,当容器因为各种原因被销毁时,其内部的文件也会随之消失。通过volume,就可以将这些文件持久化存储。Kubernetes支持多种volume,例如hostPath(宿主机目录),gcePersistentDisk,awsElasticBlockStore等。 - -- [*Namespaces*](http://kubernetes.io/docs/user-guide/volumes/) 命名空间,在kubernetes中创建的所有资源对象(例如上文的pod,job)等都属于一个命名空间,在同一个命名空间中,资源对象的名字是唯一的,不同空间的资源名可以重复,命名空间主要为了对象进行逻辑上的分组便于管理。本文只使用了默认命名空间。 +有关Kubernetes相关概念以及如何搭建和配置Kubernetes集群,可以参考[k8s_basis](./k8s_basis.md)。 ## 整体方案 -### 部署Kubernetes集群 - -首先,我们需要拥有一个Kubernetes集群,在这个集群中所有node与pod都可以互相通信。关于Kubernetes集群搭建,可以参考[官方文档](http://kubernetes.io/docs/getting-started-guides/kubeadm/),在以后的文章中我们也会介绍AWS上搭建的方案。本文假设大家能找到几台物理机,并且可以按照官方文档在上面部署Kubernetes。在本文的环境中,Kubernetes集群中所有node都挂载了一个[MFS](http://moosefs.org/)(Moose filesystem,一种分布式文件系统)共享目录,我们通过这个目录来存放训练文件与最终输出的模型。关于MFS的安装部署,可以参考[MooseFS documentation](https://moosefs.com/documentation.html)。在训练之前,用户将配置与训练数据切分好放在MFS目录中,训练时,程序从此目录拷贝文件到容器内进行训练,将结果保存到此目录里。整体的结构图如下: +在训练之前,用户将配置与训练数据切分好放在MFS目录中,训练时,程序从此目录拷贝文件到容器内进行训练,将结果保存到此目录里。整体的结构图如下: ![paddle on kubernetes结构图](src/k8s-paddle-arch.png) -上图描述了一个3节点的分布式训练场景,Kubernetes集群的每个node上都挂载了一个MFS目录,这个目录可以通过volume的形式挂载到容器中。Kubernetes为这次训练创建了3个pod并且调度到了3个node上运行,每个pod包含一个PaddlePaddle容器。在容器创建后,会启动pserver与trainer进程,读取volume中的数据进行这次分布式训练。 - -### 使用 Job - -我们使用Kubernetes中的job这个概念来代表一次分布式训练。Job表示一次性作业,在作业完成后,Kubernetes会销毁job产生的容器并且释放相关资源。 - -在Kubernetes中,可以通过编写一个YAML文件,来描述这个job,在这个文件中,主要包含了一些配置信息,例如PaddlePaddle的节点个数,`paddle pserver`开放的端口个数与端口号,使用的网卡设备等,这些信息通过环境变量的形式传递给容器内的程序使用。 +上图描述了一个3节点的分布式训练场景,在每个Pod上都通过volume方式挂载分布式文件系统的一个目录用于保存训练数据和输出结果。Kubernetes为这次训练创建了3个pod并且调度到了3个node上运行,每个pod包含一个PaddlePaddle容器。在容器创建后,会启动pserver与trainer进程,读取volume中的数据进行这次分布式训练。 -在一次分布式训练中,用户确定好本次训练需要的PaddlePaddle节点个数,将切分好的训练数据与配置文件上传到MFS共享目录中。然后编写这次训练的job YAML文件,提交给Kubernetes集群创建并开始作业。 +根据前文的描述,要在已有的Kubernetes集群上进行PaddlePaddle的分布式训练,按照下面步骤即可: -### 创建PaddlePaddle节点 - -当Kubernetes master收到请求,解析完YAML文件后,会创建出多个pod(个数为PaddlePaddle节点数),Kubernetes会把这些pod调度到集群的node上运行。一个pod就代表一个PaddlePaddle节点,当pod被成功分配到一台物理/虚拟机上后,Kubernetes会启动pod内的容器,这个容器会根据YAML文件中的环境变量,启动`paddle pserver`与`paddle train`进程。 - -### 启动训练 - -在容器启动后,会通过脚本来启动这次分布式训练,我们知道`paddle train`进程启动时需要知道其他节点的IP地址以及本节点的trainer_id,由于PaddlePaddle本身不提供类似服务发现的功能,所以在本文的启动脚本中,每个节点会根据job name向Kubernetes apiserver查询这个job对应的所有pod信息(Kubernetes默认会在每个容器的环境变量中写入apiserver的地址)。 - -根据这些pod信息,就可以通过某种方式,为每个pod分配一个唯一的trainer_id。本文把所有pod的IP地址进行排序,将顺序作为每个PaddlePaddle节点的trainer_id。启动脚本的工作流程大致如下: - - 1. 查询Kubernetes apiserver获取pod信息,根据IP分配trainer_id - 1. 从MFS共享目录中拷贝训练文件到容器内 - 1. 根据环境变量,解析出`paddle pserver`与`paddle train`的启动参数,启动进程 - 1. 训练时,PaddlePaddle会自动将结果保存在trainer_id为0的节点上,将输出路径设置为MFS目录,保存输出的文件 - - -## 搭建过程 - -根据前文的描述,要在已有的Kubernetes集群上进行PaddlePaddle的分布式训练,主要分为以下几个步骤: - -1. 制作PaddlePaddle镜像 -1. 将训练文件与切分好的数据上传到共享存储 -1. 编写本次训练的YAML文件,创建一个Kubernetes job -1. 训练结束后查看输出结果 +1. [制作PaddlePaddle镜像](#制作镜像) +1. [将训练文件与切分好的数据上传到共享存储](#上传训练文件) +1. [编写本次训练的YAML文件,创建一个Kubernetes job](#创建Job) +1. [训练结束后查看输出结果](#查看输出) 下面就根据这几个步骤分别介绍。 - ### 制作镜像 PaddlePaddle镜像需要提供`paddle pserver`与`paddle train`进程的运行环境,用这个镜像创建的容器需要有以下两个功能: - 拷贝训练文件到容器内 - - 生成`paddle pserver`与`paddle train`进程的启动参数,并且启动训练 -因为官方镜像 `paddledev/paddle:cpu-latest` 内已经包含PaddlePaddle的执行程序但是还没上述功能,所以我们可以在这个基础上,添加启动脚本,制作新镜像来完成以上的工作。镜像的*Dockerfile*如下: - -```Dockerfile -FROM paddledev/paddle:cpu-latest - -MAINTAINER zjsxzong89@gmail.com - -COPY start.sh /root/ -COPY start_paddle.py /root/ -CMD ["bash"," -c","/root/start.sh"] -``` - -[start.sh](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/howto/usage/cluster/k8s/start.sh)文件拷贝训练文件到容器内,然后执行[start_paddle.py](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/howto/usage/cluster/k8s/start_paddle.py)脚本启动训练,前文提到的获取其他节点IP地址,分配`trainer_id`等都在`start_paddle.py`脚本中完成。 - -`start_paddle.py`脚本开始时,会先进行参数的初始化与解析。 - -```python -parser = argparse.ArgumentParser(prog="start_paddle.py", - description='simple tool for k8s') - args, train_args_list = parser.parse_known_args() - train_args = refine_unknown_args(train_args_list) - train_args_dict = dict(zip(train_args[:-1:2], train_args[1::2])) - podlist = getPodList() -``` - -然后通过函数`getPodList()`访问Kubernetes的接口来查询此job对应的所有pod信息。当所有pod都处于running状态(容器运行都运行)时,再通过函数`getIdMap(podlist)`获取trainer_id。 - -```python - podlist = getPodList() - # need to wait until all pods are running - while not isPodAllRunning(podlist): - time.sleep(10) - podlist = getPodList() - idMap = getIdMap(podlist) -``` - -在函数`getIdMap(podlist)`内部,我们通过读取`podlist`中每个pod的IP地址,将IP排序生成的序号作为trainer_id。 - -```python -def getIdMap(podlist): - ''' - generate tainer_id by ip - ''' - ips = [] - for pod in podlist["items"]: - ips.append(pod["status"]["podIP"]) - ips.sort() - idMap = {} - for i in range(len(ips)): - idMap[ips[i]] = i - return idMap -``` - -在得到`idMap`后,通过函数`startPaddle(idMap, train_args_dict)`构造`paddle pserver`与`paddle train`的启动参数并执行进程。 - -在函数`startPaddle`中,最主要的工作就是解析出`paddle pserver`与`paddle train`的启动参数。例如`paddle train`参数的解析,解析环境变量得到`PADDLE_NIC`,`PADDLE_PORT`,`PADDLE_PORTS_NUM`等参数,然后通过自身的IP地址在`idMap`中获取`trainerId`。 - -```python - program = 'paddle train' - args = " --nics=" + PADDLE_NIC - args += " --port=" + str(PADDLE_PORT) - args += " --ports_num=" + str(PADDLE_PORTS_NUM) - args += " --comment=" + "paddle_process_by_paddle" - ip_string = "" - for ip in idMap.keys(): - ip_string += (ip + ",") - ip_string = ip_string.rstrip(",") - args += " --pservers=" + ip_string - args_ext = "" - for key, value in train_args_dict.items(): - args_ext += (' --' + key + '=' + value) - localIP = socket.gethostbyname(socket.gethostname()) - trainerId = idMap[localIP] - args += " " + args_ext + " --trainer_id=" + \ - str(trainerId) + " --save_dir=" + JOB_PATH_OUTPUT -``` - -使用 `docker build` 构建镜像: +因为官方镜像 `paddledev/paddle:cpu-latest` 内已经包含PaddlePaddle的执行程序但是还没上述功能,所以我们可以在这个基础上,添加启动脚本,制作新镜像来完成以上的工作。参考镜像的[*Dockerfile*]((https://github.com/PaddlePaddle/Paddle/blob/develop/doc/howto/usage/cluster/k8s/src/k8s_train/Dockerfile)。 ```bash -docker build -t your_repo/paddle:mypaddle . +$ cd doc/howto/usage/k8s/src/k8s_train +$ docker build -t [YOUR_REPO]/paddle:mypaddle . ``` 然后将构建成功的镜像上传到镜像仓库。 ```bash -docker push your_repo/paddle:mypaddle +docker push [YOUR_REPO]/paddle:mypaddle ``` -注意上述命令中`your_repo`表示读者所使用的Docker镜像仓库地址,读者需要替换成自己使用的仓库地址。下文使用`your_repo/paddle:mypaddle`这个地址来表示此步骤所构建出的镜像。 +注意上述命令中`[YOUR_REPO]`表示读者所使用的Docker镜像仓库地址,读者需要替换成自己使用的仓库地址。下文使用`[YOUR_REPO]/paddle:mypaddle`这个地址来表示此步骤所构建出的镜像。 ### 上传训练文件 -本文使用PaddlePaddle官方的[recommendation demo](http://www.paddlepaddle.org/doc/demo/index.html#recommendation)作为这次训练的内容,我们将训练文件与数据放在一个job name命名的目录中,上传到MFS共享存储。完成后MFS上的文件内容大致如下: +本文使用PaddlePaddle官方的[recommendation demo](http://www.paddlepaddle.org/doc/demo/index.html#recommendation)作为这次训练的内容,我们将训练文件与数据放在一个job name命名的目录中,上传到volume所在的共享存储(使用不同分布式存储会有不同的挂载方式,需要要先挂载这个目录,然后拷贝数据)。完成后volume中的文件内容大致如下: ```bash [root@paddle-kubernetes-node0 mfs]# tree -d @@ -205,7 +87,7 @@ spec: path: /home/work/mfs containers: - name: trainer - image: your_repo/paddle:mypaddle + image: [YOUR_REPO]/paddle:mypaddle command: ["bin/bash", "-c", "/root/start.sh"] env: - name: JOB_NAME @@ -289,8 +171,8 @@ I1116 09:10:17.123121 50 Util.cpp:155] commandline: --ports_num=2 --comment=paddle_process_by_paddle --pservers=192.168.129.66,192.168.223.143,192.168.129.71 --ports_num_for_sparse=2 --config=./trainer_config.py - --trainer_count=4 --num_passes=10 --use_gpu=0 - --log_period=50 --dot_period=10 --saving_period=1 + --trainer_count=4 --num_passes=10 --use_gpu=0 + --log_period=50 --dot_period=10 --saving_period=1 --local=0 --trainer_id=0 --save_dir=/home/jobpath/paddle-cluster-job/output I1116 09:10:17.123440 50 Util.cpp:130] Calling runInitFunctions @@ -310,3 +192,90 @@ I1116 09:10:18.019492 50 ParameterClient2.cpp:122] pserver 3 192.168.223.143: I1116 09:10:18.019716 50 ParameterClient2.cpp:122] pserver 4 192.168.129.71:7164 I1116 09:10:18.019836 50 ParameterClient2.cpp:122] pserver 5 192.168.129.71:7165 ``` + + +## 一些细节的补充 + +### 使用环境变量 + +使用容器方式运行训练任务的Kubernetes Job,通常会使用环境变量配置Job的配置信息`start_paddle.py`提供了一个启动脚本,将环境变量转换成paddle的命令行参数: +``` +API = "/api/v1/namespaces/" +JOBSELECTOR = "labelSelector=job-name=" +JOB_PATH = os.getenv("JOB_PATH") + "/" + os.getenv("JOB_NAME") +JOB_PATH_OUTPUT = JOB_PATH + "/output" +JOBNAME = os.getenv("JOB_NAME") +NAMESPACE = os.getenv("JOB_NAMESPACE") +PADDLE_NIC = os.getenv("CONF_PADDLE_NIC") +PADDLE_PORT = os.getenv("CONF_PADDLE_PORT") +PADDLE_PORTS_NUM = os.getenv("CONF_PADDLE_PORTS_NUM") +PADDLE_PORTS_NUM_SPARSE = os.getenv("CONF_PADDLE_PORTS_NUM_SPARSE") +PADDLE_SERVER_NUM = os.getenv("CONF_PADDLE_GRADIENT_NUM") +``` + +### Pod间通信 +`start_paddle.py`脚本开始时,会先进行参数的初始化与解析。 + +```python +parser = argparse.ArgumentParser(prog="start_paddle.py", + description='simple tool for k8s') + args, train_args_list = parser.parse_known_args() + train_args = refine_unknown_args(train_args_list) + train_args_dict = dict(zip(train_args[:-1:2], train_args[1::2])) + podlist = getPodList() +``` + +然后通过函数`getPodList()`访问Kubernetes的接口来查询此job对应的所有pod信息。当所有pod都处于running状态(容器运行都运行)时,再通过函数`getIdMap(podlist)`获取trainer_id。 + +```python + podlist = getPodList() + # need to wait until all pods are running + while not isPodAllRunning(podlist): + time.sleep(10) + podlist = getPodList() + idMap = getIdMap(podlist) +``` +* *注意*: `getPodList()`会获取当前namespace下的所有pod,如果已经有pod运行,可能会导致出错。这种集群节点管理方式会在将来使用[statfulsets](https://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/)代替。 + +在函数`getIdMap(podlist)`内部,我们通过读取`podlist`中每个pod的IP地址,将IP排序生成的序号作为trainer_id。 + +```python +def getIdMap(podlist): + ''' + generate tainer_id by ip + ''' + ips = [] + for pod in podlist["items"]: + ips.append(pod["status"]["podIP"]) + ips.sort() + idMap = {} + for i in range(len(ips)): + idMap[ips[i]] = i + return idMap +``` + +在得到`idMap`后,通过函数`startPaddle(idMap, train_args_dict)`构造`paddle pserver`与`paddle train`的启动参数并执行进程。 + +### 启动任务 + +在函数`startPaddle`中,最主要的工作就是解析出`paddle pserver`与`paddle train`的启动参数。例如`paddle train`参数的解析,解析环境变量得到`PADDLE_NIC`,`PADDLE_PORT`,`PADDLE_PORTS_NUM`等参数,然后通过自身的IP地址在`idMap`中获取`trainerId`。 + +```python + program = 'paddle train' + args = " --nics=" + PADDLE_NIC + args += " --port=" + str(PADDLE_PORT) + args += " --ports_num=" + str(PADDLE_PORTS_NUM) + args += " --comment=" + "paddle_process_by_paddle" + ip_string = "" + for ip in idMap.keys(): + ip_string += (ip + ",") + ip_string = ip_string.rstrip(",") + args += " --pservers=" + ip_string + args_ext = "" + for key, value in train_args_dict.items(): + args_ext += (' --' + key + '=' + value) + localIP = socket.gethostbyname(socket.gethostname()) + trainerId = idMap[localIP] + args += " " + args_ext + " --trainer_id=" + \ + str(trainerId) + " --save_dir=" + JOB_PATH_OUTPUT +``` diff --git a/doc/howto/usage/k8s/src/k8s-paddle-arch.png b/doc/howto/usage/k8s/src/k8s-paddle-arch.png index a8c64550b1fa7f41de1eaa9a037c65cddc0cd30e..c41a62392978eb94ceeb0ff24f23964055f5e06c 100644 GIT binary patch literal 530508 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
  • 5` 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
    )>Gs+^~o~fr(AlBct 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

    NAYRpF+djrl{|qS*tfI?EFo>bI`xnvJ^u0P8SL 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ⅅgVsMhu0jxm2H&>c_{yY&|HP=wM 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

    hb2 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

  • 5` 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
     and , which are strings
    +#        you would put in $PS1 before and after the status string
    +#        generated by the git-prompt machinery.  e.g.
    +#        Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
    +#          will show username, at-sign, host, colon, cwd, then
    +#          various status string, followed by dollar and SP, as
    +#          your prompt.
    +#        ZSH:  precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
    +#          will show username, pipe, then various status string,
    +#          followed by colon, cwd, dollar and SP, as your prompt.
    +#        Optionally, you can supply a third argument with a printf
    +#        format string to finetune the output of the branch status
    +#
    +# The repository status will be displayed only if you are currently in a
    +# git repository. The %s token is the placeholder for the shown status.
    +#
    +# The prompt status always includes the current branch name.
    +#
    +# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
    +# unstaged (*) and staged (+) changes will be shown next to the branch
    +# name.  You can configure this per-repository with the
    +# bash.showDirtyState variable, which defaults to true once
    +# GIT_PS1_SHOWDIRTYSTATE is enabled.
    +#
    +# You can also see if currently something is stashed, by setting
    +# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
    +# then a '$' will be shown next to the branch name.
    +#
    +# If you would like to see if there're untracked files, then you can set
    +# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
    +# files, then a '%' will be shown next to the branch name.  You can
    +# configure this per-repository with the bash.showUntrackedFiles
    +# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
    +# enabled.
    +#
    +# If you would like to see the difference between HEAD and its upstream,
    +# set GIT_PS1_SHOWUPSTREAM="auto".  A "<" indicates you are behind, ">"
    +# indicates you are ahead, "<>" indicates you have diverged and "="
    +# indicates that there is no difference. You can further control
    +# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
    +# of values:
    +#
    +#     verbose       show number of commits ahead/behind (+/-) upstream
    +#     legacy        don't use the '--count' option available in recent
    +#                   versions of git-rev-list
    +#     git           always compare HEAD to @{upstream}
    +#     svn           always compare HEAD to your SVN upstream
    +#
    +# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
    +# find one, or @{upstream} otherwise.  Once you have set
    +# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
    +# setting the bash.showUpstream config variable.
    +#
    +# If you would like to see more information about the identity of
    +# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
    +# to one of these values:
    +#
    +#     contains      relative to newer annotated tag (v1.6.3.2~35)
    +#     branch        relative to newer tag or branch (master~4)
    +#     describe      relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
    +#     default       exactly matching tag
    +#
    +# If you would like a colored hint about the current dirty state, set
    +# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
    +# the colored output of "git status -sb" and are available only when
    +# using __git_ps1 for PROMPT_COMMAND or precmd.
    +
    +# stores the divergence from upstream in $p
    +# used by GIT_PS1_SHOWUPSTREAM
    +__git_ps1_show_upstream ()
    +{
    +  local key value
    +  local svn_remote svn_url_pattern count n
    +  local upstream=git legacy="" verbose=""
    +
    +  svn_remote=()
    +  # get some config options from git-config
    +  local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
    +  while read -r key value; do
    +    case "$key" in
    +    bash.showupstream)
    +      GIT_PS1_SHOWUPSTREAM="$value"
    +      if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
    +        p=""
    +        return
    +      fi
    +      ;;
    +    svn-remote.*.url)
    +      svn_remote[$((${#svn_remote[@]} + 1))]="$value"
    +      svn_url_pattern+="\\|$value"
    +      upstream=svn+git # default upstream is SVN if available, else git
    +      ;;
    +    esac
    +  done <<< "$output"
    +
    +  # parse configuration values
    +  for option in ${GIT_PS1_SHOWUPSTREAM}; do
    +    case "$option" in
    +    git|svn) upstream="$option" ;;
    +    verbose) verbose=1 ;;
    +    legacy)  legacy=1  ;;
    +    esac
    +  done
    +
    +  # Find our upstream
    +  case "$upstream" in
    +  git)    upstream="@{upstream}" ;;
    +  svn*)
    +    # get the upstream from the "git-svn-id: ..." in a commit message
    +    # (git-svn uses essentially the same procedure internally)
    +    local -a svn_upstream
    +    svn_upstream=($(git log --first-parent -1 \
    +          --grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
    +    if [[ 0 -ne ${#svn_upstream[@]} ]]; then
    +      svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
    +      svn_upstream=${svn_upstream%@*}
    +      local n_stop="${#svn_remote[@]}"
    +      for ((n=1; n <= n_stop; n++)); do
    +        svn_upstream=${svn_upstream#${svn_remote[$n]}}
    +      done
    +
    +      if [[ -z "$svn_upstream" ]]; then
    +        # default branch name for checkouts with no layout:
    +        upstream=${GIT_SVN_ID:-git-svn}
    +      else
    +        upstream=${svn_upstream#/}
    +      fi
    +    elif [[ "svn+git" = "$upstream" ]]; then
    +      upstream="@{upstream}"
    +    fi
    +    ;;
    +  esac
    +
    +  # Find how many commits we are ahead/behind our upstream
    +  if [[ -z "$legacy" ]]; then
    +    count="$(git rev-list --count --left-right \
    +        "$upstream"...HEAD 2>/dev/null)"
    +  else
    +    # produce equivalent output to --count for older versions of git
    +    local commits
    +    if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
    +    then
    +      local commit behind=0 ahead=0
    +      for commit in $commits
    +      do
    +        case "$commit" in
    +        "<"*) ((behind++)) ;;
    +        *)    ((ahead++))  ;;
    +        esac
    +      done
    +      count="$behind  $ahead"
    +    else
    +      count=""
    +    fi
    +  fi
    +
    +  # calculate the result
    +  if [[ -z "$verbose" ]]; then
    +    case "$count" in
    +    "") # no upstream
    +      p="" ;;
    +    "0  0") # equal to upstream
    +      p="=" ;;
    +    "0  "*) # ahead of upstream
    +      p=">" ;;
    +    *"  0") # behind upstream
    +      p="<" ;;
    +    *)      # diverged from upstream
    +      p="<>" ;;
    +    esac
    +  else
    +    case "$count" in
    +    "") # no upstream
    +      p="" ;;
    +    "0  0") # equal to upstream
    +      p=" u=" ;;
    +    "0  "*) # ahead of upstream
    +      p=" u+${count#0 }" ;;
    +    *"  0") # behind upstream
    +      p=" u-${count%  0}" ;;
    +    *)      # diverged from upstream
    +      p=" u+${count#* }-${count%  *}" ;;
    +    esac
    +  fi
    +
    +}
    +
    +# Helper function that is meant to be called from __git_ps1.  It
    +# injects color codes into the appropriate gitstring variables used
    +# to build a gitstring.
    +__git_ps1_colorize_gitstring ()
    +{
    +  if [[ -n ${ZSH_VERSION-} ]]; then
    +    local c_red='%F{red}'
    +    local c_green='%F{green}'
    +    local c_lblue='%F{blue}'
    +    local c_clear='%f'
    +  else
    +    # Using \[ and \] around colors is necessary to prevent
    +    # issues with command line editing/browsing/completion!
    +    local c_red='\[\e[31m\]'
    +    local c_green='\[\e[32m\]'
    +    local c_lblue='\[\e[1;34m\]'
    +    local c_clear='\[\e[0m\]'
    +  fi
    +  local bad_color=$c_red
    +  local ok_color=$c_green
    +  local flags_color="$c_lblue"
    +
    +  local branch_color=""
    +  if [ $detached = no ]; then
    +    branch_color="$ok_color"
    +  else
    +    branch_color="$bad_color"
    +  fi
    +  c="$branch_color$c"
    +
    +  z="$c_clear$z"
    +  if [ "$w" = "*" ]; then
    +    w="$bad_color$w"
    +  fi
    +  if [ -n "$i" ]; then
    +    i="$ok_color$i"
    +  fi
    +  if [ -n "$s" ]; then
    +    s="$flags_color$s"
    +  fi
    +  if [ -n "$u" ]; then
    +    u="$bad_color$u"
    +  fi
    +  r="$c_clear$r"
    +}
    +
    +# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
    +# when called from PS1 using command substitution
    +# in this mode it prints text to add to bash PS1 prompt (includes branch name)
    +#
    +# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
    +# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
    +# when two arguments are given, the first is prepended and the second appended
    +# to the state string when assigned to PS1.
    +# The optional third parameter will be used as printf format string to further
    +# customize the output of the git-status string.
    +# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
    +__git_ps1 ()
    +{
    +  local pcmode=no
    +  local detached=no
    +  local ps1pc_start='\u@\h:\w '
    +  local ps1pc_end='\$ '
    +  local printf_format=' (%s)'
    +
    +  case "$#" in
    +    2|3)  pcmode=yes
    +      ps1pc_start="$1"
    +      ps1pc_end="$2"
    +      printf_format="${3:-$printf_format}"
    +    ;;
    +    0|1)  printf_format="${1:-$printf_format}"
    +    ;;
    +    *)  return
    +    ;;
    +  esac
    +
    +  local repo_info rev_parse_exit_code
    +  repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
    +    --is-bare-repository --is-inside-work-tree \
    +    --short HEAD 2>/dev/null)"
    +  rev_parse_exit_code="$?"
    +
    +  if [ -z "$repo_info" ]; then
    +    if [ $pcmode = yes ]; then
    +      #In PC mode PS1 always needs to be set
    +      PS1="$ps1pc_start$ps1pc_end"
    +    fi
    +    return
    +  fi
    +
    +  local short_sha
    +  if [ "$rev_parse_exit_code" = "0" ]; then
    +    short_sha="${repo_info##*$'\n'}"
    +    repo_info="${repo_info%$'\n'*}"
    +  fi
    +  local inside_worktree="${repo_info##*$'\n'}"
    +  repo_info="${repo_info%$'\n'*}"
    +  local bare_repo="${repo_info##*$'\n'}"
    +  repo_info="${repo_info%$'\n'*}"
    +  local inside_gitdir="${repo_info##*$'\n'}"
    +  local g="${repo_info%$'\n'*}"
    +
    +  local r=""
    +  local b=""
    +  local step=""
    +  local total=""
    +  if [ -d "$g/rebase-merge" ]; then
    +    read b 2>/dev/null <"$g/rebase-merge/head-name"
    +    read step 2>/dev/null <"$g/rebase-merge/msgnum"
    +    read total 2>/dev/null <"$g/rebase-merge/end"
    +    if [ -f "$g/rebase-merge/interactive" ]; then
    +      r="|REBASE-i"
    +    else
    +      r="|REBASE-m"
    +    fi
    +  else
    +    if [ -d "$g/rebase-apply" ]; then
    +      read step 2>/dev/null <"$g/rebase-apply/next"
    +      read total 2>/dev/null <"$g/rebase-apply/last"
    +      if [ -f "$g/rebase-apply/rebasing" ]; then
    +        read b 2>/dev/null <"$g/rebase-apply/head-name"
    +        r="|REBASE"
    +      elif [ -f "$g/rebase-apply/applying" ]; then
    +        r="|AM"
    +      else
    +        r="|AM/REBASE"
    +      fi
    +    elif [ -f "$g/MERGE_HEAD" ]; then
    +      r="|MERGING"
    +    elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
    +      r="|CHERRY-PICKING"
    +    elif [ -f "$g/REVERT_HEAD" ]; then
    +      r="|REVERTING"
    +    elif [ -f "$g/BISECT_LOG" ]; then
    +      r="|BISECTING"
    +    fi
    +
    +    if [ -n "$b" ]; then
    +      :
    +    elif [ -h "$g/HEAD" ]; then
    +      # symlink symbolic ref
    +      b="$(git symbolic-ref HEAD 2>/dev/null)"
    +    else
    +      local head=""
    +      if ! read head 2>/dev/null <"$g/HEAD"; then
    +        if [ $pcmode = yes ]; then
    +          PS1="$ps1pc_start$ps1pc_end"
    +        fi
    +        return
    +      fi
    +      # is it a symbolic ref?
    +      b="${head#ref: }"
    +      if [ "$head" = "$b" ]; then
    +        detached=yes
    +        b="$(
    +        case "${GIT_PS1_DESCRIBE_STYLE-}" in
    +        (contains)
    +          git describe --contains HEAD ;;
    +        (branch)
    +          git describe --contains --all HEAD ;;
    +        (describe)
    +          git describe HEAD ;;
    +        (* | default)
    +          git describe --tags --exact-match HEAD ;;
    +        esac 2>/dev/null)" ||
    +
    +        b="$short_sha..."
    +        b="($b)"
    +      fi
    +    fi
    +  fi
    +
    +  if [ -n "$step" ] && [ -n "$total" ]; then
    +    r="$r $step/$total"
    +  fi
    +
    +  local w=""
    +  local i=""
    +  local s=""
    +  local u=""
    +  local c=""
    +  local p=""
    +
    +  if [ "true" = "$inside_gitdir" ]; then
    +    if [ "true" = "$bare_repo" ]; then
    +      c="BARE:"
    +    else
    +      b="GIT_DIR!"
    +    fi
    +  elif [ "true" = "$inside_worktree" ]; then
    +    if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
    +       [ "$(git config --bool bash.showDirtyState)" != "false" ]
    +    then
    +      git diff --no-ext-diff --quiet --exit-code || w="*"
    +      if [ -n "$short_sha" ]; then
    +        git diff-index --cached --quiet HEAD -- || i="+"
    +      else
    +        i="#"
    +      fi
    +    fi
    +    if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
    +       [ -r "$g/refs/stash" ]; then
    +      s="$"
    +    fi
    +
    +    if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
    +       [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
    +       git ls-files --others --exclude-standard --error-unmatch -- '*' >/dev/null 2>/dev/null
    +    then
    +      u="%${ZSH_VERSION+%}"
    +    fi
    +
    +    if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
    +      __git_ps1_show_upstream
    +    fi
    +  fi
    +
    +  local z="${GIT_PS1_STATESEPARATOR-" "}"
    +
    +  # NO color option unless in PROMPT_COMMAND mode
    +  if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
    +    __git_ps1_colorize_gitstring
    +  fi
    +
    +  local f="$w$i$s$u"
    +  local gitstring="$c${b##refs/heads/}${f:+$z$f}$r$p"
    +
    +  if [ $pcmode = yes ]; then
    +    if [[ -n ${ZSH_VERSION-} ]]; then
    +      gitstring=$(printf -- "$printf_format" "$gitstring")
    +    else
    +      printf -v gitstring -- "$printf_format" "$gitstring"
    +    fi
    +    PS1="$ps1pc_start$gitstring$ps1pc_end"
    +  else
    +    printf -- "$printf_format" "$gitstring"
    +  fi
    +}
    
    From f6a481edaa2d00be1243b24801d834927fb7072f Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 12:48:39 +0800
    Subject: [PATCH 034/186] Add .bashrc into docker
    
    ---
     paddle/scripts/docker/Dockerfile | 4 +---
     1 file changed, 1 insertion(+), 3 deletions(-)
    
    diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile
    index 27423faef4..ea1d8aba36 100644
    --- a/paddle/scripts/docker/Dockerfile
    +++ b/paddle/scripts/docker/Dockerfile
    @@ -22,9 +22,7 @@ ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
     ENV HOME /root
     
     # Add bash enhancements
    -ADD root/.bashrc /root/.bashrc
    -ADD root/.gitconfig /root/.gitconfig
    -ADD root/.scripts /root/.scripts
    +COPY ./paddle/scripts/docker/root/ /root/
     
     RUN apt-get update && \
         apt-get install -y git python-pip python-dev openssh-server bison && \
    
    From f7ecd312c5a56c48eeafd63fb168f106ad973e66 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 12:49:35 +0800
    Subject: [PATCH 035/186] update event handler
    
    ---
     demo/image_classification/train_v2_vgg.py | 2 --
     1 file changed, 2 deletions(-)
    
    diff --git a/demo/image_classification/train_v2_vgg.py b/demo/image_classification/train_v2_vgg.py
    index 33b53b27da..25bfd798eb 100644
    --- a/demo/image_classification/train_v2_vgg.py
    +++ b/demo/image_classification/train_v2_vgg.py
    @@ -6,8 +6,6 @@ def event_handler(event):
             if event.batch_id % 100 == 0:
                 print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id,
                                                       event.cost)
    -    else:
    -        pass
     
     
     def vgg_bn_drop(input):
    
    From 4fa6e8e5cb1993a5c9b96bc42d90c0b5d56e6dd2 Mon Sep 17 00:00:00 2001
    From: "yi.wu" 
    Date: Wed, 1 Mar 2017 13:43:23 +0800
    Subject: [PATCH 036/186] Refine doc fix link error
    
    ---
     doc/howto/usage/k8s/k8s_distributed_cn.md | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md
    index 3a47a3832f..4027f804a6 100644
    --- a/doc/howto/usage/k8s/k8s_distributed_cn.md
    +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md
    @@ -2,7 +2,7 @@
     
     前一篇文章介绍了如何在Kubernetes集群上启动一个单机PaddlePaddle训练作业 (Job)。在这篇文章里,我们介绍如何在Kubernetes集群上进行分布式PaddlePaddle训练作业。关于PaddlePaddle的分布式训练,文章 [Cluster Training](https://github.com/baidu/Paddle/blob/develop/doc/cluster/opensource/cluster_train.md)介绍了一种通过SSH远程分发任务,进行分布式训练的方法,与此不同的是,本文将介绍在Kubernetes容器管理平台上快速构建PaddlePaddle容器集群,进行分布式训练的方案。
     
    -有关Kubernetes相关概念以及如何搭建和配置Kubernetes集群,可以参考[k8s_basis](./k8s_basis.md)。
    +有关Kubernetes相关概念以及如何搭建和配置Kubernetes集群,可以参考[k8s_basis](./k8s_basis_cn.md)。
     
     ## 整体方案
     
    
    From 6dd21658dc96ac46c22c2287a21cd78c1f616667 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 14:07:04 +0800
    Subject: [PATCH 037/186] Add config_base.py for Layer
    
    ---
     python/paddle/v2/config_base.py | 72 ++++++++++++++++++++++++++++++++
     python/paddle/v2/layer.py       | 73 +--------------------------------
     2 files changed, 73 insertions(+), 72 deletions(-)
     create mode 100644 python/paddle/v2/config_base.py
    
    diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py
    new file mode 100644
    index 0000000000..c733f4866d
    --- /dev/null
    +++ b/python/paddle/v2/config_base.py
    @@ -0,0 +1,72 @@
    +import collections
    +
    +from paddle.trainer_config_helpers.default_decorators import wrap_name_default
    +import paddle.trainer_config_helpers as conf_helps
    +
    +
    +class Layer(object):
    +    def __init__(self, name=None, parent_layers=None):
    +        assert isinstance(parent_layers, dict)
    +        self.name = name
    +        self.__parent_layers__ = parent_layers
    +
    +    def to_proto(self, context):
    +        """
    +        function to set proto attribute
    +        """
    +        kwargs = dict()
    +        for layer_name in self.__parent_layers__:
    +            if not isinstance(self.__parent_layers__[layer_name],
    +                              collections.Sequence):
    +                v1_layer = self.__parent_layers__[layer_name].to_proto(
    +                    context=context)
    +            else:
    +                v1_layer = map(lambda x: x.to_proto(context=context),
    +                               self.__parent_layers__[layer_name])
    +            kwargs[layer_name] = v1_layer
    +
    +        if self.name is None:
    +            return self.to_proto_impl(**kwargs)
    +        elif self.name not in context:
    +            context[self.name] = self.to_proto_impl(**kwargs)
    +
    +        return context[self.name]
    +
    +    def to_proto_impl(self, **kwargs):
    +        raise NotImplementedError()
    +
    +
    +def __convert_to_v2__(method_name, parent_names, is_default_name=True):
    +    if is_default_name:
    +        wrapper = wrap_name_default(name_prefix=method_name)
    +    else:
    +        wrapper = None
    +
    +    class V2LayerImpl(Layer):
    +        def __init__(self, **kwargs):
    +            parent_layers = dict()
    +            other_kwargs = dict()
    +            for pname in parent_names:
    +                if kwargs.has_key(pname):
    +                    parent_layers[pname] = kwargs[pname]
    +
    +            for key in kwargs.keys():
    +                if key not in parent_names:
    +                    other_kwargs[key] = kwargs[key]
    +
    +            name = kwargs.get('name', None)
    +            super(V2LayerImpl, self).__init__(name, parent_layers)
    +            self.__other_kwargs__ = other_kwargs
    +
    +        if wrapper is not None:
    +            __init__ = wrapper(__init__)
    +
    +        def to_proto_impl(self, **kwargs):
    +            args = dict()
    +            for each in kwargs:
    +                args[each] = kwargs[each]
    +            for each in self.__other_kwargs__:
    +                args[each] = self.__other_kwargs__[each]
    +            return getattr(conf_helps, method_name)(**args)
    +
    +    return V2LayerImpl
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index 19f3c2f998..67111f1315 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -65,10 +65,7 @@ to be in a Python function but could be anywhere.
     Also, the creation of a protobuf message is hidden in the invocation of
     paddle.v2.parameters.create, no longer exposed to users.
     """
    -
    -import collections
    -import inspect
    -
    +from config_base import Layer, __convert_to_v2__
     import paddle.trainer_config_helpers as conf_helps
     from paddle.trainer_config_helpers.config_parser_utils import \
         parse_network_config as __parse__
    @@ -107,74 +104,6 @@ def parse_network(*outputs):
         return __parse__(__real_func__)
     
     
    -class Layer(object):
    -    def __init__(self, name=None, parent_layers=None):
    -        assert isinstance(parent_layers, dict)
    -        self.name = name
    -        self.__parent_layers__ = parent_layers
    -
    -    def to_proto(self, context):
    -        """
    -        function to set proto attribute
    -        """
    -        kwargs = dict()
    -        for layer_name in self.__parent_layers__:
    -            if not isinstance(self.__parent_layers__[layer_name],
    -                              collections.Sequence):
    -                v1_layer = self.__parent_layers__[layer_name].to_proto(
    -                    context=context)
    -            else:
    -                v1_layer = map(lambda x: x.to_proto(context=context),
    -                               self.__parent_layers__[layer_name])
    -            kwargs[layer_name] = v1_layer
    -
    -        if self.name is None:
    -            return self.to_proto_impl(**kwargs)
    -        elif self.name not in context:
    -            context[self.name] = self.to_proto_impl(**kwargs)
    -
    -        return context[self.name]
    -
    -    def to_proto_impl(self, **kwargs):
    -        raise NotImplementedError()
    -
    -
    -def __convert_to_v2__(method_name, parent_names, is_default_name=True):
    -    if is_default_name:
    -        wrapper = wrap_name_default(name_prefix=method_name)
    -    else:
    -        wrapper = None
    -
    -    class V2LayerImpl(Layer):
    -        def __init__(self, **kwargs):
    -            parent_layers = dict()
    -            other_kwargs = dict()
    -            for pname in parent_names:
    -                if kwargs.has_key(pname):
    -                    parent_layers[pname] = kwargs[pname]
    -
    -            for key in kwargs.keys():
    -                if key not in parent_names:
    -                    other_kwargs[key] = kwargs[key]
    -
    -            name = kwargs.get('name', None)
    -            super(V2LayerImpl, self).__init__(name, parent_layers)
    -            self.__other_kwargs__ = other_kwargs
    -
    -        if wrapper is not None:
    -            __init__ = wrapper(__init__)
    -
    -        def to_proto_impl(self, **kwargs):
    -            args = dict()
    -            for each in kwargs:
    -                args[each] = kwargs[each]
    -            for each in self.__other_kwargs__:
    -                args[each] = self.__other_kwargs__[each]
    -            return getattr(conf_helps, method_name)(**args)
    -
    -    return V2LayerImpl
    -
    -
     """
     Some layer may need some special config, and can not use __convert_to_v2__ to convert.
     So we also need to implement some special LayerV2.
    
    From 057d0cbd6ebb8fdd97f324c58deaf7b9cdf11c61 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 14:19:35 +0800
    Subject: [PATCH 038/186] Complete networks.
    
    ---
     python/paddle/v2/__init__.py    |  3 ++-
     python/paddle/v2/config_base.py | 14 ++++++++++
     python/paddle/v2/networks.py    | 45 +++++++++++++++++++++++++++++++++
     3 files changed, 61 insertions(+), 1 deletion(-)
     create mode 100644 python/paddle/v2/networks.py
    
    diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py
    index b31efe170d..f055c845c7 100644
    --- a/python/paddle/v2/__init__.py
    +++ b/python/paddle/v2/__init__.py
    @@ -24,12 +24,13 @@ from . import dataset
     from . import reader
     import attr
     import pooling
    +import networks
     import py_paddle.swig_paddle as api
     
     __all__ = [
         'optimizer', 'layer', 'activation', 'parameters', 'init', 'trainer',
         'event', 'data_type', 'attr', 'pooling', 'data_feeder', 'dataset', 'reader',
    -    'topology'
    +    'topology', 'networks'
     ]
     
     
    diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py
    index c733f4866d..035f96b0f2 100644
    --- a/python/paddle/v2/config_base.py
    +++ b/python/paddle/v2/config_base.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import collections
     
     from paddle.trainer_config_helpers.default_decorators import wrap_name_default
    diff --git a/python/paddle/v2/networks.py b/python/paddle/v2/networks.py
    new file mode 100644
    index 0000000000..74d91593d8
    --- /dev/null
    +++ b/python/paddle/v2/networks.py
    @@ -0,0 +1,45 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +import paddle.trainer_config_helpers.networks as conf_nw
    +import inspect
    +from config_base import __convert_to_v2__
    +
    +__all__ = []
    +
    +
    +def __initialize__():
    +    for each_subnetwork in conf_nw.__all__:
    +        if each_subnetwork in ['inputs', 'outputs']:
    +            continue
    +        func = getattr(conf_nw, each_subnetwork)
    +        if hasattr(func, 'argspec'):
    +            argspec = func.argspec
    +        else:
    +            argspec = inspect.getargspec(func)
    +        if each_subnetwork == 'simple_attention':
    +            parents = ['encoded_sequence', 'encoded_proj', 'decoder_state']
    +        else:
    +            parents = filter(lambda x: x.startswith('input'), argspec.args)
    +        assert len(parents) != 0, each_subnetwork
    +        v2_subnet = __convert_to_v2__(
    +            each_subnetwork,
    +            parent_names=parents,
    +            is_default_name='name' in argspec.args)
    +        globals()[each_subnetwork] = v2_subnet
    +        global __all__
    +        __all__.append(each_subnetwork)
    +
    +
    +__initialize__()
    
    From 3590cb1e4d32fdba7505d0f6a98aacf999927314 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 14:23:25 +0800
    Subject: [PATCH 039/186] Add unittests
    
    ---
     python/paddle/v2/tests/test_layer.py | 9 +++++++++
     1 file changed, 9 insertions(+)
    
    diff --git a/python/paddle/v2/tests/test_layer.py b/python/paddle/v2/tests/test_layer.py
    index b138ddbbe6..0055679a91 100644
    --- a/python/paddle/v2/tests/test_layer.py
    +++ b/python/paddle/v2/tests/test_layer.py
    @@ -18,6 +18,7 @@ import paddle.v2.attr as attr
     import paddle.v2.data_type as data_type
     import paddle.v2.layer as layer
     import paddle.v2.pooling as pooling
    +import paddle.v2.networks as networks
     
     pixel = layer.data(name='pixel', type=data_type.dense_vector(128))
     label = layer.data(name='label', type=data_type.integer_value(10))
    @@ -251,5 +252,13 @@ class ProjOpTest(unittest.TestCase):
             print layer.parse_network(conv1)
     
     
    +class NetworkTests(unittest.TestCase):
    +    def test_vgg(self):
    +        img = layer.data(name='pixel', type=data_type.dense_vector(784))
    +        vgg_out = networks.small_vgg(
    +            input_image=img, num_channels=1, num_classes=2)
    +        print layer.parse_network(vgg_out)
    +
    +
     if __name__ == '__main__':
         unittest.main()
    
    From 91d818866a650ebaec266805b56c55f76c618de9 Mon Sep 17 00:00:00 2001
    From: "yi.wu" 
    Date: Wed, 1 Mar 2017 14:48:43 +0800
    Subject: [PATCH 040/186] Refine k8s doc change title
    
    ---
     doc/howto/usage/k8s/k8s_distributed_cn.md | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md
    index 4027f804a6..7213a977b8 100644
    --- a/doc/howto/usage/k8s/k8s_distributed_cn.md
    +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md
    @@ -1,4 +1,4 @@
    -# 使用Paddle在Kubernetes集群上完成分布式训练
    +# Kubernetes分布式训练
     
     前一篇文章介绍了如何在Kubernetes集群上启动一个单机PaddlePaddle训练作业 (Job)。在这篇文章里,我们介绍如何在Kubernetes集群上进行分布式PaddlePaddle训练作业。关于PaddlePaddle的分布式训练,文章 [Cluster Training](https://github.com/baidu/Paddle/blob/develop/doc/cluster/opensource/cluster_train.md)介绍了一种通过SSH远程分发任务,进行分布式训练的方法,与此不同的是,本文将介绍在Kubernetes容器管理平台上快速构建PaddlePaddle容器集群,进行分布式训练的方案。
     
    
    From 4c24ac1a9952349c0965d5c50a07878ec2632e17 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 14:50:55 +0800
    Subject: [PATCH 041/186] Init inferencer.
    
    ---
     python/paddle/v2/__init__.py   |  6 +++-
     python/paddle/v2/inferencer.py | 54 ++++++++++++++++++++++++++++++++++
     2 files changed, 59 insertions(+), 1 deletion(-)
     create mode 100644 python/paddle/v2/inferencer.py
    
    diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py
    index b31efe170d..cc8f33f980 100644
    --- a/python/paddle/v2/__init__.py
    +++ b/python/paddle/v2/__init__.py
    @@ -24,12 +24,13 @@ from . import dataset
     from . import reader
     import attr
     import pooling
    +import inferencer
     import py_paddle.swig_paddle as api
     
     __all__ = [
         'optimizer', 'layer', 'activation', 'parameters', 'init', 'trainer',
         'event', 'data_type', 'attr', 'pooling', 'data_feeder', 'dataset', 'reader',
    -    'topology'
    +    'topology', 'inferencer', 'infer'
     ]
     
     
    @@ -39,3 +40,6 @@ def init(**kwargs):
             args.append('--%s=%s' % (key, str(kwargs[key])))
     
         api.initPaddle(*args)
    +
    +
    +infer = inferencer.infer
    diff --git a/python/paddle/v2/inferencer.py b/python/paddle/v2/inferencer.py
    new file mode 100644
    index 0000000000..36a8ee3711
    --- /dev/null
    +++ b/python/paddle/v2/inferencer.py
    @@ -0,0 +1,54 @@
    +import py_paddle.swig_paddle as api
    +
    +import topology
    +from data_feeder import DataFeeder
    +import itertools
    +import numpy
    +
    +__all__ = ['InferenceEngine', 'infer']
    +
    +
    +class InferenceEngine(object):
    +    def __init__(self, output, parameters):
    +        topo = topology.Topology(output)
    +        gm = api.GradientMachine.createFromConfigProto(
    +            topo.proto(), api.CREATE_MODE_TESTING, [api.PARAMETER_VALUE])
    +        for param in gm.getParameters():
    +            val = param.getBuf(api.PARAMETER_VALUE)
    +            name = param.getName()
    +            assert isinstance(val, api.Matrix)
    +            val.copyFromNumpyMat(parameters.get(name))
    +        self.__gradient_machine__ = gm
    +        self.__data_types__ = topo.data_type()
    +
    +    def iter_infer(self, reader, reader_dict=None):
    +        feeder = DataFeeder(self.__data_types__, reader_dict)
    +        out_args = api.Arguments.createArguments(0)
    +        self.__gradient_machine__.start()
    +        for data_batch in reader():
    +            yield self.__gradient_machine__.forwardTest(
    +                feeder(data_batch), out_args, api.PASS_TEST)
    +        self.__gradient_machine__.finish()
    +
    +    def iter_infer_field(self, field, **kwargs):
    +        for result in self.iter_infer(**kwargs):
    +            yield [each_result[field] for each_result in result]
    +
    +    def infer(self, field='value', **kwargs):
    +        retv = []
    +        for result in itertools.izip(
    +                self.iter_infer_field(
    +                    field=field, **kwargs)):
    +            retv.append(numpy.concatenate(result))
    +        return retv
    +
    +    def default_reader_dict(self):
    +        reader_dict = dict()
    +        for i, tp in enumerate(self.__data_types__):
    +            reader_dict[tp[0]] = i
    +        return reader_dict
    +
    +
    +def infer(output, parameters, reader, reader_dict=None, field='value'):
    +    inferer = InferenceEngine(output=output, parameters=parameters)
    +    return inferer.infer(field=field, reader=reader, reader_dict=reader_dict)
    
    From d227f4479e5d9b58c45059871c5cd4e221b1a05f Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 15:06:24 +0800
    Subject: [PATCH 042/186] Add resnet
    
    ---
     demo/image_classification/train_v2_resnet.py | 158 +++++++++++++++++++
     demo/image_classification/train_v2_vgg.py    |  16 +-
     2 files changed, 173 insertions(+), 1 deletion(-)
     create mode 100644 demo/image_classification/train_v2_resnet.py
    
    diff --git a/demo/image_classification/train_v2_resnet.py b/demo/image_classification/train_v2_resnet.py
    new file mode 100644
    index 0000000000..fdfa87cd87
    --- /dev/null
    +++ b/demo/image_classification/train_v2_resnet.py
    @@ -0,0 +1,158 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +import paddle.v2 as paddle
    +
    +
    +def event_handler(event):
    +    if isinstance(event, paddle.event.EndIteration):
    +        if event.batch_id % 100 == 0:
    +            print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id,
    +                                                  event.cost)
    +
    +
    +def conv_bn_layer(input,
    +                  ch_out,
    +                  filter_size,
    +                  stride,
    +                  padding,
    +                  active_type=paddle.activation.Relu(),
    +                  ch_in=None):
    +    tmp = paddle.layer.img_conv(
    +        input=input,
    +        filter_size=filter_size,
    +        num_channels=ch_in,
    +        num_filters=ch_out,
    +        stride=stride,
    +        padding=padding,
    +        act=paddle.activation.Linear(),
    +        bias_attr=False)
    +    return paddle.layer.batch_norm(input=tmp, act=active_type)
    +
    +
    +def shortcut(ipt, n_in, n_out, stride):
    +    if n_in != n_out:
    +        print("n_in != n_out")
    +        return conv_bn_layer(ipt, n_out, 1, stride, 0,
    +                             paddle.activation.Linear())
    +    else:
    +        return ipt
    +
    +
    +def basicblock(ipt, ch_out, stride):
    +    ch_in = ipt.num_filters
    +    tmp = conv_bn_layer(ipt, ch_out, 3, stride, 1)
    +    tmp = conv_bn_layer(tmp, ch_out, 3, 1, 1, paddle.activation.Linear())
    +    short = shortcut(ipt, ch_in, ch_out, stride)
    +    return paddle.layer.addto(input=[tmp, short], act=paddle.activation.Relu())
    +
    +
    +def bottleneck(ipt, ch_out, stride):
    +    ch_in = ipt.num_filter
    +    tmp = conv_bn_layer(ipt, ch_out, 1, stride, 0)
    +    tmp = conv_bn_layer(tmp, ch_out, 3, 1, 1)
    +    tmp = conv_bn_layer(tmp, ch_out * 4, 1, 1, 0, paddle.activation.Linear())
    +    short = shortcut(ipt, ch_in, ch_out * 4, stride)
    +    return paddle.layer.addto(input=[tmp, short], act=paddle.activation.Relu())
    +
    +
    +def layer_warp(block_func, ipt, features, count, stride):
    +    tmp = block_func(ipt, features, stride)
    +    for i in range(1, count):
    +        tmp = block_func(tmp, features, 1)
    +    return tmp
    +
    +
    +def resnet_imagenet(ipt, depth=50):
    +    cfg = {
    +        18: ([2, 2, 2, 1], basicblock),
    +        34: ([3, 4, 6, 3], basicblock),
    +        50: ([3, 4, 6, 3], bottleneck),
    +        101: ([3, 4, 23, 3], bottleneck),
    +        152: ([3, 8, 36, 3], bottleneck)
    +    }
    +    stages, block_func = cfg[depth]
    +    tmp = conv_bn_layer(
    +        ipt, ch_in=3, ch_out=64, filter_size=7, stride=2, padding=3)
    +    tmp = paddle.layer.img_pool(input=tmp, pool_size=3, stride=2)
    +    tmp = layer_warp(block_func, tmp, 64, stages[0], 1)
    +    tmp = layer_warp(block_func, tmp, 128, stages[1], 2)
    +    tmp = layer_warp(block_func, tmp, 256, stages[2], 2)
    +    tmp = layer_warp(block_func, tmp, 512, stages[3], 2)
    +    tmp = paddle.layer.img_pool(
    +        input=tmp, pool_size=7, stride=1, pool_type=paddle.pooling.Avg())
    +
    +    tmp = paddle.layer.fc(input=tmp, size=1000, act=paddle.activation.Softmax())
    +    return tmp
    +
    +
    +def resnet_cifar10(ipt, depth=32):
    +    # depth should be one of 20, 32, 44, 56, 110, 1202
    +    assert (depth - 2) % 6 == 0
    +    n = (depth - 2) / 6
    +    nStages = {16, 64, 128}
    +    conv1 = conv_bn_layer(
    +        ipt, ch_in=3, ch_out=16, filter_size=3, stride=1, padding=1)
    +    res1 = layer_warp(basicblock, conv1, 16, n, 1)
    +    res2 = layer_warp(basicblock, res1, 32, n, 2)
    +    res3 = layer_warp(basicblock, res2, 64, n, 2)
    +    pool = paddle.layer.img_pool(
    +        input=res3, pool_size=8, stride=1, pool_type=paddle.pooling.Avg())
    +    return pool
    +
    +
    +def main():
    +    datadim = 3 * 32 * 32
    +    classdim = 10
    +
    +    paddle.init(use_gpu=False, trainer_count=1)
    +
    +    image = paddle.layer.data(
    +        name="image", type=paddle.data_type.dense_vector(datadim))
    +    net = resnet_cifar10(image, depth=32)
    +    out = paddle.layer.fc(input=net,
    +                          size=classdim,
    +                          act=paddle.activation.Softmax())
    +
    +    lbl = paddle.layer.data(
    +        name="label", type=paddle.data_type.integer_value(classdim))
    +    cost = paddle.layer.classification_cost(input=out, label=lbl)
    +
    +    parameters = paddle.parameters.create(cost)
    +
    +    momentum_optimizer = paddle.optimizer.Momentum(
    +        momentum=0.9,
    +        regularization=paddle.optimizer.L2Regularization(rate=0.0002 * 128),
    +        learning_rate=0.1 / 128.0,
    +        learning_rate_decay_a=0.1,
    +        learning_rate_decay_b=50000 * 100,
    +        learning_rate_schedule='discexp',
    +        batch_size=128)
    +
    +    trainer = paddle.trainer.SGD(update_equation=momentum_optimizer)
    +    trainer.train(
    +        reader=paddle.reader.batched(
    +            paddle.reader.shuffle(
    +                paddle.dataset.cifar.train10(), buf_size=3072),
    +            batch_size=128),
    +        cost=cost,
    +        num_passes=1,
    +        parameters=parameters,
    +        event_handler=event_handler,
    +        reader_dict={'image': 0,
    +                     'label': 1}, )
    +
    +
    +if __name__ == '__main__':
    +    main()
    diff --git a/demo/image_classification/train_v2_vgg.py b/demo/image_classification/train_v2_vgg.py
    index 25bfd798eb..5656ac85c6 100644
    --- a/demo/image_classification/train_v2_vgg.py
    +++ b/demo/image_classification/train_v2_vgg.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import paddle.v2 as paddle
     
     
    @@ -20,7 +34,7 @@ def vgg_bn_drop(input):
                 conv_act=paddle.activation.Relu(),
                 conv_with_batchnorm=True,
                 conv_batchnorm_drop_rate=dropouts,
    -            pool_type=pooling.Max())
    +            pool_type=paddle.pooling.Max())
     
         conv1 = conv_block(input, 64, 2, [0.3, 0], 3)
         conv2 = conv_block(conv1, 128, 2, [0.4, 0])
    
    From 9ba231d3d1c13923bb42a02a88f92bce2fc6afd1 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 15:49:39 +0800
    Subject: [PATCH 043/186] Complete inferencer.
    
    ---
     demo/mnist/api_train_v2.py           | 13 +++++++++++++
     python/paddle/v2/dataset/mnist.py    | 29 ++++++++++++++--------------
     python/paddle/v2/inferencer.py       | 27 +++++++++++++++-----------
     python/paddle/v2/reader/decorator.py | 20 ++++++++++++++++---
     4 files changed, 61 insertions(+), 28 deletions(-)
    
    diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py
    index a59b30ccdb..637596e7bc 100644
    --- a/demo/mnist/api_train_v2.py
    +++ b/demo/mnist/api_train_v2.py
    @@ -44,6 +44,19 @@ def main():
                 batch_size=32),
             event_handler=event_handler)
     
    +    # output is a softmax layer. It returns probabilities.
    +    # Shape should be (100, 10)
    +    probs = paddle.infer(
    +        output=inference,
    +        parameters=parameters,
    +        reader=paddle.reader.batched(
    +            paddle.reader.limited(
    +                paddle.reader.map_readers(lambda item: (item[0], ),
    +                                          paddle.dataset.mnist.test()),
    +                limit=100),
    +            batch_size=32))
    +    print probs.shape
    +
     
     if __name__ == '__main__':
         main()
    diff --git a/python/paddle/v2/dataset/mnist.py b/python/paddle/v2/dataset/mnist.py
    index 1512a3c318..ebcdff78b3 100644
    --- a/python/paddle/v2/dataset/mnist.py
    +++ b/python/paddle/v2/dataset/mnist.py
    @@ -35,24 +35,25 @@ def reader_creator(image_filename, label_filename, buffer_size):
             l = subprocess.Popen([zcat_cmd, label_filename], stdout=subprocess.PIPE)
             l.stdout.read(8)  # skip some magic bytes
     
    -        while True:
    -            labels = numpy.fromfile(
    -                l.stdout, 'ubyte', count=buffer_size).astype("int")
    +        try:  # reader could be break.
    +            while True:
    +                labels = numpy.fromfile(
    +                    l.stdout, 'ubyte', count=buffer_size).astype("int")
     
    -            if labels.size != buffer_size:
    -                break  # numpy.fromfile returns empty slice after EOF.
    +                if labels.size != buffer_size:
    +                    break  # numpy.fromfile returns empty slice after EOF.
     
    -            images = numpy.fromfile(
    -                m.stdout, 'ubyte', count=buffer_size * 28 * 28).reshape(
    -                    (buffer_size, 28 * 28)).astype('float32')
    +                images = numpy.fromfile(
    +                    m.stdout, 'ubyte', count=buffer_size * 28 * 28).reshape(
    +                        (buffer_size, 28 * 28)).astype('float32')
     
    -            images = images / 255.0 * 2.0 - 1.0
    +                images = images / 255.0 * 2.0 - 1.0
     
    -            for i in xrange(buffer_size):
    -                yield images[i, :], int(labels[i])
    -
    -        m.terminate()
    -        l.terminate()
    +                for i in xrange(buffer_size):
    +                    yield images[i, :], int(labels[i])
    +        finally:
    +            m.terminate()
    +            l.terminate()
     
         return reader
     
    diff --git a/python/paddle/v2/inferencer.py b/python/paddle/v2/inferencer.py
    index 36a8ee3711..33f5ad1c07 100644
    --- a/python/paddle/v2/inferencer.py
    +++ b/python/paddle/v2/inferencer.py
    @@ -16,18 +16,18 @@ class InferenceEngine(object):
             for param in gm.getParameters():
                 val = param.getBuf(api.PARAMETER_VALUE)
                 name = param.getName()
    -            assert isinstance(val, api.Matrix)
    -            val.copyFromNumpyMat(parameters.get(name))
    +            assert isinstance(val, api.Vector)
    +            val.copyFromNumpyArray(parameters.get(name).flatten())
             self.__gradient_machine__ = gm
             self.__data_types__ = topo.data_type()
     
         def iter_infer(self, reader, reader_dict=None):
    +        if reader_dict is None:
    +            reader_dict = self.default_reader_dict()
             feeder = DataFeeder(self.__data_types__, reader_dict)
    -        out_args = api.Arguments.createArguments(0)
             self.__gradient_machine__.start()
             for data_batch in reader():
    -            yield self.__gradient_machine__.forwardTest(
    -                feeder(data_batch), out_args, api.PASS_TEST)
    +            yield self.__gradient_machine__.forwardTest(feeder(data_batch))
             self.__gradient_machine__.finish()
     
         def iter_infer_field(self, field, **kwargs):
    @@ -35,12 +35,17 @@ class InferenceEngine(object):
                 yield [each_result[field] for each_result in result]
     
         def infer(self, field='value', **kwargs):
    -        retv = []
    -        for result in itertools.izip(
    -                self.iter_infer_field(
    -                    field=field, **kwargs)):
    -            retv.append(numpy.concatenate(result))
    -        return retv
    +        retv = None
    +        for result in self.iter_infer_field(field=field, **kwargs):
    +            if retv is None:
    +                retv = [[]] * len(result)
    +            for i, item in enumerate(result):
    +                retv[i].append(item)
    +        retv = [numpy.concatenate(out) for out in retv]
    +        if len(retv) == 1:
    +            return retv[0]
    +        else:
    +            return retv
     
         def default_reader_dict(self):
             reader_dict = dict()
    diff --git a/python/paddle/v2/reader/decorator.py b/python/paddle/v2/reader/decorator.py
    index 5687f118ce..fe5acbdff5 100644
    --- a/python/paddle/v2/reader/decorator.py
    +++ b/python/paddle/v2/reader/decorator.py
    @@ -14,13 +14,13 @@
     
     __all__ = [
         'map_readers', 'buffered', 'compose', 'chain', 'shuffle',
    -    'ComposeNotAligned', 'batched'
    +    'ComposeNotAligned', 'batched', 'limited'
     ]
     
    -from Queue import Queue
    -from threading import Thread
     import itertools
     import random
    +from Queue import Queue
    +from threading import Thread
     
     
     def map_readers(func, *readers):
    @@ -213,3 +213,17 @@ def batched(reader, batch_size):
                 yield batch
     
         return batched_reader
    +
    +
    +def limited(reader, limit):
    +    """
    +    Limit the max number of samples that reader could return.
    +    """
    +
    +    def limited_reader():
    +        for i, item in enumerate(reader()):
    +            if i == limit:
    +                break
    +            yield item
    +
    +    return limited_reader
    
    From 73af1942c8fcf89fffa0a13b7d8fdc6cdcdcb815 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Wed, 1 Mar 2017 15:54:46 +0800
    Subject: [PATCH 044/186] add the implementation of rnn by yuyang
    
    ---
     .../paddle/trainer_config_helpers/layers.py   |   2 +-
     python/paddle/v2/layer.py                     | 151 +++++++++++-------
     2 files changed, 97 insertions(+), 56 deletions(-)
    
    diff --git a/python/paddle/trainer_config_helpers/layers.py b/python/paddle/trainer_config_helpers/layers.py
    index 250878cbe1..dcb39784a5 100755
    --- a/python/paddle/trainer_config_helpers/layers.py
    +++ b/python/paddle/trainer_config_helpers/layers.py
    @@ -822,7 +822,7 @@ def data_layer(name, size, height=None, width=None, layer_attr=None):
         return LayerOutput(name, LayerType.DATA, size=size)
     
     
    -@wrap_name_default("embedding")
    +@wrap_name_default("embedding_layer")
     @wrap_param_attr_default()
     @layer_support(ERROR_CLIPPING)
     def embedding_layer(input, size, name=None, param_attr=None, layer_attr=None):
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index 4f6c71664a..71d0e54c0a 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -76,6 +76,9 @@ from paddle.trainer_config_helpers.default_decorators import \
         wrap_bias_attr_default
     from paddle.trainer_config_helpers.default_decorators import wrap_name_default
     from paddle.trainer_config_helpers.layers import layer_support
    +from paddle.trainer.config_parser import \
    +    RecurrentLayerGroupWithoutOutLinksBegin, RecurrentLayerGroupSetOutLink, \
    +    RecurrentLayerGroupEnd, model_type
     
     import activation
     import data_type
    @@ -126,21 +129,28 @@ class Layer(object):
                                    self.__parent_layers__[layer_name])
                 kwargs[layer_name] = v1_layer
     
    -        if self.name is None:
    +        if self.context_name() is None:
                 return self.to_proto_impl(**kwargs)
             elif isinstance(self, MemoryV2):
                 name = self.name + "#__memory__"
                 if name not in context:
                     context[name] = self.to_proto_impl(**kwargs)
                 return context[name]
    -
    -        if self.name not in context:
    -            context[self.name] = self.to_proto_impl(**kwargs)
    +        elif self.context_name() not in context:
    +            context[self.context_name()] = self.to_proto_impl(**kwargs)
             return context[self.name]
     
         def to_proto_impl(self, **kwargs):
             raise NotImplementedError()
     
    +    def context_name(self):
    +        """
    +        Context name means the context which stores `to_proto_impl` result.
    +        If multiple layer share same context_name, the `to_proto_impl` of them
    +        will be invoked only once.
    +        """
    +        return self.name
    +
     
     def __convert_to_v2__(method_name, parent_names, is_default_name=True):
         if is_default_name:
    @@ -231,6 +241,9 @@ class MemoryV2(Layer):
     
             return conf_helps.memory(name=self.name, size=self.size, **args)
     
    +    def context_name(self):
    +        return self.name + "#memory"
    +
     
     class LayerOutputV2(Layer):
         """
    @@ -249,60 +262,20 @@ class LayerOutputV2(Layer):
     
     
     class StaticInputV2(Layer):
    -    def __init__(self, **kwargs):
    -        self.__parent_names__ = ['input']
    -        other_kwargs = dict()
    -        parent_layers = dict()
    -        for pname in self.__parent_names__:
    -            if kwargs.has_key(pname):
    -                parent_layers[pname] = kwargs[pname]
    -        for key in kwargs.keys():
    -            if key not in self.__parent_names__:
    -                other_kwargs[key] = kwargs[key]
    -        self.__kwargs__ = other_kwargs
    -        super(StaticInputV2, self).__init__(parent_layers=parent_layers)
    -
    -    def to_proto_impl(self, **kwargs):
    -        args = dict()
    -        for each in kwargs:
    -            args[each] = kwargs[each]
    -        for each in self.__kwargs__:
    -            args[each] = self.__kwargs__[each]
    -        return conf_helps.StaticInput(**args)
    -
    -
    -class RecurrentGroupV2(Layer):
    -    def __init__(self, name, **kwargs):
    -        self.__parent_names__ = ['input', 'boot_layer']
    -        other_kwargs = dict()
    -        parent_layers = dict()
    -        for pname in self.__parent_names__:
    -            if kwargs.has_key(pname):
    -                parent_layers[pname] = kwargs[pname]
    -        for key in kwargs.keys():
    -            if key not in self.__parent_names__:
    -                other_kwargs[key] = kwargs[key]
    -        self.__kwargs__ = other_kwargs
    -
    -        super(RecurrentGroupV2, self).__init__(
    -            name=name, parent_layers=parent_layers)
    +    def __init__(self, input=None, **kwargs):
    +        assert input is not None
    +        self.__kwargs__ = kwargs
    +        super(StaticInputV2, self).__init__(
    +            name=input.name, parent_layers={'input': input})
     
    -    wrapper = wrap_name_default(name_prefix='recurrent_group')
    -    __init__ = wrapper(__init__)
    +    def context_name(self):
    +        return self.name + "#static_input"
     
         def to_proto_impl(self, **kwargs):
    -        def in_args_converter(*in_args):
    -            if not isinstance(in_args, collections.Sequence):
    -                in_args = [in_args]
    -            return [LayerOutputV2(input) for input in in_args]
    -
             args = dict()
    -        for each in kwargs:
    -            args[each] = kwargs[each]
    -        for each in self.__kwargs__:
    -            args[each] = self.__kwargs__[each]
    -        return conf_helps.recurrent_group(
    -            name=self.name, in_args_converter=in_args_converter, **args)
    +        args.update(kwargs)
    +        args.update(self.__kwargs__)
    +        return conf_helps.StaticInput(**args)
     
     
     class MixedLayerV2(Layer):
    @@ -377,11 +350,79 @@ def mixed(size=0,
         return MixedLayerV2(size, input, name, act, bias_attr, layer_attr)
     
     
    +class RecurrentLayerInput(Layer):
    +    def __init__(self, recurrent_name, index, parent_layers):
    +        assert len(parent_layers) == 1
    +        self.__parents__ = parent_layers.values()[0]
    +        print self.__parents__, parent_layers
    +        super(RecurrentLayerInput, self).__init__(
    +            name=self.__parents__[index].name, parent_layers=parent_layers)
    +        self.__recurrent_name__ = recurrent_name
    +
    +    def context_name(self):
    +        return self.__recurrent_name__ + ".begin"
    +
    +    def to_proto_impl(self, **kwargs):
    +        model_type('recurrent_nn')
    +        RecurrentLayerGroupWithoutOutLinksBegin(
    +            name=self.__recurrent_name__,
    +            in_links=map(lambda x: x.name, self.__parents__))
    +        return self
    +
    +
    +class RecurrentLayerOutput(Layer):
    +    def __init__(self, recurrent_name, index, parent_layers):
    +        assert len(parent_layers) == 1
    +        self.__parents__ = parent_layers.values()[0]
    +        super(RecurrentLayerOutput, self).__init__(
    +            name=self.__parents__[index].name, parent_layers=parent_layers)
    +        self.__recurrent_name__ = recurrent_name
    +
    +    def context_name(self):
    +        return self.__recurrent_name__ + ".end"
    +
    +    def to_proto_impl(self, **kwargs):
    +        for l in self.__parents__:
    +            RecurrentLayerGroupSetOutLink(l.name)
    +        RecurrentLayerGroupEnd(name=self.__recurrent_name__)
    +
    +
    +@wrap_name_default()
    +def recurrent_group(step, input, name=None):
    +    if not isinstance(input, collections.Sequence):
    +        input = [input]
    +
    +    actual_input = [
    +        RecurrentLayerInput(
    +            recurrent_name=name,
    +            index=i,
    +            parent_layers={'recurrent_inputs': input})
    +        for i in xrange(len(input))
    +    ]
    +
    +    actual_output = step(*actual_input)
    +
    +    if not isinstance(actual_output, collections.Sequence):
    +        actual_output = [actual_output]
    +
    +    retv = [
    +        RecurrentLayerOutput(
    +            recurrent_name=name,
    +            index=i,
    +            parent_layers={'recurrent_outputs': actual_output})
    +        for i in xrange(len(actual_output))
    +    ]
    +    if len(retv) == 1:
    +        return retv[0]
    +    else:
    +        return retv
    +
    +
     LayerV2 = Layer
     data = DataLayerV2
     AggregateLevel = conf_helps.layers.AggregateLevel
     ExpandLevel = conf_helps.layers.ExpandLevel
    -recurrent_group = RecurrentGroupV2
    +recurrent_group = recurrent_group
     memory = MemoryV2
     
     
    
    From fd3be087d603bc1ea399769b79c1b0f9e1758161 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Wed, 1 Mar 2017 16:01:42 +0800
    Subject: [PATCH 045/186] restore recurrent_group in v1
    
    ---
     python/paddle/trainer_config_helpers/layers.py | 12 ++----------
     python/paddle/v2/layer.py                      |  5 -----
     2 files changed, 2 insertions(+), 15 deletions(-)
    
    diff --git a/python/paddle/trainer_config_helpers/layers.py b/python/paddle/trainer_config_helpers/layers.py
    index dcb39784a5..2b95c2ed0f 100755
    --- a/python/paddle/trainer_config_helpers/layers.py
    +++ b/python/paddle/trainer_config_helpers/layers.py
    @@ -3115,9 +3115,7 @@ def recurrent_group(step,
                         reverse=False,
                         name=None,
                         targetInlink=None,
    -                    is_generating=False,
    -                    in_args_converter=None,
    -                    boot_layer=None):
    +                    is_generating=False):
         """
         Recurrent layer group is an extremely flexible recurrent unit in
         PaddlePaddle. As long as the user defines the calculation done within a
    @@ -3260,13 +3258,7 @@ def recurrent_group(step,
     
         assert (is_generating != has_LayerOutput)
     
    -    if in_args_converter is None:
    -        layer_outs = step(*in_args)
    -    else:
    -        # append boot_layer to the last of in_args
    -        if boot_layer is not None:
    -            in_args.append(boot_layer)
    -        layer_outs = step(*in_args_converter(*in_args)).to_proto(dict())
    +    layer_outs = step(*in_args)
     
         if isinstance(layer_outs, LayerOutput):
             layer_outs = [layer_outs]
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index 71d0e54c0a..f1ca0b46eb 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -131,11 +131,6 @@ class Layer(object):
     
             if self.context_name() is None:
                 return self.to_proto_impl(**kwargs)
    -        elif isinstance(self, MemoryV2):
    -            name = self.name + "#__memory__"
    -            if name not in context:
    -                context[name] = self.to_proto_impl(**kwargs)
    -            return context[name]
             elif self.context_name() not in context:
                 context[self.context_name()] = self.to_proto_impl(**kwargs)
             return context[self.name]
    
    From 6b199367e0339119a699292ff488976bdb22554f Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Wed, 1 Mar 2017 16:27:55 +0800
    Subject: [PATCH 046/186] handle memory layer
    
    ---
     python/paddle/v2/layer.py | 16 +++++++++++++++-
     1 file changed, 15 insertions(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index f1ca0b46eb..bdb0c29a47 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -133,7 +133,11 @@ class Layer(object):
                 return self.to_proto_impl(**kwargs)
             elif self.context_name() not in context:
                 context[self.context_name()] = self.to_proto_impl(**kwargs)
    -        return context[self.name]
    +
    +        if self.use_context_name():
    +            return context[self.context_name()]
    +        else:
    +            return context[self.name]
     
         def to_proto_impl(self, **kwargs):
             raise NotImplementedError()
    @@ -146,6 +150,9 @@ class Layer(object):
             """
             return self.name
     
    +    def use_context_name(self):
    +        return False
    +
     
     def __convert_to_v2__(method_name, parent_names, is_default_name=True):
         if is_default_name:
    @@ -239,6 +246,13 @@ class MemoryV2(Layer):
         def context_name(self):
             return self.name + "#memory"
     
    +    def use_context_name(self):
    +        """
    +        memory layer will have the same name with some layer
    +        :return:
    +        """
    +        return True
    +
     
     class LayerOutputV2(Layer):
         """
    
    From d9b2e7d09ec2d74f1c2a689e45838c95008006a2 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 17:27:31 +0800
    Subject: [PATCH 047/186] Complete recommendation demo in API.v2
    
    ---
     demo/recommendation/api_train_v2.py   | 69 ++++++++++++++++++++++++---
     python/paddle/v2/dataset/movielens.py | 19 +++++++-
     2 files changed, 80 insertions(+), 8 deletions(-)
    
    diff --git a/demo/recommendation/api_train_v2.py b/demo/recommendation/api_train_v2.py
    index c726fa5bdb..3ff86c2c45 100644
    --- a/demo/recommendation/api_train_v2.py
    +++ b/demo/recommendation/api_train_v2.py
    @@ -2,6 +2,7 @@ import paddle.v2 as paddle
     
     
     def main():
    +    paddle.init(use_gpu=False, trainer_count=3)
         movie_title_dict = paddle.dataset.movielens.get_movie_title_dict()
         uid = paddle.layer.data(
             name='user_id',
    @@ -17,10 +18,17 @@ def main():
             name='age_id',
             type=paddle.data_type.integer_value(
                 len(paddle.dataset.movielens.age_table)))
    -    usr_age_emb = paddle.embedding(input=usr_age_id, size=16)
    +    usr_age_emb = paddle.layer.embedding(input=usr_age_id, size=16)
     
    -    usr_combined_features = paddle.fc(
    -        input=[usr_emb, usr_gender_emb, usr_age_emb],
    +    usr_job_id = paddle.layer.data(
    +        name='job_id',
    +        type=paddle.data_type.integer_value(paddle.dataset.movielens.max_job_id(
    +        ) + 1))
    +
    +    usr_job_emb = paddle.layer.embedding(input=usr_job_id, size=16)
    +
    +    usr_combined_features = paddle.layer.fc(
    +        input=[usr_emb, usr_gender_emb, usr_age_emb, usr_job_emb],
             size=200,
             act=paddle.activation.Tanh())
     
    @@ -30,12 +38,59 @@ def main():
                 paddle.dataset.movielens.max_movie_id() + 1))
         mov_emb = paddle.layer.embedding(input=mov_id, size=32)
     
    +    mov_categories = paddle.layer.data(
    +        name='category_id',
    +        type=paddle.data_type.sparse_binary_vector(
    +            len(paddle.dataset.movielens.movie_categories())))
    +
    +    mov_categories_hidden = paddle.layer.fc(input=mov_categories, size=32)
    +
         mov_title_id = paddle.layer.data(
             name='movie_title',
    -        type=paddle.data_type.integer_value(len(movie_title_dict)))
    -    mov_title_emb = paddle.embedding(input=mov_title_id, size=32)
    -    with paddle.layer.mixed() as mixed:
    -        pass
    +        type=paddle.data_type.integer_value_sequence(len(movie_title_dict)))
    +    mov_title_emb = paddle.layer.embedding(input=mov_title_id, size=32)
    +    mov_title_conv = paddle.networks.sequence_conv_pool(
    +        input=mov_title_emb, hidden_size=32, context_len=3)
    +
    +    mov_combined_features = paddle.layer.fc(
    +        input=[mov_emb, mov_categories_hidden, mov_title_conv],
    +        size=200,
    +        act=paddle.activation.Tanh())
    +
    +    inference = paddle.layer.cos_sim(
    +        a=usr_combined_features, b=mov_combined_features, size=1, scale=5)
    +    cost = paddle.layer.regression_cost(
    +        input=inference,
    +        label=paddle.layer.data(
    +            name='score', type=paddle.data_type.dense_vector(1)))
    +
    +    parameters = paddle.parameters.create(cost)
    +
    +    trainer = paddle.trainer.SGD(cost=cost,
    +                                 parameters=parameters,
    +                                 update_equation=paddle.optimizer.Adam(
    +                                     learning_rate=1e-4))
    +
    +    def event_handler(event):
    +        if isinstance(event, paddle.event.EndIteration):
    +            if event.batch_id % 100 == 0:
    +                print "Pass %d Batch %d Cost %.2f" % (
    +                    event.pass_id, event.batch_id, event.cost)
    +
    +    trainer.train(
    +        reader=paddle.reader.batched(
    +            paddle.dataset.movielens.train(), batch_size=256),
    +        event_handler=event_handler,
    +        reader_dict={
    +            'user_id': 0,
    +            'gender_id': 1,
    +            'age_id': 2,
    +            'job_id': 3,
    +            'movie_id': 4,
    +            'category_id': 5,
    +            'movie_title': 6,
    +            'score': 7
    +        })
     
     
     if __name__ == '__main__':
    diff --git a/python/paddle/v2/dataset/movielens.py b/python/paddle/v2/dataset/movielens.py
    index 6efe42adba..058400502f 100644
    --- a/python/paddle/v2/dataset/movielens.py
    +++ b/python/paddle/v2/dataset/movielens.py
    @@ -6,7 +6,7 @@ import functools
     
     __all__ = [
         'train', 'test', 'get_movie_title_dict', 'max_movie_id', 'max_user_id',
    -    'age_table'
    +    'age_table', 'movie_categories', 'max_job_id'
     ]
     
     age_table = [1, 18, 25, 35, 45, 50, 56]
    @@ -135,6 +135,23 @@ def max_user_id():
         return reduce(__max_index_info__, USER_INFO.viewvalues()).index
     
     
    +def __max_job_id_impl__(a, b):
    +    if a.job_id > b.job_id:
    +        return a
    +    else:
    +        return b
    +
    +
    +def max_job_id():
    +    __initialize_meta_info__()
    +    return reduce(__max_job_id_impl__, USER_INFO.viewvalues()).job_id
    +
    +
    +def movie_categories():
    +    __initialize_meta_info__()
    +    return CATEGORIES_DICT
    +
    +
     def unittest():
         for train_count, _ in enumerate(train()()):
             pass
    
    From 542eb736ab66ca5f7f974fde8d6a91bbfa781f4b Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Wed, 1 Mar 2017 15:47:07 +0800
    Subject: [PATCH 048/186] update
    
    ---
     demo/semantic_role_labeling/api_train_v2.py | 37 +++++++++++----------
     1 file changed, 19 insertions(+), 18 deletions(-)
    
    diff --git a/demo/semantic_role_labeling/api_train_v2.py b/demo/semantic_role_labeling/api_train_v2.py
    index 0317c818db..cfbd2a0224 100644
    --- a/demo/semantic_role_labeling/api_train_v2.py
    +++ b/demo/semantic_role_labeling/api_train_v2.py
    @@ -1,4 +1,4 @@
    -import numpy
    +import numpy as np
     import paddle.v2 as paddle
     from model_v2 import db_lstm
     
    @@ -31,10 +31,6 @@ word_dict_len = len(word_dict)
     label_dict_len = len(label_dict)
     pred_len = len(predicate_dict)
     
    -print 'word_dict_len=%d' % word_dict_len
    -print 'label_dict_len=%d' % label_dict_len
    -print 'pred_len=%d' % pred_len
    -
     
     def train_reader(file_name="data/feature"):
         def reader():
    @@ -65,25 +61,34 @@ def train_reader(file_name="data/feature"):
         return reader
     
     
    +def load_parameter(file_name, h, w):
    +    with open(file_name, 'rb') as f:
    +        f.read(16)  # skip header for float type.
    +        return np.fromfile(f, dtype=np.float32).reshape(h, w)
    +
    +
     def main():
         paddle.init(use_gpu=False, trainer_count=1)
     
         # define network topology
         crf_cost, crf_dec = db_lstm(word_dict_len, label_dict_len, pred_len)
     
    -    #parameters = paddle.parameters.create([crf_cost, crf_dec])
    -    parameters = paddle.parameters.create(crf_cost)
    +    parameters = paddle.parameters.create([crf_cost, crf_dec])
         optimizer = paddle.optimizer.Momentum(momentum=0.01, learning_rate=2e-2)
     
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
    -            print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id,
    -                                                  event.cost)
    -
    +            if event.batch_id % 100 == 0:
    +                print "Pass %d, Batch %d, Cost %f, %s" % (
    +                    event.pass_id, event.batch_id, event.cost, event.metrics)
             else:
                 pass
     
    -    trainer = paddle.trainer.SGD(update_equation=optimizer)
    +    trainer = paddle.trainer.SGD(cost=crf_cost,
    +                                 parameters=parameters,
    +                                 update_equation=optimizer)
    +
    +    parameters.set('emb', load_parameter("data/emb", 44068, 32))
     
         reader_dict = {
             'word_data': 0,
    @@ -96,18 +101,14 @@ def main():
             'mark_data': 7,
             'target': 8,
         }
    -    #trn_reader = paddle.reader.batched(
    -    #    paddle.reader.shuffle(
    -    #        train_reader(), buf_size=8192), batch_size=2)
    -    trn_reader = paddle.reader.batched(train_reader(), batch_size=1)
    +    trn_reader = paddle.reader.batched(
    +        paddle.reader.shuffle(
    +            train_reader(), buf_size=8192), batch_size=10)
         trainer.train(
             reader=trn_reader,
    -        cost=crf_cost,
    -        parameters=parameters,
             event_handler=event_handler,
             num_passes=10000,
             reader_dict=reader_dict)
    -    #cost=[crf_cost, crf_dec],
     
     
     if __name__ == '__main__':
    
    From 82ec9f225b210ff99d83b97e0e09938061aba4ee Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Wed, 1 Mar 2017 17:50:19 +0800
    Subject: [PATCH 049/186] Training the understand sentiment model with the new
     API.
    
    ---
     demo/sentiment/train_with_new_api.py | 182 +++++++++++++++++++++++++++
     1 file changed, 182 insertions(+)
     create mode 100644 demo/sentiment/train_with_new_api.py
    
    diff --git a/demo/sentiment/train_with_new_api.py b/demo/sentiment/train_with_new_api.py
    new file mode 100644
    index 0000000000..f937b02906
    --- /dev/null
    +++ b/demo/sentiment/train_with_new_api.py
    @@ -0,0 +1,182 @@
    +from os.path import join as join_path
    +import paddle.v2 as paddle
    +import paddle.v2.layer as layer
    +import paddle.v2.activation as activation
    +import paddle.v2.data_type as data_type
    +
    +
    +def sequence_conv_pool(input,
    +                       input_size,
    +                       context_len,
    +                       hidden_size,
    +                       name=None,
    +                       context_start=None,
    +                       pool_type=None,
    +                       context_proj_layer_name=None,
    +                       context_proj_param_attr=False,
    +                       fc_layer_name=None,
    +                       fc_param_attr=None,
    +                       fc_bias_attr=None,
    +                       fc_act=None,
    +                       pool_bias_attr=None,
    +                       fc_attr=None,
    +                       context_attr=None,
    +                       pool_attr=None):
    +    """
    +    Text convolution pooling layers helper.
    +
    +    Text input => Context Projection => FC Layer => Pooling => Output.
    +
    +    :param name: name of output layer(pooling layer name)
    +    :type name: basestring
    +    :param input: name of input layer
    +    :type input: LayerOutput
    +    :param context_len: context projection length. See
    +                        context_projection's document.
    +    :type context_len: int
    +    :param hidden_size: FC Layer size.
    +    :type hidden_size: int
    +    :param context_start: context projection length. See
    +                          context_projection's context_start.
    +    :type context_start: int or None
    +    :param pool_type: pooling layer type. See pooling_layer's document.
    +    :type pool_type: BasePoolingType.
    +    :param context_proj_layer_name: context projection layer name.
    +                                    None if user don't care.
    +    :type context_proj_layer_name: basestring
    +    :param context_proj_param_attr: context projection parameter attribute.
    +                                    None if user don't care.
    +    :type context_proj_param_attr: ParameterAttribute or None.
    +    :param fc_layer_name: fc layer name. None if user don't care.
    +    :type fc_layer_name: basestring
    +    :param fc_param_attr: fc layer parameter attribute. None if user don't care.
    +    :type fc_param_attr: ParameterAttribute or None
    +    :param fc_bias_attr: fc bias parameter attribute. False if no bias,
    +                         None if user don't care.
    +    :type fc_bias_attr: ParameterAttribute or None
    +    :param fc_act: fc layer activation type. None means tanh
    +    :type fc_act: BaseActivation
    +    :param pool_bias_attr: pooling layer bias attr. None if don't care.
    +                           False if no bias.
    +    :type pool_bias_attr: ParameterAttribute or None.
    +    :param fc_attr: fc layer extra attribute.
    +    :type fc_attr: ExtraLayerAttribute
    +    :param context_attr: context projection layer extra attribute.
    +    :type context_attr: ExtraLayerAttribute
    +    :param pool_attr: pooling layer extra attribute.
    +    :type pool_attr: ExtraLayerAttribute
    +    :return: output layer name.
    +    :rtype: LayerOutput
    +    """
    +    # Set Default Value to param
    +    context_proj_layer_name = "%s_conv_proj" % name \
    +        if context_proj_layer_name is None else context_proj_layer_name
    +
    +    with layer.mixed(
    +            name=context_proj_layer_name,
    +            size=input_size * context_len,
    +            act=activation.Linear(),
    +            layer_attr=context_attr) as m:
    +        m += layer.context_projection(
    +            input=input,
    +            context_len=context_len,
    +            context_start=context_start,
    +            padding_attr=context_proj_param_attr)
    +
    +    fc_layer_name = "%s_conv_fc" % name \
    +        if fc_layer_name is None else fc_layer_name
    +    fl = layer.fc(name=fc_layer_name,
    +                  input=m,
    +                  size=hidden_size,
    +                  act=fc_act,
    +                  layer_attr=fc_attr,
    +                  param_attr=fc_param_attr,
    +                  bias_attr=fc_bias_attr)
    +
    +    return layer.pooling(
    +        name=name,
    +        input=fl,
    +        pooling_type=pool_type,
    +        bias_attr=pool_bias_attr,
    +        layer_attr=pool_attr)
    +
    +
    +def convolution_net(input_dim,
    +                    class_dim=2,
    +                    emb_dim=128,
    +                    hid_dim=128,
    +                    is_predict=False):
    +    data = layer.data("word", data_type.integer_value_sequence(input_dim))
    +    emb = layer.embedding(input=data, size=emb_dim)
    +    conv_3 = sequence_conv_pool(
    +        input=emb, input_size=emb_dim, context_len=3, hidden_size=hid_dim)
    +    conv_4 = sequence_conv_pool(
    +        input=emb, input_size=emb_dim, context_len=4, hidden_size=hid_dim)
    +    output = layer.fc(input=[conv_3, conv_4],
    +                      size=class_dim,
    +                      act=activation.Softmax())
    +    lbl = layer.data("label", data_type.integer_value(1))
    +    cost = layer.classification_cost(input=output, label=lbl)
    +    return cost
    +
    +
    +def data_reader():
    +    data_dir = "./data/pre-imdb"
    +    train_file = "train_part_000"
    +    test_file = "test_part_000"
    +    dict_file = "dict.txt"
    +    train_file = join_path(data_dir, train_file)
    +    test_file = join_path(data_dir, test_file)
    +    dict_file = join_path(data_dir, dict_file)
    +
    +    with open(dict_file, 'r') as fdict, open(train_file, 'r') as fdata:
    +        dictionary = dict()
    +        for i, line in enumerate(fdict):
    +            dictionary[line.split('\t')[0]] = i
    +
    +        print('dict len : %d' % (len(dictionary)))
    +        for line_count, line in enumerate(fdata):
    +            label, comment = line.strip().split('\t\t')
    +            label = int(label)
    +            words = comment.split()
    +            word_slot = [dictionary[w] for w in words if w in dictionary]
    +            yield (word_slot, label)
    +
    +
    +if __name__ == '__main__':
    +    data_dir = "./data/pre-imdb"
    +    train_list = "train.list"
    +    test_list = "test.list"
    +    dict_file = "dict.txt"
    +    dict_dim = len(open(join_path(data_dir, "dict.txt")).readlines())
    +    class_dim = len(open(join_path(data_dir, 'labels.list')).readlines())
    +    is_predict = False
    +
    +    # init
    +    paddle.init(use_gpu=True, trainer_count=4)
    +
    +    # network config
    +    cost = convolution_net(dict_dim, class_dim=class_dim, is_predict=is_predict)
    +
    +    # create parameters
    +    parameters = paddle.parameters.create(cost)
    +
    +    adam_optimizer = paddle.optimizer.Adam(learning_rate=0.01)
    +
    +    def event_handler(event):
    +        if isinstance(event, paddle.event.EndIteration):
    +            if event.batch_id % 1 == 0:
    +                print "Pass %d, Batch %d, Cost %f, %s" % (
    +                    event.pass_id, event.batch_id, event.cost, event.metrics)
    +
    +    trainer = paddle.trainer.SGD(cost=cost,
    +                                 parameters=parameters,
    +                                 update_equation=adam_optimizer)
    +
    +    trainer.train(
    +        reader=paddle.reader.batched(
    +            data_reader, batch_size=128),
    +        event_handler=event_handler,
    +        reader_dict={'word': 0,
    +                     'label': 1},
    +        num_passes=10)
    
    From 500d8836d03287621e983f815a919d9a29749c6d Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 18:49:13 +0800
    Subject: [PATCH 050/186] Follow comments
    
    ---
     demo/mnist/api_train_v2.py           |  4 ++--
     python/paddle/v2/inferencer.py       |  6 +++---
     python/paddle/v2/reader/decorator.py | 13 ++++++++-----
     3 files changed, 13 insertions(+), 10 deletions(-)
    
    diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py
    index 637596e7bc..06beb7024d 100644
    --- a/demo/mnist/api_train_v2.py
    +++ b/demo/mnist/api_train_v2.py
    @@ -50,10 +50,10 @@ def main():
             output=inference,
             parameters=parameters,
             reader=paddle.reader.batched(
    -            paddle.reader.limited(
    +            paddle.reader.firstn(
                     paddle.reader.map_readers(lambda item: (item[0], ),
                                               paddle.dataset.mnist.test()),
    -                limit=100),
    +                n=100),
                 batch_size=32))
         print probs.shape
     
    diff --git a/python/paddle/v2/inferencer.py b/python/paddle/v2/inferencer.py
    index 33f5ad1c07..ac03b016c9 100644
    --- a/python/paddle/v2/inferencer.py
    +++ b/python/paddle/v2/inferencer.py
    @@ -5,10 +5,10 @@ from data_feeder import DataFeeder
     import itertools
     import numpy
     
    -__all__ = ['InferenceEngine', 'infer']
    +__all__ = ['Inference', 'infer']
     
     
    -class InferenceEngine(object):
    +class Inference(object):
         def __init__(self, output, parameters):
             topo = topology.Topology(output)
             gm = api.GradientMachine.createFromConfigProto(
    @@ -55,5 +55,5 @@ class InferenceEngine(object):
     
     
     def infer(output, parameters, reader, reader_dict=None, field='value'):
    -    inferer = InferenceEngine(output=output, parameters=parameters)
    +    inferer = Inference(output=output, parameters=parameters)
         return inferer.infer(field=field, reader=reader, reader_dict=reader_dict)
    diff --git a/python/paddle/v2/reader/decorator.py b/python/paddle/v2/reader/decorator.py
    index fe5acbdff5..b7657e2776 100644
    --- a/python/paddle/v2/reader/decorator.py
    +++ b/python/paddle/v2/reader/decorator.py
    @@ -14,7 +14,7 @@
     
     __all__ = [
         'map_readers', 'buffered', 'compose', 'chain', 'shuffle',
    -    'ComposeNotAligned', 'batched', 'limited'
    +    'ComposeNotAligned', 'batched', 'firstn'
     ]
     
     import itertools
    @@ -215,15 +215,18 @@ def batched(reader, batch_size):
         return batched_reader
     
     
    -def limited(reader, limit):
    +def firstn(reader, n):
         """
         Limit the max number of samples that reader could return.
         """
     
    -    def limited_reader():
    +    # TODO(yuyang18): Check if just drop the reader, could clean the opened
    +    # resource or not?
    +
    +    def firstn_reader():
             for i, item in enumerate(reader()):
    -            if i == limit:
    +            if i == n:
                     break
                 yield item
     
    -    return limited_reader
    +    return firstn_reader
    
    From 3a5f98c36a13a4c027ee87461f52b49ebb6b6002 Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Wed, 1 Mar 2017 18:59:00 +0800
    Subject: [PATCH 051/186] Add reader.shuffle
    
    ---
     demo/sentiment/train_with_new_api.py | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/demo/sentiment/train_with_new_api.py b/demo/sentiment/train_with_new_api.py
    index f937b02906..59a303c0d5 100644
    --- a/demo/sentiment/train_with_new_api.py
    +++ b/demo/sentiment/train_with_new_api.py
    @@ -134,7 +134,6 @@ def data_reader():
             for i, line in enumerate(fdict):
                 dictionary[line.split('\t')[0]] = i
     
    -        print('dict len : %d' % (len(dictionary)))
             for line_count, line in enumerate(fdata):
                 label, comment = line.strip().split('\t\t')
                 label = int(label)
    @@ -165,7 +164,7 @@ if __name__ == '__main__':
     
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
    -            if event.batch_id % 1 == 0:
    +            if event.batch_id % 100 == 0:
                     print "Pass %d, Batch %d, Cost %f, %s" % (
                         event.pass_id, event.batch_id, event.cost, event.metrics)
     
    @@ -175,7 +174,8 @@ if __name__ == '__main__':
     
         trainer.train(
             reader=paddle.reader.batched(
    -            data_reader, batch_size=128),
    +            paddle.reader.shuffle(
    +                data_reader, buf_size=4096), batch_size=128),
             event_handler=event_handler,
             reader_dict={'word': 0,
                          'label': 1},
    
    From 41f04e5ae4a459c0934cc7bca55e75dbbbb51b8a Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Wed, 1 Mar 2017 19:25:09 +0800
    Subject: [PATCH 052/186] Add regularization and model_average
    
    ---
     demo/sentiment/train_with_new_api.py | 5 ++++-
     1 file changed, 4 insertions(+), 1 deletion(-)
    
    diff --git a/demo/sentiment/train_with_new_api.py b/demo/sentiment/train_with_new_api.py
    index 59a303c0d5..bec07de92a 100644
    --- a/demo/sentiment/train_with_new_api.py
    +++ b/demo/sentiment/train_with_new_api.py
    @@ -160,7 +160,10 @@ if __name__ == '__main__':
         # create parameters
         parameters = paddle.parameters.create(cost)
     
    -    adam_optimizer = paddle.optimizer.Adam(learning_rate=0.01)
    +    adam_optimizer = paddle.optimizer.Adam(
    +        learning_rate=2e-3,
    +        regularization=paddle.optimizer.L2Regularization(rate=8e-4),
    +        model_average=paddle.optimizer.ModelAverage(average_window=0.5))
     
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
    
    From 1d0a8c2f745dc15d17a83ac43e8e3ca9296d6216 Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Wed, 1 Mar 2017 19:31:57 +0800
    Subject: [PATCH 053/186] rename train_v2.py
    
    ---
     demo/sentiment/{train_with_new_api.py => train_v2.py} | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
     rename demo/sentiment/{train_with_new_api.py => train_v2.py} (100%)
    
    diff --git a/demo/sentiment/train_with_new_api.py b/demo/sentiment/train_v2.py
    similarity index 100%
    rename from demo/sentiment/train_with_new_api.py
    rename to demo/sentiment/train_v2.py
    
    From 803da664eddfc85bb55e192b7a98c696bf4fe112 Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Wed, 1 Mar 2017 19:49:17 +0800
    Subject: [PATCH 054/186] Add test
    
    ---
     demo/sentiment/train_v2.py | 29 +++++++++++++++++++++++++++++
     1 file changed, 29 insertions(+)
    
    diff --git a/demo/sentiment/train_v2.py b/demo/sentiment/train_v2.py
    index bec07de92a..a764798add 100644
    --- a/demo/sentiment/train_v2.py
    +++ b/demo/sentiment/train_v2.py
    @@ -142,6 +142,28 @@ def data_reader():
                 yield (word_slot, label)
     
     
    +def test_reader():
    +    data_dir = "./data/pre-imdb"
    +    train_file = "train_part_000"
    +    test_file = "test_part_000"
    +    dict_file = "dict.txt"
    +    train_file = join_path(data_dir, train_file)
    +    test_file = join_path(data_dir, test_file)
    +    dict_file = join_path(data_dir, dict_file)
    +
    +    with open(dict_file, 'r') as fdict, open(test_file, 'r') as ftest:
    +        dictionary = dict()
    +        for i, line in enumerate(fdict):
    +            dictionary[line.split('\t')[0]] = i
    +
    +        for line_count, line in enumerate(ftest):
    +            label, comment = line.strip().split('\t\t')
    +            label = int(label)
    +            words = comment.split()
    +            word_slot = [dictionary[w] for w in words if w in dictionary]
    +            yield (word_slot, label)
    +
    +
     if __name__ == '__main__':
         data_dir = "./data/pre-imdb"
         train_list = "train.list"
    @@ -170,6 +192,13 @@ if __name__ == '__main__':
                 if event.batch_id % 100 == 0:
                     print "Pass %d, Batch %d, Cost %f, %s" % (
                         event.pass_id, event.batch_id, event.cost, event.metrics)
    +        if isinstance(event, paddle.event.EndPass):
    +            result = trainer.test(
    +                reader=paddle.reader.batched(
    +                    test_reader, batch_size=128),
    +                reader_dict={'word': 0,
    +                             'label': 1})
    +            print "Test with Pass %d, %s" % (event.pass_id, result.metrics)
     
         trainer = paddle.trainer.SGD(cost=cost,
                                      parameters=parameters,
    
    From ad44a3ebcaa062342ec799f020bd3975e6b5f899 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 20:14:43 +0800
    Subject: [PATCH 055/186] Update vgg and resnet via api v2
    
    ---
     demo/image_classification/api_v2_resnet.py    |  74 ++++++++
     .../{train_v2_vgg.py => api_v2_train.py}      |  59 ++-----
     demo/image_classification/api_v2_vgg.py       |  47 ++++++
     demo/image_classification/train_v2_resnet.py  | 158 ------------------
     4 files changed, 139 insertions(+), 199 deletions(-)
     create mode 100644 demo/image_classification/api_v2_resnet.py
     rename demo/image_classification/{train_v2_vgg.py => api_v2_train.py} (55%)
     create mode 100644 demo/image_classification/api_v2_vgg.py
     delete mode 100644 demo/image_classification/train_v2_resnet.py
    
    diff --git a/demo/image_classification/api_v2_resnet.py b/demo/image_classification/api_v2_resnet.py
    new file mode 100644
    index 0000000000..19d2054078
    --- /dev/null
    +++ b/demo/image_classification/api_v2_resnet.py
    @@ -0,0 +1,74 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +import paddle.v2 as paddle
    +
    +__all__ = ['resnet_cifar10']
    +
    +
    +def conv_bn_layer(input,
    +                  ch_out,
    +                  filter_size,
    +                  stride,
    +                  padding,
    +                  active_type=paddle.activation.Relu(),
    +                  ch_in=None):
    +    tmp = paddle.layer.img_conv(
    +        input=input,
    +        filter_size=filter_size,
    +        num_channels=ch_in,
    +        num_filters=ch_out,
    +        stride=stride,
    +        padding=padding,
    +        act=paddle.activation.Linear(),
    +        bias_attr=False)
    +    return paddle.layer.batch_norm(input=tmp, act=active_type)
    +
    +
    +def shortcut(ipt, n_in, n_out, stride):
    +    if n_in != n_out:
    +        return conv_bn_layer(ipt, n_out, 1, stride, 0,
    +                             paddle.activation.Linear())
    +    else:
    +        return ipt
    +
    +
    +def basicblock(ipt, ch_out, stride):
    +    ch_in = ch_out * 2
    +    tmp = conv_bn_layer(ipt, ch_out, 3, stride, 1)
    +    tmp = conv_bn_layer(tmp, ch_out, 3, 1, 1, paddle.activation.Linear())
    +    short = shortcut(ipt, ch_in, ch_out, stride)
    +    return paddle.layer.addto(input=[tmp, short], act=paddle.activation.Relu())
    +
    +
    +def layer_warp(block_func, ipt, features, count, stride):
    +    tmp = block_func(ipt, features, stride)
    +    for i in range(1, count):
    +        tmp = block_func(tmp, features, 1)
    +    return tmp
    +
    +
    +def resnet_cifar10(ipt, depth=32):
    +    # depth should be one of 20, 32, 44, 56, 110, 1202
    +    assert (depth - 2) % 6 == 0
    +    n = (depth - 2) / 6
    +    nStages = {16, 64, 128}
    +    conv1 = conv_bn_layer(
    +        ipt, ch_in=3, ch_out=16, filter_size=3, stride=1, padding=1)
    +    res1 = layer_warp(basicblock, conv1, 16, n, 1)
    +    res2 = layer_warp(basicblock, res1, 32, n, 2)
    +    res3 = layer_warp(basicblock, res2, 64, n, 2)
    +    pool = paddle.layer.img_pool(
    +        input=res3, pool_size=8, stride=1, pool_type=paddle.pooling.Avg())
    +    return pool
    diff --git a/demo/image_classification/train_v2_vgg.py b/demo/image_classification/api_v2_train.py
    similarity index 55%
    rename from demo/image_classification/train_v2_vgg.py
    rename to demo/image_classification/api_v2_train.py
    index 5656ac85c6..44a8db3941 100644
    --- a/demo/image_classification/train_v2_vgg.py
    +++ b/demo/image_classification/api_v2_train.py
    @@ -10,9 +10,10 @@
     # distributed under the License is distributed on an "AS IS" BASIS,
     # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     # See the License for the specific language governing permissions and
    -# limitations under the License.
    +# limitations under the License
     
    -import paddle.v2 as paddle
    +from api_v2_vgg import resnet_cifar10
    +from api_v2_resnet import vgg_bn_drop
     
     
     def event_handler(event):
    @@ -22,46 +23,21 @@ def event_handler(event):
                                                       event.cost)
     
     
    -def vgg_bn_drop(input):
    -    def conv_block(ipt, num_filter, groups, dropouts, num_channels=None):
    -        return paddle.layer.img_conv_group(
    -            input=ipt,
    -            num_channels=num_channels,
    -            pool_size=2,
    -            pool_stride=2,
    -            conv_num_filter=[num_filter] * groups,
    -            conv_filter_size=3,
    -            conv_act=paddle.activation.Relu(),
    -            conv_with_batchnorm=True,
    -            conv_batchnorm_drop_rate=dropouts,
    -            pool_type=paddle.pooling.Max())
    -
    -    conv1 = conv_block(input, 64, 2, [0.3, 0], 3)
    -    conv2 = conv_block(conv1, 128, 2, [0.4, 0])
    -    conv3 = conv_block(conv2, 256, 3, [0.4, 0.4, 0])
    -    conv4 = conv_block(conv3, 512, 3, [0.4, 0.4, 0])
    -    conv5 = conv_block(conv4, 512, 3, [0.4, 0.4, 0])
    -
    -    drop = paddle.layer.dropout(input=conv5, dropout_rate=0.5)
    -    fc1 = paddle.layer.fc(input=drop, size=512, act=paddle.activation.Linear())
    -    bn = paddle.layer.batch_norm(
    -        input=fc1,
    -        act=paddle.activation.Relu(),
    -        layer_attr=ExtraAttr(drop_rate=0.5))
    -    fc2 = paddle.layer.fc(input=bn, size=512, act=paddle.activation.Linear())
    -    return fc2
    -
    -
     def main():
         datadim = 3 * 32 * 32
         classdim = 10
     
    -    paddle.init(use_gpu=False, trainer_count=1)
    +    paddle.init(use_gpu=True, trainer_count=1)
     
         image = paddle.layer.data(
             name="image", type=paddle.data_type.dense_vector(datadim))
    +
    +    # option 1. resnet
    +    net = resnet_cifar10(image, depth=32)
    +    # option 2. vgg
         # net = vgg_bn_drop(image)
    -    out = paddle.layer.fc(input=image,
    +
    +    out = paddle.layer.fc(input=net,
                               size=classdim,
                               act=paddle.activation.Softmax())
     
    @@ -70,27 +46,28 @@ def main():
         cost = paddle.layer.classification_cost(input=out, label=lbl)
     
         parameters = paddle.parameters.create(cost)
    +
         momentum_optimizer = paddle.optimizer.Momentum(
             momentum=0.9,
    -        regularization=paddle.optimizer.L2Regularization(rate=0.0005 * 128),
    +        regularization=paddle.optimizer.L2Regularization(rate=0.0002 * 128),
             learning_rate=0.1 / 128.0,
             learning_rate_decay_a=0.1,
             learning_rate_decay_b=50000 * 100,
             learning_rate_schedule='discexp',
             batch_size=128)
     
    -    trainer = paddle.trainer.SGD(update_equation=momentum_optimizer)
    +    trainer = paddle.trainer.SGD(cost=cost,
    +                                 parameters=parameters,
    +                                 update_equation=momentum_optimizer)
         trainer.train(
             reader=paddle.reader.batched(
                 paddle.reader.shuffle(
    -                paddle.dataset.cifar.train10(), buf_size=3072),
    +                paddle.dataset.cifar.train10(), buf_size=50000),
                 batch_size=128),
    -        cost=cost,
    -        num_passes=1,
    -        parameters=parameters,
    +        num_passes=5,
             event_handler=event_handler,
             reader_dict={'image': 0,
    -                     'label': 1}, )
    +                     'label': 1})
     
     
     if __name__ == '__main__':
    diff --git a/demo/image_classification/api_v2_vgg.py b/demo/image_classification/api_v2_vgg.py
    new file mode 100644
    index 0000000000..1e0e6b93ad
    --- /dev/null
    +++ b/demo/image_classification/api_v2_vgg.py
    @@ -0,0 +1,47 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +import paddle.v2 as paddle
    +
    +__all__ = ['vgg_bn_drop']
    +
    +
    +def vgg_bn_drop(input):
    +    def conv_block(ipt, num_filter, groups, dropouts, num_channels=None):
    +        return paddle.networks.img_conv_group(
    +            input=ipt,
    +            num_channels=num_channels,
    +            pool_size=2,
    +            pool_stride=2,
    +            conv_num_filter=[num_filter] * groups,
    +            conv_filter_size=3,
    +            conv_act=paddle.activation.Relu(),
    +            conv_with_batchnorm=True,
    +            conv_batchnorm_drop_rate=dropouts,
    +            pool_type=paddle.pooling.Max())
    +
    +    conv1 = conv_block(input, 64, 2, [0.3, 0], 3)
    +    conv2 = conv_block(conv1, 128, 2, [0.4, 0])
    +    conv3 = conv_block(conv2, 256, 3, [0.4, 0.4, 0])
    +    conv4 = conv_block(conv3, 512, 3, [0.4, 0.4, 0])
    +    conv5 = conv_block(conv4, 512, 3, [0.4, 0.4, 0])
    +
    +    drop = paddle.layer.dropout(input=conv5, dropout_rate=0.5)
    +    fc1 = paddle.layer.fc(input=drop, size=512, act=paddle.activation.Linear())
    +    bn = paddle.layer.batch_norm(
    +        input=fc1,
    +        act=paddle.activation.Relu(),
    +        layer_attr=paddle.attr.Extra(drop_rate=0.5))
    +    fc2 = paddle.layer.fc(input=bn, size=512, act=paddle.activation.Linear())
    +    return fc2
    diff --git a/demo/image_classification/train_v2_resnet.py b/demo/image_classification/train_v2_resnet.py
    deleted file mode 100644
    index fdfa87cd87..0000000000
    --- a/demo/image_classification/train_v2_resnet.py
    +++ /dev/null
    @@ -1,158 +0,0 @@
    -# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    -#
    -# Licensed under the Apache License, Version 2.0 (the "License");
    -# you may not use this file except in compliance with the License.
    -# You may obtain a copy of the License at
    -#
    -#     http://www.apache.org/licenses/LICENSE-2.0
    -#
    -# Unless required by applicable law or agreed to in writing, software
    -# distributed under the License is distributed on an "AS IS" BASIS,
    -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -# See the License for the specific language governing permissions and
    -# limitations under the License.
    -
    -import paddle.v2 as paddle
    -
    -
    -def event_handler(event):
    -    if isinstance(event, paddle.event.EndIteration):
    -        if event.batch_id % 100 == 0:
    -            print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id,
    -                                                  event.cost)
    -
    -
    -def conv_bn_layer(input,
    -                  ch_out,
    -                  filter_size,
    -                  stride,
    -                  padding,
    -                  active_type=paddle.activation.Relu(),
    -                  ch_in=None):
    -    tmp = paddle.layer.img_conv(
    -        input=input,
    -        filter_size=filter_size,
    -        num_channels=ch_in,
    -        num_filters=ch_out,
    -        stride=stride,
    -        padding=padding,
    -        act=paddle.activation.Linear(),
    -        bias_attr=False)
    -    return paddle.layer.batch_norm(input=tmp, act=active_type)
    -
    -
    -def shortcut(ipt, n_in, n_out, stride):
    -    if n_in != n_out:
    -        print("n_in != n_out")
    -        return conv_bn_layer(ipt, n_out, 1, stride, 0,
    -                             paddle.activation.Linear())
    -    else:
    -        return ipt
    -
    -
    -def basicblock(ipt, ch_out, stride):
    -    ch_in = ipt.num_filters
    -    tmp = conv_bn_layer(ipt, ch_out, 3, stride, 1)
    -    tmp = conv_bn_layer(tmp, ch_out, 3, 1, 1, paddle.activation.Linear())
    -    short = shortcut(ipt, ch_in, ch_out, stride)
    -    return paddle.layer.addto(input=[tmp, short], act=paddle.activation.Relu())
    -
    -
    -def bottleneck(ipt, ch_out, stride):
    -    ch_in = ipt.num_filter
    -    tmp = conv_bn_layer(ipt, ch_out, 1, stride, 0)
    -    tmp = conv_bn_layer(tmp, ch_out, 3, 1, 1)
    -    tmp = conv_bn_layer(tmp, ch_out * 4, 1, 1, 0, paddle.activation.Linear())
    -    short = shortcut(ipt, ch_in, ch_out * 4, stride)
    -    return paddle.layer.addto(input=[tmp, short], act=paddle.activation.Relu())
    -
    -
    -def layer_warp(block_func, ipt, features, count, stride):
    -    tmp = block_func(ipt, features, stride)
    -    for i in range(1, count):
    -        tmp = block_func(tmp, features, 1)
    -    return tmp
    -
    -
    -def resnet_imagenet(ipt, depth=50):
    -    cfg = {
    -        18: ([2, 2, 2, 1], basicblock),
    -        34: ([3, 4, 6, 3], basicblock),
    -        50: ([3, 4, 6, 3], bottleneck),
    -        101: ([3, 4, 23, 3], bottleneck),
    -        152: ([3, 8, 36, 3], bottleneck)
    -    }
    -    stages, block_func = cfg[depth]
    -    tmp = conv_bn_layer(
    -        ipt, ch_in=3, ch_out=64, filter_size=7, stride=2, padding=3)
    -    tmp = paddle.layer.img_pool(input=tmp, pool_size=3, stride=2)
    -    tmp = layer_warp(block_func, tmp, 64, stages[0], 1)
    -    tmp = layer_warp(block_func, tmp, 128, stages[1], 2)
    -    tmp = layer_warp(block_func, tmp, 256, stages[2], 2)
    -    tmp = layer_warp(block_func, tmp, 512, stages[3], 2)
    -    tmp = paddle.layer.img_pool(
    -        input=tmp, pool_size=7, stride=1, pool_type=paddle.pooling.Avg())
    -
    -    tmp = paddle.layer.fc(input=tmp, size=1000, act=paddle.activation.Softmax())
    -    return tmp
    -
    -
    -def resnet_cifar10(ipt, depth=32):
    -    # depth should be one of 20, 32, 44, 56, 110, 1202
    -    assert (depth - 2) % 6 == 0
    -    n = (depth - 2) / 6
    -    nStages = {16, 64, 128}
    -    conv1 = conv_bn_layer(
    -        ipt, ch_in=3, ch_out=16, filter_size=3, stride=1, padding=1)
    -    res1 = layer_warp(basicblock, conv1, 16, n, 1)
    -    res2 = layer_warp(basicblock, res1, 32, n, 2)
    -    res3 = layer_warp(basicblock, res2, 64, n, 2)
    -    pool = paddle.layer.img_pool(
    -        input=res3, pool_size=8, stride=1, pool_type=paddle.pooling.Avg())
    -    return pool
    -
    -
    -def main():
    -    datadim = 3 * 32 * 32
    -    classdim = 10
    -
    -    paddle.init(use_gpu=False, trainer_count=1)
    -
    -    image = paddle.layer.data(
    -        name="image", type=paddle.data_type.dense_vector(datadim))
    -    net = resnet_cifar10(image, depth=32)
    -    out = paddle.layer.fc(input=net,
    -                          size=classdim,
    -                          act=paddle.activation.Softmax())
    -
    -    lbl = paddle.layer.data(
    -        name="label", type=paddle.data_type.integer_value(classdim))
    -    cost = paddle.layer.classification_cost(input=out, label=lbl)
    -
    -    parameters = paddle.parameters.create(cost)
    -
    -    momentum_optimizer = paddle.optimizer.Momentum(
    -        momentum=0.9,
    -        regularization=paddle.optimizer.L2Regularization(rate=0.0002 * 128),
    -        learning_rate=0.1 / 128.0,
    -        learning_rate_decay_a=0.1,
    -        learning_rate_decay_b=50000 * 100,
    -        learning_rate_schedule='discexp',
    -        batch_size=128)
    -
    -    trainer = paddle.trainer.SGD(update_equation=momentum_optimizer)
    -    trainer.train(
    -        reader=paddle.reader.batched(
    -            paddle.reader.shuffle(
    -                paddle.dataset.cifar.train10(), buf_size=3072),
    -            batch_size=128),
    -        cost=cost,
    -        num_passes=1,
    -        parameters=parameters,
    -        event_handler=event_handler,
    -        reader_dict={'image': 0,
    -                     'label': 1}, )
    -
    -
    -if __name__ == '__main__':
    -    main()
    
    From 49020f0be80428ba22913062ae877605114134eb Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 20:26:42 +0800
    Subject: [PATCH 056/186] import paddle.v2
    
    ---
     demo/image_classification/api_v2_train.py | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/demo/image_classification/api_v2_train.py b/demo/image_classification/api_v2_train.py
    index 44a8db3941..e6e4307242 100644
    --- a/demo/image_classification/api_v2_train.py
    +++ b/demo/image_classification/api_v2_train.py
    @@ -14,6 +14,7 @@
     
     from api_v2_vgg import resnet_cifar10
     from api_v2_resnet import vgg_bn_drop
    +import paddle.v2 as paddle
     
     
     def event_handler(event):
    
    From 5fc572c29459faf0fbc342e3582ec8b6ee6f02ac Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Wed, 1 Mar 2017 20:28:00 +0800
    Subject: [PATCH 057/186] Complete Memory
    
    ---
     python/paddle/trainer/config_parser.py   |  6 +-
     python/paddle/v2/layer.py                | 99 ++++++++++++++++++------
     python/paddle/v2/tests/test_rnn_layer.py | 27 ++++---
     3 files changed, 96 insertions(+), 36 deletions(-)
    
    diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py
    index 487d4dfd5b..da937152ee 100644
    --- a/python/paddle/trainer/config_parser.py
    +++ b/python/paddle/trainer/config_parser.py
    @@ -3474,8 +3474,6 @@ def update_g_config():
         for name in g_config.model_config.output_layer_names:
             assert name in g_layer_map, \
                 'input name "%s" does not correspond to a layer name' % name
    -    for hook in _parse_config_hooks:
    -        hook()
         return g_config
     
     
    @@ -3487,8 +3485,8 @@ def parse_config(trainer_config, config_arg_str):
         passed to config script as a dictionary CONFIG_ARGS
         '''
         init_config_environment()
    -    # for hook in _parse_config_hooks:
    -    #     hook()
    +    for hook in _parse_config_hooks:
    +        hook()
     
         config_args = {}
     
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index bdb0c29a47..bf5d653e8a 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -67,7 +67,7 @@ paddle.v2.parameters.create, no longer exposed to users.
     """
     
     import collections
    -
    +import inspect
     import paddle.trainer_config_helpers as conf_helps
     from paddle.trainer_config_helpers.config_parser_utils import \
         parse_network_config as __parse__
    @@ -216,31 +216,83 @@ class DataLayerV2(Layer):
             return getattr(conf_helps, self.__method_name__)(name=self.name, **args)
     
     
    -class MemoryV2(Layer):
    -    def __init__(self, name, size, **kwargs):
    -        self.name = name
    -        self.size = size
    +class WithExtraParent(Layer):
    +    def extra_parent(self):
    +        return self.__extra_parent__
     
    -        parent_names = ['boot_layer']
    -        parent_layers = dict()
    -        other_kwargs = dict()
    -        for pname in parent_names:
    -            if kwargs.has_key(pname):
    -                parent_layers[pname] = kwargs[pname]
    +    def __init__(self, name=None, parent_layers=None):
    +        self.__extra_parent__ = []
    +        super(WithExtraParent, self).__init__(name, parent_layers)
     
    -        for key in kwargs.keys():
    -            if key not in parent_names:
    -                other_kwargs[key] = kwargs[key]
    -        super(MemoryV2, self).__init__(name=name, parent_layers=parent_layers)
    -        self.__kwargs__ = other_kwargs
    +    def append_extra_parent(self, parent):
    +        self.__extra_parent__.append(parent)
     
    -    def to_proto_impl(self, **kwargs):
    +    def to_proto(self, context):
    +        """
    +        function to set proto attribute
    +        """
    +        kwargs = dict()
    +        for p in self.__extra_parent__:
    +            p.to_proto(context=context)
    +
    +        for layer_name in self.__parent_layers__:
    +            if not isinstance(self.__parent_layers__[layer_name],
    +                              collections.Sequence):
    +                v1_layer = self.__parent_layers__[layer_name].to_proto(
    +                    context=context)
    +            else:
    +                v1_layer = map(lambda x: x.to_proto(context=context),
    +                               self.__parent_layers__[layer_name])
    +            kwargs[layer_name] = v1_layer
    +
    +        if self.context_name() is None:
    +            return self.to_proto_impl(context=context, **kwargs)
    +        elif self.context_name() not in context:
    +            context[self.context_name()] = self.to_proto_impl(
    +                context=context, **kwargs)
    +
    +        if self.use_context_name():
    +            return context[self.context_name()]
    +        else:
    +            return context[self.name]
    +
    +
    +class MemoryV2(WithExtraParent):
    +    def __init__(self, name, size, **kwargs):
    +        self.name = name
    +        self.size = size
    +        super(MemoryV2, self).__init__(name=name, parent_layers=dict())
    +        self.__kwargs__ = kwargs
    +        self.__boot_layer_name__ = None
    +        if 'boot_layer' in kwargs:
    +            begin_of_current_rnn = []
    +            # TODO(yuyang18): Fix inspect, it could be wrong when user invoke a
    +            # function inside step.
    +            st = inspect.stack()
    +            for i in xrange(len(st)):
    +                locs = inspect.stack()[i][0].f_locals
    +                for val in locs.viewvalues():
    +                    if isinstance(val, RecurrentLayerInput):
    +                        begin_of_current_rnn.append(val)
    +
    +                if begin_of_current_rnn:
    +                    break
    +            assert begin_of_current_rnn is not None
    +            for extra in begin_of_current_rnn:
    +                self.append_extra_parent(extra)
    +                assert isinstance(extra, WithExtraParent)
    +                extra.append_extra_parent(kwargs['boot_layer'])
    +                self.__boot_layer_name__ = kwargs['boot_layer'].name
    +
    +    def to_proto_impl(self, context, **kwargs):
             args = dict()
             for each in kwargs:
                 args[each] = kwargs[each]
             for each in self.__kwargs__:
                 args[each] = self.__kwargs__[each]
     
    +        if self.__boot_layer_name__ is not None:
    +            args['boot_layer'] = context[self.__boot_layer_name__]
             return conf_helps.memory(name=self.name, size=self.size, **args)
     
         def context_name(self):
    @@ -328,7 +380,7 @@ class MixedLayerV2(Layer):
                 self.__inputs__.append(other)
                 return self
             else:
    -            raise MixedLayerTypeV2.AddToSealedMixedLayerExceptionV2()
    +            raise MixedLayerV2.AddToSealedMixedLayerExceptionV2()
     
         def __enter__(self):
             assert len(self.__inputs__) == 0
    @@ -359,11 +411,10 @@ def mixed(size=0,
         return MixedLayerV2(size, input, name, act, bias_attr, layer_attr)
     
     
    -class RecurrentLayerInput(Layer):
    +class RecurrentLayerInput(WithExtraParent):
         def __init__(self, recurrent_name, index, parent_layers):
             assert len(parent_layers) == 1
             self.__parents__ = parent_layers.values()[0]
    -        print self.__parents__, parent_layers
             super(RecurrentLayerInput, self).__init__(
                 name=self.__parents__[index].name, parent_layers=parent_layers)
             self.__recurrent_name__ = recurrent_name
    @@ -371,7 +422,7 @@ class RecurrentLayerInput(Layer):
         def context_name(self):
             return self.__recurrent_name__ + ".begin"
     
    -    def to_proto_impl(self, **kwargs):
    +    def to_proto_impl(self, context, **kwargs):
             model_type('recurrent_nn')
             RecurrentLayerGroupWithoutOutLinksBegin(
                 name=self.__recurrent_name__,
    @@ -458,8 +509,10 @@ def __layer_name_mapping__(inname):
     def __layer_name_mapping_parent_names__(inname):
         all_args = getattr(conf_helps, inname).argspec.args
         return filter(
    -        lambda x: x in ['input1', 'input2','label', 'input', 'a', 'b', 'expand_as',
    -                        'weights', 'vectors', 'weight', 'score', 'left', 'right'],
    +        lambda x: x in ['input1', 'input2', 'label', 'input', 'a', 'b',
    +                        'expand_as',
    +                        'weights', 'vectors', 'weight', 'score', 'left',
    +                        'right'],
             all_args)
     
     
    diff --git a/python/paddle/v2/tests/test_rnn_layer.py b/python/paddle/v2/tests/test_rnn_layer.py
    index bf2c4db61a..48aeb42391 100644
    --- a/python/paddle/v2/tests/test_rnn_layer.py
    +++ b/python/paddle/v2/tests/test_rnn_layer.py
    @@ -106,9 +106,21 @@ class RNNTest(unittest.TestCase):
                 return str(parse_network(test))
     
             def parse_new_rnn():
    +            data = layer.data(
    +                name="word", type=data_type.dense_vector(dict_dim))
    +            label = layer.data(
    +                name="label", type=data_type.dense_vector(label_dim))
    +            emb = layer.embedding(input=data, size=word_dim)
    +
    +            boot_layer = layer.data(
    +                name="boot", type=data_type.dense_vector(10))
    +
    +            boot_layer = layer.fc(name='wtf', input=boot_layer, size=10)
    +
                 def step(y, wid):
                     z = layer.embedding(input=wid, size=word_dim)
    -                mem = layer.memory(name="rnn_state", size=hidden_dim)
    +                mem = layer.memory(
    +                    name="rnn_state", size=hidden_dim, boot_layer=boot_layer)
                     out = layer.fc(input=[y, z, mem],
                                    size=hidden_dim,
                                    act=activation.Tanh(),
    @@ -116,11 +128,6 @@ class RNNTest(unittest.TestCase):
                                    name="rnn_state")
                     return out
     
    -            data = layer.data(
    -                name="word", type=data_type.dense_vector(dict_dim))
    -            label = layer.data(
    -                name="label", type=data_type.dense_vector(label_dim))
    -            emb = layer.embedding(input=data, size=word_dim)
                 out = layer.recurrent_group(
                     name="rnn", step=step, input=[emb, data])
     
    @@ -134,9 +141,11 @@ class RNNTest(unittest.TestCase):
     
                 return str(layer.parse_network(cost))
     
    -        diff = difflib.unified_diff(parse_old_rnn().splitlines(1),
    -                                    parse_new_rnn().splitlines(1))
    -        print ''.join(diff)
    +        with open("/Users/baidu/old.out", 'w') as f:
    +            print >> f, parse_old_rnn()
    +        with open("/Users/baidu/new.out", "w") as f:
    +            print >> f, parse_new_rnn()
    +        # print ''.join(diff)
     
     
     if __name__ == '__main__':
    
    From 0a33f170a423cc238f7b1c37a8e76a48ce9f48ec Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Wed, 1 Mar 2017 20:35:04 +0800
    Subject: [PATCH 058/186] Add stacked lstm network
    
    ---
     demo/sentiment/train_v2.py | 74 ++++++++++++++++++++++++++++++++++++--
     1 file changed, 72 insertions(+), 2 deletions(-)
    
    diff --git a/demo/sentiment/train_v2.py b/demo/sentiment/train_v2.py
    index a764798add..779bfee5b6 100644
    --- a/demo/sentiment/train_v2.py
    +++ b/demo/sentiment/train_v2.py
    @@ -1,4 +1,6 @@
     from os.path import join as join_path
    +import paddle.trainer_config_helpers.attrs as attrs
    +from paddle.trainer_config_helpers.poolings import MaxPooling
     import paddle.v2 as paddle
     import paddle.v2.layer as layer
     import paddle.v2.activation as activation
    @@ -115,7 +117,73 @@ def convolution_net(input_dim,
         output = layer.fc(input=[conv_3, conv_4],
                           size=class_dim,
                           act=activation.Softmax())
    -    lbl = layer.data("label", data_type.integer_value(1))
    +    lbl = layer.data("label", data_type.integer_value(2))
    +    cost = layer.classification_cost(input=output, label=lbl)
    +    return cost
    +
    +
    +def stacked_lstm_net(input_dim,
    +                     class_dim=2,
    +                     emb_dim=128,
    +                     hid_dim=512,
    +                     stacked_num=3,
    +                     is_predict=False):
    +    """
    +    A Wrapper for sentiment classification task.
    +    This network uses bi-directional recurrent network,
    +    consisting three LSTM layers. This configure is referred to
    +    the paper as following url, but use fewer layrs.
    +        http://www.aclweb.org/anthology/P15-1109
    +
    +    input_dim: here is word dictionary dimension.
    +    class_dim: number of categories.
    +    emb_dim: dimension of word embedding.
    +    hid_dim: dimension of hidden layer.
    +    stacked_num: number of stacked lstm-hidden layer.
    +    is_predict: is predicting or not.
    +                Some layers is not needed in network when predicting.
    +    """
    +    assert stacked_num % 2 == 1
    +
    +    layer_attr = attrs.ExtraLayerAttribute(drop_rate=0.5)
    +    fc_para_attr = attrs.ParameterAttribute(learning_rate=1e-3)
    +    lstm_para_attr = attrs.ParameterAttribute(initial_std=0., learning_rate=1.)
    +    para_attr = [fc_para_attr, lstm_para_attr]
    +    bias_attr = attrs.ParameterAttribute(initial_std=0., l2_rate=0.)
    +    relu = activation.Relu()
    +    linear = activation.Linear()
    +
    +    data = layer.data("word", data_type.integer_value_sequence(input_dim))
    +    emb = layer.embedding(input=data, size=emb_dim)
    +
    +    fc1 = layer.fc(input=emb, size=hid_dim, act=linear, bias_attr=bias_attr)
    +    lstm1 = layer.lstmemory(
    +        input=fc1, act=relu, bias_attr=bias_attr, layer_attr=layer_attr)
    +
    +    inputs = [fc1, lstm1]
    +    for i in range(2, stacked_num + 1):
    +        fc = layer.fc(input=inputs,
    +                      size=hid_dim,
    +                      act=linear,
    +                      param_attr=para_attr,
    +                      bias_attr=bias_attr)
    +        lstm = layer.lstmemory(
    +            input=fc,
    +            reverse=(i % 2) == 0,
    +            act=relu,
    +            bias_attr=bias_attr,
    +            layer_attr=layer_attr)
    +        inputs = [fc, lstm]
    +
    +    fc_last = layer.pooling(input=inputs[0], pooling_type=MaxPooling())
    +    lstm_last = layer.pooling(input=inputs[1], pooling_type=MaxPooling())
    +    output = layer.fc(input=[fc_last, lstm_last],
    +                      size=class_dim,
    +                      act=activation.Softmax(),
    +                      bias_attr=bias_attr,
    +                      param_attr=para_attr)
    +
    +    lbl = layer.data("label", data_type.integer_value(2))
         cost = layer.classification_cost(input=output, label=lbl)
         return cost
     
    @@ -177,7 +245,9 @@ if __name__ == '__main__':
         paddle.init(use_gpu=True, trainer_count=4)
     
         # network config
    -    cost = convolution_net(dict_dim, class_dim=class_dim, is_predict=is_predict)
    +    # cost = convolution_net(dict_dim, class_dim=class_dim, is_predict=is_predict)
    +    cost = stacked_lstm_net(
    +        dict_dim, class_dim=class_dim, stacked_num=3, is_predict=is_predict)
     
         # create parameters
         parameters = paddle.parameters.create(cost)
    
    From d935d88d42f7fa1aed6d14969bfebe3ffd01928b Mon Sep 17 00:00:00 2001
    From: Luo Tao 
    Date: Wed, 1 Mar 2017 20:35:51 +0800
    Subject: [PATCH 059/186] mnist api v2
    
    ---
     demo/mnist/api_train_v2.py | 87 ++++++++++++++++++++++++++++++--------
     1 file changed, 70 insertions(+), 17 deletions(-)
    
    diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py
    index a59b30ccdb..495c403e40 100644
    --- a/demo/mnist/api_train_v2.py
    +++ b/demo/mnist/api_train_v2.py
    @@ -1,48 +1,101 @@
     import paddle.v2 as paddle
     
     
    +def softmax_regression(img):
    +    predict = paddle.layer.fc(input=img,
    +                              size=10,
    +                              act=paddle.activation.Softmax())
    +    return predict
    +
    +
    +def multilayer_perceptron(img):
    +    # The first fully-connected layer
    +    hidden1 = paddle.layer.fc(input=img, size=128, act=paddle.activation.Relu())
    +    # The second fully-connected layer and the according activation function
    +    hidden2 = paddle.layer.fc(input=hidden1,
    +                              size=64,
    +                              act=paddle.activation.Relu())
    +    # The thrid fully-connected layer, note that the hidden size should be 10,
    +    # which is the number of unique digits
    +    predict = paddle.layer.fc(input=hidden2,
    +                              size=10,
    +                              act=paddle.activation.Softmax())
    +    return predict
    +
    +
    +def convolutional_neural_network(img):
    +    # first conv layer
    +    conv_pool_1 = paddle.networks.simple_img_conv_pool(
    +        input=img,
    +        filter_size=5,
    +        num_filters=20,
    +        num_channel=1,
    +        pool_size=2,
    +        pool_stride=2,
    +        act=paddle.activation.Tanh())
    +    # second conv layer
    +    conv_pool_2 = paddle.networks.simple_img_conv_pool(
    +        input=conv_pool_1,
    +        filter_size=5,
    +        num_filters=50,
    +        num_channel=20,
    +        pool_size=2,
    +        pool_stride=2,
    +        act=paddle.activation.Tanh())
    +    # The first fully-connected layer
    +    fc1 = paddle.layer.fc(input=conv_pool_2,
    +                          size=128,
    +                          act=paddle.activation.Tanh())
    +    # The softmax layer, note that the hidden size should be 10,
    +    # which is the number of unique digits
    +    predict = paddle.layer.fc(input=fc1,
    +                              size=10,
    +                              act=paddle.activation.Softmax())
    +    return predict
    +
    +
     def main():
    -    paddle.init(use_gpu=False, trainer_count=1)
    +    paddle.init(use_gpu=True, trainer_count=1)
     
         # define network topology
         images = paddle.layer.data(
             name='pixel', type=paddle.data_type.dense_vector(784))
         label = paddle.layer.data(
             name='label', type=paddle.data_type.integer_value(10))
    -    hidden1 = paddle.layer.fc(input=images, size=200)
    -    hidden2 = paddle.layer.fc(input=hidden1, size=200)
    -    inference = paddle.layer.fc(input=hidden2,
    -                                size=10,
    -                                act=paddle.activation.Softmax())
    -    cost = paddle.layer.classification_cost(input=inference, label=label)
    +
    +    predict = softmax_regression(images)
    +    #predict = multilayer_perceptron(images)
    +    #predict = convolutional_neural_network(images)
    +
    +    cost = paddle.layer.classification_cost(input=predict, label=label)
     
         parameters = paddle.parameters.create(cost)
     
    -    adam_optimizer = paddle.optimizer.Adam(learning_rate=0.01)
    +    optimizer = paddle.optimizer.Momentum(
    +        learning_rate=0.1 / 128.0,
    +        momentum=0.9,
    +        regularization=paddle.optimizer.L2Regularization(rate=0.0005 * 128))
     
         trainer = paddle.trainer.SGD(cost=cost,
                                      parameters=parameters,
    -                                 update_equation=adam_optimizer)
    +                                 update_equation=optimizer)
     
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
    -            if event.batch_id % 1000 == 0:
    +            if event.batch_id % 100 == 0:
                     result = trainer.test(reader=paddle.reader.batched(
    -                    paddle.dataset.mnist.test(), batch_size=256))
    -
    +                    paddle.dataset.mnist.test(), batch_size=128))
                     print "Pass %d, Batch %d, Cost %f, %s, Testing metrics %s" % (
                         event.pass_id, event.batch_id, event.cost, event.metrics,
                         result.metrics)
     
    -        else:
    -            pass
    -
         trainer.train(
             reader=paddle.reader.batched(
                 paddle.reader.shuffle(
                     paddle.dataset.mnist.train(), buf_size=8192),
    -            batch_size=32),
    -        event_handler=event_handler)
    +            batch_size=128),
    +        event_handler=event_handler,
    +        num_passes=100)
     
     
     if __name__ == '__main__':
    
    From 36672ae30988683c614dfbae17954b51baa49ca5 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 21:06:25 +0800
    Subject: [PATCH 060/186] add clang-format in docker
    
    ---
     paddle/scripts/docker/Dockerfile | 4 +++-
     1 file changed, 3 insertions(+), 1 deletion(-)
    
    diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile
    index ea1d8aba36..1b55a40f10 100644
    --- a/paddle/scripts/docker/Dockerfile
    +++ b/paddle/scripts/docker/Dockerfile
    @@ -29,9 +29,11 @@ RUN apt-get update && \
         apt-get install -y wget unzip tar xz-utils bzip2 gzip coreutils && \
         apt-get install -y curl sed grep graphviz libjpeg-dev zlib1g-dev && \
         apt-get install -y python-numpy python-matplotlib gcc g++ gfortran && \
    -    apt-get install -y automake locales && \
    +    apt-get install -y automake locales clang-format-3.8 && \
         apt-get clean -y
     
    +RUN git config --global credential.helper "cache --timeout=604800"
    +
     # Fix locales to en_US.UTF-8
     RUN localedef -i en_US -f UTF-8 en_US.UTF-8
     
    
    From 15972c08529a5e015d20df3fc76b9a608ed46374 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 21:08:22 +0800
    Subject: [PATCH 061/186] Add git credential to skip password typing
    
    ---
     paddle/scripts/docker/Dockerfile | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile
    index 1b55a40f10..b6355cc2db 100644
    --- a/paddle/scripts/docker/Dockerfile
    +++ b/paddle/scripts/docker/Dockerfile
    @@ -32,7 +32,7 @@ RUN apt-get update && \
         apt-get install -y automake locales clang-format-3.8 && \
         apt-get clean -y
     
    -RUN git config --global credential.helper "cache --timeout=604800"
    +RUN git config --global credential.helper store
     
     # Fix locales to en_US.UTF-8
     RUN localedef -i en_US -f UTF-8 en_US.UTF-8
    
    From a82341bbb1800d23e37a14a5284e99f621f7eb36 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Wed, 1 Mar 2017 21:17:44 +0800
    Subject: [PATCH 062/186] Update Dockerfile GPU
    
    ---
     paddle/scripts/docker/Dockerfile     |  1 +
     paddle/scripts/docker/Dockerfile.gpu | 47 +++++++++++++++++-----------
     2 files changed, 30 insertions(+), 18 deletions(-)
    
    diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile
    index b6355cc2db..23f4d43588 100644
    --- a/paddle/scripts/docker/Dockerfile
    +++ b/paddle/scripts/docker/Dockerfile
    @@ -32,6 +32,7 @@ RUN apt-get update && \
         apt-get install -y automake locales clang-format-3.8 && \
         apt-get clean -y
     
    +# git credential to skip password typing
     RUN git config --global credential.helper store
     
     # Fix locales to en_US.UTF-8
    diff --git a/paddle/scripts/docker/Dockerfile.gpu b/paddle/scripts/docker/Dockerfile.gpu
    index 538233dd0c..a975e580e4 100644
    --- a/paddle/scripts/docker/Dockerfile.gpu
    +++ b/paddle/scripts/docker/Dockerfile.gpu
    @@ -5,38 +5,50 @@ ARG DEBIAN_FRONTEND=noninteractive
     ARG UBUNTU_MIRROR
     RUN /bin/bash -c 'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i 's#http://archive.ubuntu.com#${UBUNTU_MIRROR}#g' /etc/apt/sources.list; fi'
     
    +# ENV variables
    +ARG BUILD_WOBOQ
    +ARG BUILD_AND_INSTALL
    +ARG WITH_AVX
    +ARG WITH_DOC
    +ARG WITH_STYLE_CHECK
    +
    +ENV BUILD_WOBOQ=${BUILD_WOBOQ:-OFF}
    +ENV BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF}
    +ENV WITH_GPU=ON
    +ENV WITH_AVX=${WITH_AVX:-ON}
    +ENV WITH_DOC=${WITH_DOC:-OFF}
    +ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
    +
    +ENV HOME /root
    +
    +# Add bash enhancements
    +COPY ./paddle/scripts/docker/root/ /root/
    +
     RUN apt-get update && \
         apt-get install -y git python-pip python-dev openssh-server bison && \
         apt-get install -y wget unzip tar xz-utils bzip2 gzip coreutils && \
         apt-get install -y curl sed grep graphviz libjpeg-dev zlib1g-dev && \
         apt-get install -y python-numpy python-matplotlib gcc g++ gfortran && \
    -    apt-get install -y automake && \
    +    apt-get install -y automake locales clang-format-3.8 && \
         apt-get clean -y
     
    +# git credential to skip password typing
    +RUN git config --global credential.helper store
    +
    +# Fix locales to en_US.UTF-8
    +RUN localedef -i en_US -f UTF-8 en_US.UTF-8
    +
     RUN pip install --upgrade pip && \
    -    pip install -U "protobuf==3.1.0" && \
    +    pip install -U 'protobuf==3.1.0' && \
         pip install -U wheel pillow BeautifulSoup && \
         pip install -U docopt PyYAML sphinx && \
    -    pip install -U sphinx_rtd_theme recommonmark jupyter
    +    pip install -U sphinx_rtd_theme recommonmark && \
    +    pip install -U pre-commit 'requests==2.9.2' jupyter
     
     RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \
         cd cmake-3.4.1 && ./bootstrap && make -j `nproc` && make install && \
         cd .. && rm -rf cmake-3.4.1
     
    -ARG BUILD_WOBOQ
    -ARG BUILD_AND_INSTALL
    -ARG WITH_AVX
    -ARG WITH_DOC
    -ARG WITH_STYLE_CHECK
    -
    -ENV BUILD_WOBOQ=${BUILD_WOBOQ:-OFF}
    -ENV BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF}
    -ENV WITH_GPU=ON
    -ENV WITH_AVX=${WITH_AVX:-ON}
    -ENV WITH_DOC=${WITH_DOC:-OFF}
    -ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF}
    -
    -RUN mkdir /paddle
     COPY . /paddle/
     RUN /paddle/paddle/scripts/docker/build.sh
     VOLUME ["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"]
    @@ -53,7 +65,6 @@ RUN mkdir /notes/
     WORKDIR "/notes"
     EXPOSE 8888
     
    -RUN mkdir -p /opt/bin
     COPY ./paddle/scripts/docker/entrypoint /opt/bin/
     
     CMD ["/opt/bin/entrypoint"]
    
    From 06cbd81eecf40c6b90b72da01126c176e4fc0ebf Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Thu, 2 Mar 2017 02:23:02 +0800
    Subject: [PATCH 063/186] CONLL05 dataset for SRL
    
    ---
     python/paddle/v2/dataset/conll05.py | 188 ++++++++++++++++++++++++++++
     1 file changed, 188 insertions(+)
     create mode 100644 python/paddle/v2/dataset/conll05.py
    
    diff --git a/python/paddle/v2/dataset/conll05.py b/python/paddle/v2/dataset/conll05.py
    new file mode 100644
    index 0000000000..e902906371
    --- /dev/null
    +++ b/python/paddle/v2/dataset/conll05.py
    @@ -0,0 +1,188 @@
    +import paddle.v2.dataset.common
    +import tarfile
    +import gzip
    +import itertools
    +
    +__all__ = ['test, get_dict', 'get_embedding']
    +"""
    +Conll 2005 dataset.  Paddle semantic role labeling Book and demo use this
    +dataset as an example. Because Conll 2005 is not free in public, the default
    +downloaded URL is test set of Conll 2005 (which is public). Users can change
    +URL and MD5 to their Conll dataset.
    +"""
    +
    +DATA_URL = 'http://www.cs.upc.edu/~srlconll/conll05st-tests.tar.gz'
    +DATA_MD5 = '387719152ae52d60422c016e92a742fc'
    +WORDDICT_URL = 'http://paddlepaddle.bj.bcebos.com/demo/srl_dict_and_embedding/wordDict.txt'
    +WORDDICT_MD5 = 'ea7fb7d4c75cc6254716f0177a506baa'
    +VERBDICT_URL = 'http://paddlepaddle.bj.bcebos.com/demo/srl_dict_and_embedding/verbDict.txt'
    +VERBDICT_MD5 = '0d2977293bbb6cbefab5b0f97db1e77c'
    +TRGDICT_URL = 'http://paddlepaddle.bj.bcebos.com/demo/srl_dict_and_embedding/targetDict.txt'
    +TRGDICT_MD5 = 'd8c7f03ceb5fc2e5a0fa7503a4353751'
    +EMB_URL = 'http://paddlepaddle.bj.bcebos.com/demo/srl_dict_and_embedding/emb'
    +EMB_MD5 = 'bf436eb0faa1f6f9103017f8be57cdb7'
    +
    +UNK_IDX = 0
    +
    +
    +def load_dict(filename):
    +    d = dict()
    +    with open(filename, 'r') as f:
    +        for i, line in enumerate(f):
    +            d[line.strip()] = i
    +    return d
    +
    +
    +def corpus_reader(data_path, words_name, props_name):
    +    """
    +    Read one corpus by corpus name. It returns an iterator. Each element of
    +    this iterator is a tuple including sentence and labels. The sentence is
    +    consist of a list of word IDs. The labels include a list of label IDs.
    +    :param name: corpus name.
    +    :type name: basestring
    +    :return: a iterator of data.
    +    :rtype: iterator
    +    """
    +
    +    def reader():
    +        tf = tarfile.open(data_path)
    +        wf = tf.extractfile(words_name)
    +        pf = tf.extractfile(props_name)
    +        with gzip.GzipFile(fileobj=wf) as words_file, gzip.GzipFile(
    +                fileobj=pf) as props_file:
    +            sentences = []
    +            labels = []
    +            one_seg = []
    +            for word, label in itertools.izip(words_file, props_file):
    +                word = word.strip()
    +                label = label.strip().split()
    +
    +                if len(label) == 0:  # end of sentence
    +                    for i in xrange(len(one_seg[0])):
    +                        a_kind_lable = [x[i] for x in one_seg]
    +                        labels.append(a_kind_lable)
    +
    +                    if len(labels) >= 1:
    +                        verb_list = []
    +                        for x in labels[0]:
    +                            if x != '-':
    +                                verb_list.append(x)
    +
    +                        for i, lbl in enumerate(labels[1:]):
    +                            cur_tag = 'O'
    +                            is_in_bracket = False
    +                            lbl_seq = []
    +                            verb_word = ''
    +                            for l in lbl:
    +                                if l == '*' and is_in_bracket == False:
    +                                    lbl_seq.append('O')
    +                                elif l == '*' and is_in_bracket == True:
    +                                    lbl_seq.append('I-' + cur_tag)
    +                                elif l == '*)':
    +                                    lbl_seq.append('I-' + cur_tag)
    +                                    is_in_bracket = False
    +                                elif l.find('(') != -1 and l.find(')') != -1:
    +                                    cur_tag = l[1:l.find('*')]
    +                                    lbl_seq.append('B-' + cur_tag)
    +                                    is_in_bracket = False
    +                                elif l.find('(') != -1 and l.find(')') == -1:
    +                                    cur_tag = l[1:l.find('*')]
    +                                    lbl_seq.append('B-' + cur_tag)
    +                                    is_in_bracket = True
    +                                else:
    +                                    print 'error:', l
    +
    +                            yield sentences, verb_list[i], lbl_seq
    +
    +                    sentences = []
    +                    labels = []
    +                    one_seg = []
    +                else:
    +                    sentences.append(word)
    +                    one_seg.append(label)
    +
    +    return reader
    +
    +
    +def reader_creator(corpus_reader,
    +                   word_dict=None,
    +                   predicate_dict=None,
    +                   label_dict=None):
    +    def reader():
    +        for sentence, predicate, labels in corpus_reader():
    +
    +            sen_len = len(sentence)
    +
    +            verb_index = labels.index('B-V')
    +            mark = [0] * len(labels)
    +            if verb_index > 0:
    +                mark[verb_index - 1] = 1
    +                ctx_n1 = sentence[verb_index - 1]
    +            else:
    +                ctx_n1 = 'bos'
    +
    +            if verb_index > 1:
    +                mark[verb_index - 2] = 1
    +                ctx_n2 = sentence[verb_index - 2]
    +            else:
    +                ctx_n2 = 'bos'
    +
    +            mark[verb_index] = 1
    +            ctx_0 = sentence[verb_index]
    +
    +            if verb_index < len(labels) - 1:
    +                mark[verb_index + 1] = 1
    +                ctx_p1 = sentence[verb_index + 1]
    +            else:
    +                ctx_p1 = 'eos'
    +
    +            if verb_index < len(labels) - 2:
    +                mark[verb_index + 2] = 1
    +                ctx_p2 = sentence[verb_index + 2]
    +            else:
    +                ctx_p2 = 'eos'
    +
    +            word_idx = [word_dict.get(w, UNK_IDX) for w in sentence]
    +            pred_idx = [predicate_dict.get(predicate)] * sen_len
    +
    +            ctx_n2_idx = [word_dict.get(ctx_n2, UNK_IDX)] * sen_len
    +            ctx_n1_idx = [word_dict.get(ctx_n1, UNK_IDX)] * sen_len
    +            ctx_0_idx = [word_dict.get(ctx_0, UNK_IDX)] * sen_len
    +            ctx_p1_idx = [word_dict.get(ctx_p1, UNK_IDX)] * sen_len
    +            ctx_p2_idx = [word_dict.get(ctx_p2, UNK_IDX)] * sen_len
    +
    +            label_idx = [label_dict.get(w) for w in labels]
    +
    +            yield word_idx, pred_idx, ctx_n2_idx, ctx_n1_idx, \
    +              ctx_0_idx, ctx_p1_idx, ctx_p2_idx, mark, label_idx
    +
    +    return reader()
    +
    +
    +def get_dict():
    +    word_dict = load_dict(
    +        common.download(WORDDICT_URL, 'conll05st', WORDDICT_MD5))
    +    verb_dict = load_dict(
    +        common.download(VERBDICT_URL, 'conll05st', VERBDICT_MD5))
    +    label_dict = load_dict(
    +        common.download(TRGDICT_URL, 'conll05st', TRGDICT_MD5))
    +    return word_dict, verb_dict, label_dict
    +
    +
    +def get_embedding():
    +    return common.download(EMB_URL, 'conll05st', EMB_MD5)
    +
    +
    +def test():
    +    word_dict, verb_dict, label_dict = get_dict()
    +    reader = corpus_reader(
    +        common.download(DATA_URL, 'conll05st', DATA_MD5),
    +        words_name='conll05st-release/test.wsj/words/test.wsj.words.gz',
    +        props_name='conll05st-release/test.wsj/props/test.wsj.props.gz')
    +    return reader_creator(reader, word_dict, verb_dict, label_dict)
    +
    +
    +if __name__ == '__main__':
    +    print get_embedding()
    +    for f in test():
    +        print f
    
    From 0dd53294caaefdee1d7809ef08cd64db3ba8561d Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Thu, 2 Mar 2017 02:32:51 +0800
    Subject: [PATCH 064/186] add copyright
    
    ---
     python/paddle/v2/dataset/__init__.py          | 14 ++++++++++++++
     python/paddle/v2/dataset/cifar.py             | 14 ++++++++++++++
     python/paddle/v2/dataset/common.py            | 14 ++++++++++++++
     python/paddle/v2/dataset/conll05.py           | 14 ++++++++++++++
     python/paddle/v2/dataset/imdb.py              |  4 +---
     python/paddle/v2/dataset/imikolov.py          | 13 +++++++++++++
     python/paddle/v2/dataset/mnist.py             | 13 +++++++++++++
     python/paddle/v2/dataset/movielens.py         | 14 ++++++++++++++
     python/paddle/v2/dataset/tests/cifar_test.py  | 14 ++++++++++++++
     python/paddle/v2/dataset/tests/common_test.py | 14 ++++++++++++++
     python/paddle/v2/dataset/tests/imdb_test.py   | 14 ++++++++++++++
     python/paddle/v2/dataset/tests/mnist_test.py  | 14 ++++++++++++++
     12 files changed, 153 insertions(+), 3 deletions(-)
    
    diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py
    index 9647e98503..15460b820d 100644
    --- a/python/paddle/v2/dataset/__init__.py
    +++ b/python/paddle/v2/dataset/__init__.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import mnist
     
     __all__ = ['mnist']
    diff --git a/python/paddle/v2/dataset/cifar.py b/python/paddle/v2/dataset/cifar.py
    index 77c54bd268..5c6f5d8556 100644
    --- a/python/paddle/v2/dataset/cifar.py
    +++ b/python/paddle/v2/dataset/cifar.py
    @@ -1,6 +1,20 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
     """
     CIFAR dataset: https://www.cs.toronto.edu/~kriz/cifar.html
     """
    +
     import cPickle
     import itertools
     import numpy
    diff --git a/python/paddle/v2/dataset/common.py b/python/paddle/v2/dataset/common.py
    index fcf4437ffa..397c9e66d4 100644
    --- a/python/paddle/v2/dataset/common.py
    +++ b/python/paddle/v2/dataset/common.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import requests
     import hashlib
     import os
    diff --git a/python/paddle/v2/dataset/conll05.py b/python/paddle/v2/dataset/conll05.py
    index e902906371..7c43c7c634 100644
    --- a/python/paddle/v2/dataset/conll05.py
    +++ b/python/paddle/v2/dataset/conll05.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import paddle.v2.dataset.common
     import tarfile
     import gzip
    diff --git a/python/paddle/v2/dataset/imdb.py b/python/paddle/v2/dataset/imdb.py
    index 433e37380f..ffd7d89049 100644
    --- a/python/paddle/v2/dataset/imdb.py
    +++ b/python/paddle/v2/dataset/imdb.py
    @@ -1,6 +1,3 @@
    -# /usr/bin/env python
    -# -*- coding:utf-8 -*-
    -
     # Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
    @@ -17,6 +14,7 @@
     """
     IMDB dataset: http://ai.stanford.edu/%7Eamaas/data/sentiment/aclImdb_v1.tar.gz
     """
    +
     import paddle.v2.dataset.common
     import tarfile
     import Queue
    diff --git a/python/paddle/v2/dataset/imikolov.py b/python/paddle/v2/dataset/imikolov.py
    index b3791ddad6..285d3eaca8 100644
    --- a/python/paddle/v2/dataset/imikolov.py
    +++ b/python/paddle/v2/dataset/imikolov.py
    @@ -1,3 +1,16 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
     """
     imikolov's simple dataset: http://www.fit.vutbr.cz/~imikolov/rnnlm/
     """
    diff --git a/python/paddle/v2/dataset/mnist.py b/python/paddle/v2/dataset/mnist.py
    index 1512a3c318..7cecb34164 100644
    --- a/python/paddle/v2/dataset/mnist.py
    +++ b/python/paddle/v2/dataset/mnist.py
    @@ -1,3 +1,16 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
     """
     MNIST dataset.
     """
    diff --git a/python/paddle/v2/dataset/movielens.py b/python/paddle/v2/dataset/movielens.py
    index dcffcff2f5..c22bcfa38b 100644
    --- a/python/paddle/v2/dataset/movielens.py
    +++ b/python/paddle/v2/dataset/movielens.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import zipfile
     from common import download
     import re
    diff --git a/python/paddle/v2/dataset/tests/cifar_test.py b/python/paddle/v2/dataset/tests/cifar_test.py
    index a2af45ecf5..e0e18229da 100644
    --- a/python/paddle/v2/dataset/tests/cifar_test.py
    +++ b/python/paddle/v2/dataset/tests/cifar_test.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import paddle.v2.dataset.cifar
     import unittest
     
    diff --git a/python/paddle/v2/dataset/tests/common_test.py b/python/paddle/v2/dataset/tests/common_test.py
    index 7d8406171b..5babcef0eb 100644
    --- a/python/paddle/v2/dataset/tests/common_test.py
    +++ b/python/paddle/v2/dataset/tests/common_test.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import paddle.v2.dataset.common
     import unittest
     import tempfile
    diff --git a/python/paddle/v2/dataset/tests/imdb_test.py b/python/paddle/v2/dataset/tests/imdb_test.py
    index e887af1663..c4d82f2689 100644
    --- a/python/paddle/v2/dataset/tests/imdb_test.py
    +++ b/python/paddle/v2/dataset/tests/imdb_test.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import paddle.v2.dataset.imdb
     import unittest
     import re
    diff --git a/python/paddle/v2/dataset/tests/mnist_test.py b/python/paddle/v2/dataset/tests/mnist_test.py
    index b4408cc2f5..1d344cac3e 100644
    --- a/python/paddle/v2/dataset/tests/mnist_test.py
    +++ b/python/paddle/v2/dataset/tests/mnist_test.py
    @@ -1,3 +1,17 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import paddle.v2.dataset.mnist
     import unittest
     
    
    From 35ec5f0f1a5b497c0e927c98df882a1e9ab40d16 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Thu, 2 Mar 2017 09:51:46 +0800
    Subject: [PATCH 065/186] Support StaticInput
    
    ---
     python/paddle/v2/__init__.py             |  3 +-
     python/paddle/v2/layer.py                | 53 +++++++++++++-----------
     python/paddle/v2/networks.py             | 19 +++++++++
     python/paddle/v2/tests/test_rnn_layer.py | 41 +++++++++---------
     4 files changed, 72 insertions(+), 44 deletions(-)
     create mode 100644 python/paddle/v2/networks.py
    
    diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py
    index b31efe170d..4dbcd3bb6b 100644
    --- a/python/paddle/v2/__init__.py
    +++ b/python/paddle/v2/__init__.py
    @@ -20,6 +20,7 @@ import event
     import data_type
     import topology
     import data_feeder
    +import networks
     from . import dataset
     from . import reader
     import attr
    @@ -29,7 +30,7 @@ import py_paddle.swig_paddle as api
     __all__ = [
         'optimizer', 'layer', 'activation', 'parameters', 'init', 'trainer',
         'event', 'data_type', 'attr', 'pooling', 'data_feeder', 'dataset', 'reader',
    -    'topology'
    +    'topology', 'networks'
     ]
     
     
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index bf5d653e8a..82ccd8498a 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -109,9 +109,10 @@ def parse_network(*outputs):
     
     
     class Layer(object):
    -    def __init__(self, name=None, parent_layers=None):
    +    def __init__(self, name=None, size=None, parent_layers=None):
             assert isinstance(parent_layers, dict)
             self.name = name
    +        self.size = size
             self.__parent_layers__ = parent_layers
     
         def to_proto(self, context):
    @@ -173,7 +174,8 @@ def __convert_to_v2__(method_name, parent_names, is_default_name=True):
                         other_kwargs[key] = kwargs[key]
     
                 name = kwargs.get('name', None)
    -            super(V2LayerImpl, self).__init__(name, parent_layers)
    +            size = kwargs.get('size', None)
    +            super(V2LayerImpl, self).__init__(name, size, parent_layers)
                 self.__other_kwargs__ = other_kwargs
     
             if wrapper is not None:
    @@ -220,9 +222,10 @@ class WithExtraParent(Layer):
         def extra_parent(self):
             return self.__extra_parent__
     
    -    def __init__(self, name=None, parent_layers=None):
    +    def __init__(self, name=None, size=None, parent_layers=None):
             self.__extra_parent__ = []
    -        super(WithExtraParent, self).__init__(name, parent_layers)
    +        super(WithExtraParent, self).__init__(
    +            name=name, size=size, parent_layers=parent_layers)
     
         def append_extra_parent(self, parent):
             self.__extra_parent__.append(parent)
    @@ -261,7 +264,8 @@ class MemoryV2(WithExtraParent):
         def __init__(self, name, size, **kwargs):
             self.name = name
             self.size = size
    -        super(MemoryV2, self).__init__(name=name, parent_layers=dict())
    +        super(MemoryV2, self).__init__(
    +            name=name, size=size, parent_layers=dict())
             self.__kwargs__ = kwargs
             self.__boot_layer_name__ = None
             if 'boot_layer' in kwargs:
    @@ -271,7 +275,9 @@ class MemoryV2(WithExtraParent):
                 st = inspect.stack()
                 for i in xrange(len(st)):
                     locs = inspect.stack()[i][0].f_locals
    -                for val in locs.viewvalues():
    +                keys = locs.keys()
    +                for key in keys:
    +                    val = locs[key]
                         if isinstance(val, RecurrentLayerInput):
                             begin_of_current_rnn.append(val)
     
    @@ -322,21 +328,15 @@ class LayerOutputV2(Layer):
             return self.layer_output
     
     
    -class StaticInputV2(Layer):
    -    def __init__(self, input=None, **kwargs):
    -        assert input is not None
    -        self.__kwargs__ = kwargs
    -        super(StaticInputV2, self).__init__(
    -            name=input.name, parent_layers={'input': input})
    -
    -    def context_name(self):
    -        return self.name + "#static_input"
    -
    -    def to_proto_impl(self, **kwargs):
    -        args = dict()
    -        args.update(kwargs)
    -        args.update(self.__kwargs__)
    -        return conf_helps.StaticInput(**args)
    +class StaticInputV2(object):
    +    def __init__(self, input, is_seq=False, size=None):
    +        assert isinstance(input, LayerV2)
    +        self.name = input.name
    +        self.input = input
    +        self.is_seq = is_seq
    +        self.size = size
    +        # TODO(qiaolongfei): add size
    +        # assert input.size is not None or size is not None
     
     
     class MixedLayerV2(Layer):
    @@ -370,9 +370,8 @@ class MixedLayerV2(Layer):
             other_kwargs['act'] = act
             other_kwargs['bias_attr'] = bias_attr
             other_kwargs['layer_attr'] = layer_attr
    -
             parent_layers = {"input": self.__inputs__}
    -        super(MixedLayerV2, self).__init__(name, parent_layers)
    +        super(MixedLayerV2, self).__init__(name, size, parent_layers)
             self.__other_kwargs__ = other_kwargs
     
         def __iadd__(self, other):
    @@ -452,6 +451,12 @@ def recurrent_group(step, input, name=None):
         if not isinstance(input, collections.Sequence):
             input = [input]
     
    +    # TODO(qiaolongfei) convert StaticInput to memory according to v2 recurrent_group
    +    for i in xrange(len(input)):
    +        cur_input = input[i]
    +        if isinstance(cur_input, StaticInputV2):
    +            input[i] = cur_input.input
    +
         actual_input = [
             RecurrentLayerInput(
                 recurrent_name=name,
    @@ -512,7 +517,7 @@ def __layer_name_mapping_parent_names__(inname):
             lambda x: x in ['input1', 'input2', 'label', 'input', 'a', 'b',
                             'expand_as',
                             'weights', 'vectors', 'weight', 'score', 'left',
    -                        'right'],
    +                        'right', 'output_mem'],
             all_args)
     
     
    diff --git a/python/paddle/v2/networks.py b/python/paddle/v2/networks.py
    new file mode 100644
    index 0000000000..2877b56b18
    --- /dev/null
    +++ b/python/paddle/v2/networks.py
    @@ -0,0 +1,19 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +from layer import __convert_to_v2__
    +
    +simple_gru = __convert_to_v2__('simple_gru', ['input'])
    +simple_attention = __convert_to_v2__(
    +    'simple_attention', ['encoded_sequence', 'encoded_proj', 'decoder_state'])
    diff --git a/python/paddle/v2/tests/test_rnn_layer.py b/python/paddle/v2/tests/test_rnn_layer.py
    index 48aeb42391..5fbbd20eb7 100644
    --- a/python/paddle/v2/tests/test_rnn_layer.py
    +++ b/python/paddle/v2/tests/test_rnn_layer.py
    @@ -74,21 +74,28 @@ class RNNTest(unittest.TestCase):
             label_dim = 3
     
             def parse_old_rnn():
    -            def step(y, wid):
    -                z = conf_helps.embedding_layer(input=wid, size=word_dim)
    -                mem = conf_helps.memory(name="rnn_state", size=hidden_dim)
    -                out = conf_helps.fc_layer(
    -                    input=[y, z, mem],
    -                    size=hidden_dim,
    -                    act=conf_helps.TanhActivation(),
    -                    bias_attr=True,
    -                    name="rnn_state")
    -                return out
    -
                 def test():
                     data = conf_helps.data_layer(name="word", size=dict_dim)
                     label = conf_helps.data_layer(name="label", size=label_dim)
                     emb = conf_helps.embedding_layer(input=data, size=word_dim)
    +                boot_layer = conf_helps.data_layer(name="boot", size=10)
    +                boot_layer = conf_helps.fc_layer(
    +                    name='boot_fc', input=boot_layer, size=10)
    +
    +                def step(y, wid):
    +                    z = conf_helps.embedding_layer(input=wid, size=word_dim)
    +                    mem = conf_helps.memory(
    +                        name="rnn_state",
    +                        size=hidden_dim,
    +                        boot_layer=boot_layer)
    +                    out = conf_helps.fc_layer(
    +                        input=[y, z, mem],
    +                        size=hidden_dim,
    +                        act=conf_helps.TanhActivation(),
    +                        bias_attr=True,
    +                        name="rnn_state")
    +                    return out
    +
                     out = conf_helps.recurrent_group(
                         name="rnn", step=step, input=[emb, data])
     
    @@ -111,11 +118,9 @@ class RNNTest(unittest.TestCase):
                 label = layer.data(
                     name="label", type=data_type.dense_vector(label_dim))
                 emb = layer.embedding(input=data, size=word_dim)
    -
                 boot_layer = layer.data(
                     name="boot", type=data_type.dense_vector(10))
    -
    -            boot_layer = layer.fc(name='wtf', input=boot_layer, size=10)
    +            boot_layer = layer.fc(name='boot_fc', input=boot_layer, size=10)
     
                 def step(y, wid):
                     z = layer.embedding(input=wid, size=word_dim)
    @@ -141,11 +146,9 @@ class RNNTest(unittest.TestCase):
     
                 return str(layer.parse_network(cost))
     
    -        with open("/Users/baidu/old.out", 'w') as f:
    -            print >> f, parse_old_rnn()
    -        with open("/Users/baidu/new.out", "w") as f:
    -            print >> f, parse_new_rnn()
    -        # print ''.join(diff)
    +        diff = difflib.unified_diff(parse_old_rnn().splitlines(1),
    +                                    parse_new_rnn().splitlines(1))
    +        print ''.join(diff)
     
     
     if __name__ == '__main__':
    
    From b400c8f02c76ce74828cc999d6bef335cca18a57 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Thu, 2 Mar 2017 11:47:33 +0800
    Subject: [PATCH 066/186] update to latest
    
    ---
     python/paddle/v2/config_base.py | 28 ++++++++++++++++++++++------
     1 file changed, 22 insertions(+), 6 deletions(-)
    
    diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py
    index 035f96b0f2..be3e39a06e 100644
    --- a/python/paddle/v2/config_base.py
    +++ b/python/paddle/v2/config_base.py
    @@ -19,9 +19,10 @@ import paddle.trainer_config_helpers as conf_helps
     
     
     class Layer(object):
    -    def __init__(self, name=None, parent_layers=None):
    +    def __init__(self, name=None, size=None, parent_layers=None):
             assert isinstance(parent_layers, dict)
             self.name = name
    +        self.size = size
             self.__parent_layers__ = parent_layers
     
         def to_proto(self, context):
    @@ -39,16 +40,30 @@ class Layer(object):
                                    self.__parent_layers__[layer_name])
                 kwargs[layer_name] = v1_layer
     
    -        if self.name is None:
    +        if self.context_name() is None:
                 return self.to_proto_impl(**kwargs)
    -        elif self.name not in context:
    -            context[self.name] = self.to_proto_impl(**kwargs)
    +        elif self.context_name() not in context:
    +            context[self.context_name()] = self.to_proto_impl(**kwargs)
     
    -        return context[self.name]
    +        if self.use_context_name():
    +            return context[self.context_name()]
    +        else:
    +            return context[self.name]
     
         def to_proto_impl(self, **kwargs):
             raise NotImplementedError()
     
    +    def context_name(self):
    +        """
    +        Context name means the context which stores `to_proto_impl` result.
    +        If multiple layer share same context_name, the `to_proto_impl` of them
    +        will be invoked only once.
    +        """
    +        return self.name
    +
    +    def use_context_name(self):
    +        return False
    +
     
     def __convert_to_v2__(method_name, parent_names, is_default_name=True):
         if is_default_name:
    @@ -69,7 +84,8 @@ def __convert_to_v2__(method_name, parent_names, is_default_name=True):
                         other_kwargs[key] = kwargs[key]
     
                 name = kwargs.get('name', None)
    -            super(V2LayerImpl, self).__init__(name, parent_layers)
    +            size = kwargs.get('size', None)
    +            super(V2LayerImpl, self).__init__(name, size, parent_layers)
                 self.__other_kwargs__ = other_kwargs
     
             if wrapper is not None:
    
    From 65aff91e863e90528eb779817e390746088f6431 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 12:51:35 +0800
    Subject: [PATCH 067/186] Stash
    
    ---
     demo/recommendation/api_train_v2.py | 30 ++++++++++++++++++-----------
     python/paddle/v2/trainer.py         |  5 ++---
     2 files changed, 21 insertions(+), 14 deletions(-)
    
    diff --git a/demo/recommendation/api_train_v2.py b/demo/recommendation/api_train_v2.py
    index 3ff86c2c45..93e2a26f74 100644
    --- a/demo/recommendation/api_train_v2.py
    +++ b/demo/recommendation/api_train_v2.py
    @@ -70,27 +70,35 @@ def main():
                                      parameters=parameters,
                                      update_equation=paddle.optimizer.Adam(
                                          learning_rate=1e-4))
    +    reader_dict = {
    +        'user_id': 0,
    +        'gender_id': 1,
    +        'age_id': 2,
    +        'job_id': 3,
    +        'movie_id': 4,
    +        'category_id': 5,
    +        'movie_title': 6,
    +        'score': 7
    +    }
     
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
                 if event.batch_id % 100 == 0:
                     print "Pass %d Batch %d Cost %.2f" % (
                         event.pass_id, event.batch_id, event.cost)
    +        elif isinstance(event, paddle.event.EndPass):
    +            result = trainer.test(reader=paddle.reader.batched(
    +                paddle.dataset.movielens.test(), batch_size=256))
    +            print result.cost
     
         trainer.train(
             reader=paddle.reader.batched(
    -            paddle.dataset.movielens.train(), batch_size=256),
    +            paddle.reader.shuffle(
    +                paddle.dataset.movielens.train(), buf_size=8192),
    +            batch_size=256),
             event_handler=event_handler,
    -        reader_dict={
    -            'user_id': 0,
    -            'gender_id': 1,
    -            'age_id': 2,
    -            'job_id': 3,
    -            'movie_id': 4,
    -            'category_id': 5,
    -            'movie_title': 6,
    -            'score': 7
    -        })
    +        reader_dict=reader_dict,
    +        num_passes=10)
     
     
     if __name__ == '__main__':
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index 5003f55f3e..f45b3ec974 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -123,9 +123,8 @@ class SGD(ITrainer):
                     for each_param in self.__gradient_machine__.getParameters():
                         updater.update(each_param)
                     # Get cost. We use numpy to calculate total cost for this batch.
    -                cost_vec = out_args.getSlotValue(0)
    -                cost_vec = cost_vec.copyToNumpyMat()
    -                cost = cost_vec.sum() / len(data_batch)
    +                cost_sum = out_args.sumCosts()
    +                cost = cost_sum / len(data_batch)
                     updater.finishBatch(cost)
                     batch_evaluator.finish()
                     event_handler(
    
    From 1524f2041ee3e5dd6bf1613afeb16ed3884939e9 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 13:03:41 +0800
    Subject: [PATCH 068/186] Add testing cost.
    
    ---
     demo/mnist/api_train_v2.py  |  9 +++++----
     python/paddle/v2/event.py   |  3 ++-
     python/paddle/v2/trainer.py | 12 ++++++++----
     3 files changed, 15 insertions(+), 9 deletions(-)
    
    diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py
    index 06beb7024d..00d1022175 100644
    --- a/demo/mnist/api_train_v2.py
    +++ b/demo/mnist/api_train_v2.py
    @@ -30,10 +30,11 @@ def main():
                     result = trainer.test(reader=paddle.reader.batched(
                         paddle.dataset.mnist.test(), batch_size=256))
     
    -                print "Pass %d, Batch %d, Cost %f, %s, Testing metrics %s" % (
    -                    event.pass_id, event.batch_id, event.cost, event.metrics,
    -                    result.metrics)
    -
    +                print "Pass %d, Batch %d, Cost %.2f, %s, " \
    +                      "Testing cost %.2f metrics %s" % (
    +                          event.pass_id, event.batch_id, event.cost,
    +                          event.metrics,
    +                          result.cost, result.metrics)
             else:
                 pass
     
    diff --git a/python/paddle/v2/event.py b/python/paddle/v2/event.py
    index a78bcf076c..a429e36b63 100644
    --- a/python/paddle/v2/event.py
    +++ b/python/paddle/v2/event.py
    @@ -34,8 +34,9 @@ class WithMetric(object):
     
     
     class TestResult(WithMetric):
    -    def __init__(self, evaluator):
    +    def __init__(self, evaluator, cost):
             super(TestResult, self).__init__(evaluator)
    +        self.cost = cost
     
     
     class BeginPass(object):
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index 5003f55f3e..58ec6dd5fe 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -123,9 +123,8 @@ class SGD(ITrainer):
                     for each_param in self.__gradient_machine__.getParameters():
                         updater.update(each_param)
                     # Get cost. We use numpy to calculate total cost for this batch.
    -                cost_vec = out_args.getSlotValue(0)
    -                cost_vec = cost_vec.copyToNumpyMat()
    -                cost = cost_vec.sum() / len(data_batch)
    +                cost_sum = out_args.sumCosts()
    +                cost = cost_sum / len(data_batch)
                     updater.finishBatch(cost)
                     batch_evaluator.finish()
                     event_handler(
    @@ -154,13 +153,18 @@ class SGD(ITrainer):
             evaluator = self.__gradient_machine__.makeEvaluator()
             out_args = api.Arguments.createArguments(0)
             evaluator.start()
    +        total_cost = 0
    +        num_samples = 0.0
             for data_batch in reader():
    +            num_samples += len(data_batch)
                 self.__gradient_machine__.forward(
                     feeder(data_batch), out_args, api.PASS_TEST)
    +            total_cost += out_args.sumCosts()
                 self.__gradient_machine__.eval(evaluator)
     
             evaluator.finish()
    -        return v2_event.TestResult(evaluator=evaluator)
    +        return v2_event.TestResult(
    +            evaluator=evaluator, cost=total_cost / num_samples)
     
     
     def __check_train_args__(reader, event_handler, **kwargs):
    
    From ba1c978514c05500a858644a09033e2afc5e1f7a Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Thu, 2 Mar 2017 13:41:41 +0800
    Subject: [PATCH 069/186] close file and compare the result with the old way.
    
    ---
     python/paddle/v2/dataset/conll05.py | 14 +++++++++-----
     1 file changed, 9 insertions(+), 5 deletions(-)
    
    diff --git a/python/paddle/v2/dataset/conll05.py b/python/paddle/v2/dataset/conll05.py
    index 7c43c7c634..b6a4c252d1 100644
    --- a/python/paddle/v2/dataset/conll05.py
    +++ b/python/paddle/v2/dataset/conll05.py
    @@ -12,7 +12,8 @@
     # See the License for the specific language governing permissions and
     # limitations under the License.
     
    -import paddle.v2.dataset.common
    +#import paddle.v2.dataset.common
    +import common
     import tarfile
     import gzip
     import itertools
    @@ -49,11 +50,9 @@ def load_dict(filename):
     
     def corpus_reader(data_path, words_name, props_name):
         """
    -    Read one corpus by corpus name. It returns an iterator. Each element of
    +    Read one corpus. It returns an iterator. Each element of
         this iterator is a tuple including sentence and labels. The sentence is
         consist of a list of word IDs. The labels include a list of label IDs.
    -    :param name: corpus name.
    -    :type name: basestring
         :return: a iterator of data.
         :rtype: iterator
         """
    @@ -104,7 +103,8 @@ def corpus_reader(data_path, words_name, props_name):
                                         lbl_seq.append('B-' + cur_tag)
                                         is_in_bracket = True
                                     else:
    -                                    print 'error:', l
    +                                    raise RuntimeError('Unexpected label: %s' %
    +                                                       l)
     
                                 yield sentences, verb_list[i], lbl_seq
     
    @@ -115,6 +115,10 @@ def corpus_reader(data_path, words_name, props_name):
                         sentences.append(word)
                         one_seg.append(label)
     
    +        pf.close()
    +        wf.close()
    +        tf.close()
    +
         return reader
     
     
    
    From d3c755df3fe6009ed2cde1b5dca41196e4024aa7 Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Thu, 2 Mar 2017 13:41:51 +0800
    Subject: [PATCH 070/186] Refine code
    
    ---
     demo/sentiment/train_v2.py | 95 ++++++++++++++++----------------------
     1 file changed, 39 insertions(+), 56 deletions(-)
    
    diff --git a/demo/sentiment/train_v2.py b/demo/sentiment/train_v2.py
    index 779bfee5b6..3d595fad30 100644
    --- a/demo/sentiment/train_v2.py
    +++ b/demo/sentiment/train_v2.py
    @@ -1,3 +1,4 @@
    +import sys
     from os.path import join as join_path
     import paddle.trainer_config_helpers.attrs as attrs
     from paddle.trainer_config_helpers.poolings import MaxPooling
    @@ -188,88 +189,69 @@ def stacked_lstm_net(input_dim,
         return cost
     
     
    -def data_reader():
    -    data_dir = "./data/pre-imdb"
    -    train_file = "train_part_000"
    -    test_file = "test_part_000"
    -    dict_file = "dict.txt"
    -    train_file = join_path(data_dir, train_file)
    -    test_file = join_path(data_dir, test_file)
    -    dict_file = join_path(data_dir, dict_file)
    -
    -    with open(dict_file, 'r') as fdict, open(train_file, 'r') as fdata:
    -        dictionary = dict()
    -        for i, line in enumerate(fdict):
    -            dictionary[line.split('\t')[0]] = i
    -
    -        for line_count, line in enumerate(fdata):
    -            label, comment = line.strip().split('\t\t')
    -            label = int(label)
    -            words = comment.split()
    -            word_slot = [dictionary[w] for w in words if w in dictionary]
    -            yield (word_slot, label)
    -
    -
    -def test_reader():
    -    data_dir = "./data/pre-imdb"
    -    train_file = "train_part_000"
    -    test_file = "test_part_000"
    -    dict_file = "dict.txt"
    -    train_file = join_path(data_dir, train_file)
    -    test_file = join_path(data_dir, test_file)
    -    dict_file = join_path(data_dir, dict_file)
    -
    -    with open(dict_file, 'r') as fdict, open(test_file, 'r') as ftest:
    -        dictionary = dict()
    -        for i, line in enumerate(fdict):
    -            dictionary[line.split('\t')[0]] = i
    -
    -        for line_count, line in enumerate(ftest):
    -            label, comment = line.strip().split('\t\t')
    -            label = int(label)
    -            words = comment.split()
    -            word_slot = [dictionary[w] for w in words if w in dictionary]
    -            yield (word_slot, label)
    +def data_reader(data_file, dict_file):
    +    def reader():
    +        with open(dict_file, 'r') as fdict, open(data_file, 'r') as fdata:
    +            dictionary = dict()
    +            for i, line in enumerate(fdict):
    +                dictionary[line.split('\t')[0]] = i
    +
    +            for line_count, line in enumerate(fdata):
    +                label, comment = line.strip().split('\t\t')
    +                label = int(label)
    +                words = comment.split()
    +                word_slot = [dictionary[w] for w in words if w in dictionary]
    +                yield (word_slot, label)
    +
    +    return reader
     
     
     if __name__ == '__main__':
    -    data_dir = "./data/pre-imdb"
    -    train_list = "train.list"
    -    test_list = "test.list"
    -    dict_file = "dict.txt"
    -    dict_dim = len(open(join_path(data_dir, "dict.txt")).readlines())
    -    class_dim = len(open(join_path(data_dir, 'labels.list')).readlines())
    -    is_predict = False
    +    # data file
    +    train_file = "./data/pre-imdb/train_part_000"
    +    test_file = "./data/pre-imdb/test_part_000"
    +    dict_file = "./data/pre-imdb/dict.txt"
    +    labels = "./data/pre-imdb/labels.list"
     
         # init
         paddle.init(use_gpu=True, trainer_count=4)
     
         # network config
    -    # cost = convolution_net(dict_dim, class_dim=class_dim, is_predict=is_predict)
    -    cost = stacked_lstm_net(
    -        dict_dim, class_dim=class_dim, stacked_num=3, is_predict=is_predict)
    +    dict_dim = len(open(dict_file).readlines())
    +    class_dim = len(open(labels).readlines())
    +
    +    # Please choose the way to build the network
    +    # by uncommenting the corresponding line.
    +    cost = convolution_net(dict_dim, class_dim=class_dim)
    +    # cost = stacked_lstm_net(dict_dim, class_dim=class_dim, stacked_num=3)
     
         # create parameters
         parameters = paddle.parameters.create(cost)
     
    +    # create optimizer
         adam_optimizer = paddle.optimizer.Adam(
             learning_rate=2e-3,
             regularization=paddle.optimizer.L2Regularization(rate=8e-4),
             model_average=paddle.optimizer.ModelAverage(average_window=0.5))
     
    +    # End batch and end pass event handler
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
                 if event.batch_id % 100 == 0:
    -                print "Pass %d, Batch %d, Cost %f, %s" % (
    +                print "\nPass %d, Batch %d, Cost %f, %s" % (
                         event.pass_id, event.batch_id, event.cost, event.metrics)
    +            else:
    +                sys.stdout.write('.')
    +                sys.stdout.flush()
             if isinstance(event, paddle.event.EndPass):
                 result = trainer.test(
                     reader=paddle.reader.batched(
    -                    test_reader, batch_size=128),
    +                    data_reader(test_file, dict_file), batch_size=128),
                     reader_dict={'word': 0,
                                  'label': 1})
    -            print "Test with Pass %d, %s" % (event.pass_id, result.metrics)
    +            print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
     
    +    # create trainer
         trainer = paddle.trainer.SGD(cost=cost,
                                      parameters=parameters,
                                      update_equation=adam_optimizer)
    @@ -277,7 +259,8 @@ if __name__ == '__main__':
         trainer.train(
             reader=paddle.reader.batched(
                 paddle.reader.shuffle(
    -                data_reader, buf_size=4096), batch_size=128),
    +                data_reader(train_file, dict_file), buf_size=4096),
    +            batch_size=128),
             event_handler=event_handler,
             reader_dict={'word': 0,
                          'label': 1},
    
    From 4dd2e40bd07c0ff1123d35328687f53682e67a62 Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Thu, 2 Mar 2017 13:55:41 +0800
    Subject: [PATCH 071/186] remove comments
    
    ---
     python/paddle/v2/dataset/conll05.py | 3 +--
     1 file changed, 1 insertion(+), 2 deletions(-)
    
    diff --git a/python/paddle/v2/dataset/conll05.py b/python/paddle/v2/dataset/conll05.py
    index b6a4c252d1..7874161a05 100644
    --- a/python/paddle/v2/dataset/conll05.py
    +++ b/python/paddle/v2/dataset/conll05.py
    @@ -12,8 +12,7 @@
     # See the License for the specific language governing permissions and
     # limitations under the License.
     
    -#import paddle.v2.dataset.common
    -import common
    +import paddle.v2.dataset.common
     import tarfile
     import gzip
     import itertools
    
    From b250fceab5e8f9f0c763d1faa054c078fc4db669 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 14:28:15 +0800
    Subject: [PATCH 072/186] Add save/load parameters.
    
    ---
     demo/mnist/.gitignore          |  1 +
     demo/mnist/api_train_v2.py     | 11 ++++++++++-
     python/paddle/v2/parameters.py | 27 +++++++++++++++++++++++++++
     python/paddle/v2/trainer.py    |  2 +-
     4 files changed, 39 insertions(+), 2 deletions(-)
    
    diff --git a/demo/mnist/.gitignore b/demo/mnist/.gitignore
    index 8bd9837523..9c552159be 100644
    --- a/demo/mnist/.gitignore
    +++ b/demo/mnist/.gitignore
    @@ -5,3 +5,4 @@ plot.png
     train.log
     *pyc
     .ipynb_checkpoints
    +params.pkl
    diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py
    index a59b30ccdb..73fcb9d79d 100644
    --- a/demo/mnist/api_train_v2.py
    +++ b/demo/mnist/api_train_v2.py
    @@ -1,4 +1,5 @@
     import paddle.v2 as paddle
    +import cPickle
     
     
     def main():
    @@ -16,7 +17,11 @@ def main():
                                     act=paddle.activation.Softmax())
         cost = paddle.layer.classification_cost(input=inference, label=label)
     
    -    parameters = paddle.parameters.create(cost)
    +    try:
    +        with open('params.pkl', 'r') as f:
    +            parameters = cPickle.load(f)
    +    except IOError:
    +        parameters = paddle.parameters.create(cost)
     
         adam_optimizer = paddle.optimizer.Adam(learning_rate=0.01)
     
    @@ -34,6 +39,10 @@ def main():
                         event.pass_id, event.batch_id, event.cost, event.metrics,
                         result.metrics)
     
    +                with open('params.pkl', 'w') as f:
    +                    cPickle.dump(
    +                        parameters, f, protocol=cPickle.HIGHEST_PROTOCOL)
    +
             else:
                 pass
     
    diff --git a/python/paddle/v2/parameters.py b/python/paddle/v2/parameters.py
    index 2a6026bcab..d8c3a73b0e 100644
    --- a/python/paddle/v2/parameters.py
    +++ b/python/paddle/v2/parameters.py
    @@ -222,6 +222,33 @@ class Parameters(object):
     
             self.__gradient_machines__.append(gradient_machine)
     
    +    def __getstate__(self):
    +        params = {}
    +        for name in self.names():
    +            params[name] = self.get(name)
    +
    +        param_conf = {}
    +        for name in self.__param_conf__:
    +            conf = self.__param_conf__[name]
    +            assert isinstance(conf, ParameterConfig)
    +            param_conf[name] = conf.SerializeToString()
    +
    +        return {'conf': param_conf, 'params': params}
    +
    +    def __setstate__(self, obj):
    +        Parameters.__init__(self)
    +
    +        def __impl__(conf, params):
    +            for name in conf:
    +                p = ParameterConfig()
    +                p.ParseFromString(conf[name])
    +                self.__append_config__(p)
    +            for name in params:
    +                shape = self.get_shape(name)
    +                self.set(name, params[name].reshape(shape))
    +
    +        __impl__(**obj)
    +
     
     def __get_parameter_in_gradient_machine__(gradient_machine, name):
         """
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index 5003f55f3e..709566ca44 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -66,9 +66,9 @@ class SGD(ITrainer):
                 self.__topology_in_proto__, api.CREATE_MODE_NORMAL,
                 self.__optimizer__.enable_types())
             assert isinstance(gm, api.GradientMachine)
    -        parameters.append_gradient_machine(gm)
             self.__gradient_machine__ = gm
             self.__gradient_machine__.randParameters()
    +        parameters.append_gradient_machine(gm)
     
         def train(self, reader, num_passes=1, event_handler=None, reader_dict=None):
             """
    
    From fd5778ab2368ddd47b9ab62588c3fdc2e57fd94e Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 14:41:15 +0800
    Subject: [PATCH 073/186] Fix unittest
    
    ---
     .travis.yml                          | 2 +-
     paddle/scripts/docker/Dockerfile     | 2 +-
     paddle/scripts/docker/Dockerfile.gpu | 2 +-
     3 files changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/.travis.yml b/.travis.yml
    index 4fb2ca9387..28d1f51be7 100644
    --- a/.travis.yml
    +++ b/.travis.yml
    @@ -57,7 +57,7 @@ before_install:
       - if [[ "$JOB" == "PRE_COMMIT" ]]; then sudo ln -s /usr/bin/clang-format-3.8 /usr/bin/clang-format; fi
       # Paddle is using protobuf 3.1 currently. Protobuf 3.2 breaks the compatibility. So we specify the python 
       # protobuf version.
    -  - pip install numpy wheel 'protobuf==3.1' sphinx recommonmark sphinx_rtd_theme virtualenv pre-commit requests==2.9.2 LinkChecker
    +  - pip install numpy wheel 'protobuf==3.1' sphinx recommonmark sphinx-rtd-theme==0.1.9 virtualenv pre-commit requests==2.9.2 LinkChecker
     script:
       - paddle/scripts/travis/main.sh
     notifications:
    diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile
    index 23f4d43588..98eaa15a0f 100644
    --- a/paddle/scripts/docker/Dockerfile
    +++ b/paddle/scripts/docker/Dockerfile
    @@ -42,7 +42,7 @@ RUN pip install --upgrade pip && \
         pip install -U 'protobuf==3.1.0' && \
         pip install -U wheel pillow BeautifulSoup && \
         pip install -U docopt PyYAML sphinx && \
    -    pip install -U sphinx_rtd_theme recommonmark && \
    +    pip install -U sphinx-rtd-theme==0.1.9 recommonmark && \
         pip install -U pre-commit 'requests==2.9.2' jupyter
     
     RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \
    diff --git a/paddle/scripts/docker/Dockerfile.gpu b/paddle/scripts/docker/Dockerfile.gpu
    index a975e580e4..4d30ccdd2b 100644
    --- a/paddle/scripts/docker/Dockerfile.gpu
    +++ b/paddle/scripts/docker/Dockerfile.gpu
    @@ -42,7 +42,7 @@ RUN pip install --upgrade pip && \
         pip install -U 'protobuf==3.1.0' && \
         pip install -U wheel pillow BeautifulSoup && \
         pip install -U docopt PyYAML sphinx && \
    -    pip install -U sphinx_rtd_theme recommonmark && \
    +    pip install -U sphinx-rtd-theme==0.1.9 recommonmark && \
         pip install -U pre-commit 'requests==2.9.2' jupyter
     
     RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \
    
    From 0dc68a2c90e2432a3b5678881268fa22e1f0d990 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Thu, 2 Mar 2017 14:48:51 +0800
    Subject: [PATCH 074/186] add getNonStaticParameters
    
    ---
     demo/image_classification/api_v2_train.py |  4 ++--
     paddle/api/GradientMachine.cpp            | 14 ++++++++++++++
     paddle/api/PaddleAPI.h                    |  3 +++
     paddle/py_paddle/util.py                  |  6 ++++++
     4 files changed, 25 insertions(+), 2 deletions(-)
    
    diff --git a/demo/image_classification/api_v2_train.py b/demo/image_classification/api_v2_train.py
    index e6e4307242..0b4dc4d929 100644
    --- a/demo/image_classification/api_v2_train.py
    +++ b/demo/image_classification/api_v2_train.py
    @@ -12,8 +12,8 @@
     # See the License for the specific language governing permissions and
     # limitations under the License
     
    -from api_v2_vgg import resnet_cifar10
    -from api_v2_resnet import vgg_bn_drop
    +from api_v2_vgg import vgg_bn_drop
    +from api_v2_resnet import resnet_cifar10
     import paddle.v2 as paddle
     
     
    diff --git a/paddle/api/GradientMachine.cpp b/paddle/api/GradientMachine.cpp
    index 538ca2999f..dcb5fe086f 100644
    --- a/paddle/api/GradientMachine.cpp
    +++ b/paddle/api/GradientMachine.cpp
    @@ -142,6 +142,20 @@ Parameter* GradientMachine::getParameter(size_t i) throw(RangeError) {
       }
     }
     
    +size_t GradientMachine::getNonStaticParameterSize() const {
    +  return m->machine->getNonStaticParameters().size();
    +}
    +
    +Parameter* GradientMachine::getNonStaticParameter(size_t i) throw(RangeError) {
    +  auto params = m->machine->getNonStaticParameters();
    +  if (i < params.size()) {
    +    return Parameter::createFromSharedPtr(
    +        &m->machine->getNonStaticParameters()[i]);
    +  } else {
    +    throw RangeError();
    +  }
    +}
    +
     void GradientMachine::randParameters() { m->machine->randParameters(); }
     
     Arguments* GradientMachine::getLayerOutput(const std::string& layerName) const
    diff --git a/paddle/api/PaddleAPI.h b/paddle/api/PaddleAPI.h
    index 1831b8e170..764946cf53 100644
    --- a/paddle/api/PaddleAPI.h
    +++ b/paddle/api/PaddleAPI.h
    @@ -768,6 +768,9 @@ public:
       size_t getParameterSize() const;
       Parameter* getParameter(size_t i) throw(RangeError);
     
    +  size_t getNonStaticParameterSize() const;
    +  Parameter* getNonStaticParameter(size_t i) throw(RangeError);
    +
       void randParameters();
     
       Arguments* getLayerOutput(const std::string& layerName) const
    diff --git a/paddle/py_paddle/util.py b/paddle/py_paddle/util.py
    index a708def1d2..fb337b8af3 100644
    --- a/paddle/py_paddle/util.py
    +++ b/paddle/py_paddle/util.py
    @@ -195,6 +195,12 @@ def __monkeypatch_gradient_machine__():
     
         swig_paddle.GradientMachine.getParameters = getParameters
     
    +    def getNonStaticParameters(self):
    +        return (self.getNonStaticParameter(i)
    +                for i in xrange(self.getNonStaticParameterSize()))
    +
    +    swig_paddle.GradientMachine.getParameters = getParameters
    +
         def getLayerOutputs(self, layerNames):
             """
             getLayerOutputs. get outputs of layers and return a numpy matrix dict.
    
    From ce3a399d3d5654804c8f258cb4b2d0455e013606 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Thu, 2 Mar 2017 14:54:56 +0800
    Subject: [PATCH 075/186] update util.py
    
    ---
     paddle/py_paddle/util.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/paddle/py_paddle/util.py b/paddle/py_paddle/util.py
    index fb337b8af3..1c9455fab5 100644
    --- a/paddle/py_paddle/util.py
    +++ b/paddle/py_paddle/util.py
    @@ -199,7 +199,7 @@ def __monkeypatch_gradient_machine__():
             return (self.getNonStaticParameter(i)
                     for i in xrange(self.getNonStaticParameterSize()))
     
    -    swig_paddle.GradientMachine.getParameters = getParameters
    +    swig_paddle.GradientMachine.getNonStaticParameters = getNonStaticParameters
     
         def getLayerOutputs(self, layerNames):
             """
    
    From e4007337ae88d0874f8d7c0bc41e9aa641de38b7 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 15:09:21 +0800
    Subject: [PATCH 076/186] Follow comments
    
    ---
     python/paddle/v2/trainer.py | 1 -
     1 file changed, 1 deletion(-)
    
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index 58ec6dd5fe..21a1642c36 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -122,7 +122,6 @@ class SGD(ITrainer):
                     self.__gradient_machine__.eval(batch_evaluator)
                     for each_param in self.__gradient_machine__.getParameters():
                         updater.update(each_param)
    -                # Get cost. We use numpy to calculate total cost for this batch.
                     cost_sum = out_args.sumCosts()
                     cost = cost_sum / len(data_batch)
                     updater.finishBatch(cost)
    
    From c9bb48b308807f80b3ba238cafb97ba4b0eda983 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Thu, 2 Mar 2017 15:09:26 +0800
    Subject: [PATCH 077/186] support calculate size
    
    ---
     python/paddle/v2/config_base.py |   7 +-
     python/paddle/v2/layer.py       | 110 ++++++++++++++++++++------------
     2 files changed, 75 insertions(+), 42 deletions(-)
    
    diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py
    index be3e39a06e..573539a30c 100644
    --- a/python/paddle/v2/config_base.py
    +++ b/python/paddle/v2/config_base.py
    @@ -22,7 +22,7 @@ class Layer(object):
         def __init__(self, name=None, size=None, parent_layers=None):
             assert isinstance(parent_layers, dict)
             self.name = name
    -        self.size = size
    +        self.__contex__ = {}
             self.__parent_layers__ = parent_layers
     
         def to_proto(self, context):
    @@ -44,7 +44,7 @@ class Layer(object):
                 return self.to_proto_impl(**kwargs)
             elif self.context_name() not in context:
                 context[self.context_name()] = self.to_proto_impl(**kwargs)
    -
    +        self.__contex__ = context
             if self.use_context_name():
                 return context[self.context_name()]
             else:
    @@ -64,6 +64,9 @@ class Layer(object):
         def use_context_name(self):
             return False
     
    +    def calcalted_size(self):
    +        return self.__contex__[self.context_name()].size
    +
     
     def __convert_to_v2__(method_name, parent_names, is_default_name=True):
         if is_default_name:
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index e24244a48c..a97518ed52 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -197,6 +197,10 @@ class MemoryV2(WithExtraParent):
                         val = locs[key]
                         if isinstance(val, RecurrentLayerInput):
                             begin_of_current_rnn.append(val)
    +                    elif isinstance(val, collections.Sequence):
    +                        for v in val:
    +                            if isinstance(v, RecurrentLayerInput):
    +                                begin_of_current_rnn.append(v)
     
                     if begin_of_current_rnn:
                         break
    @@ -216,7 +220,13 @@ class MemoryV2(WithExtraParent):
     
             if self.__boot_layer_name__ is not None:
                 args['boot_layer'] = context[self.__boot_layer_name__]
    -        return conf_helps.memory(name=self.name, size=self.size, **args)
    +
    +        if callable(self.size):
    +            real_size = self.size()
    +        else:
    +            real_size = self.size
    +        args['size'] = real_size
    +        return conf_helps.memory(name=self.name, **args)
     
         def context_name(self):
             return self.name + "#memory"
    @@ -311,6 +321,12 @@ class MixedLayerV2(Layer):
                 args[each] = kwargs[each]
             for each in self.__other_kwargs__:
                 args[each] = self.__other_kwargs__[each]
    +        size = args.get('size', None)
    +        if callable(size):
    +            real_size = size()
    +        else:
    +            real_size = size
    +        args['size'] = real_size
             return getattr(conf_helps, self.__method_name__)(**args)
     
     
    @@ -363,53 +379,15 @@ class RecurrentLayerOutput(Layer):
             RecurrentLayerGroupEnd(name=self.__recurrent_name__)
     
     
    -@wrap_name_default()
    -def recurrent_group(step, input, name=None):
    -    if not isinstance(input, collections.Sequence):
    -        input = [input]
    -
    -    # TODO(qiaolongfei) convert StaticInput to memory according to v2 recurrent_group
    -    for i in xrange(len(input)):
    -        cur_input = input[i]
    -        if isinstance(cur_input, StaticInputV2):
    -            input[i] = cur_input.input
    -
    -    actual_input = [
    -        RecurrentLayerInput(
    -            recurrent_name=name,
    -            index=i,
    -            parent_layers={'recurrent_inputs': input})
    -        for i in xrange(len(input))
    -    ]
    -
    -    actual_output = step(*actual_input)
    -
    -    if not isinstance(actual_output, collections.Sequence):
    -        actual_output = [actual_output]
    -
    -    retv = [
    -        RecurrentLayerOutput(
    -            recurrent_name=name,
    -            index=i,
    -            parent_layers={'recurrent_outputs': actual_output})
    -        for i in xrange(len(actual_output))
    -    ]
    -    if len(retv) == 1:
    -        return retv[0]
    -    else:
    -        return retv
    -
    -
     LayerV2 = Layer
     data = DataLayerV2
     AggregateLevel = conf_helps.layers.AggregateLevel
     ExpandLevel = conf_helps.layers.ExpandLevel
    -recurrent_group = recurrent_group
     memory = MemoryV2
     
     
     def __layer_name_mapping__(inname):
    -    if inname in ['data_layer', 'memory', 'mixed_layer']:
    +    if inname in ['data_layer', 'memory', 'mixed_layer', 'recurrent_group']:
             # Do Not handle these layers
             return
         elif inname == 'maxid_layer':
    @@ -469,3 +447,55 @@ operator_list = [
     for op in operator_list:
         globals()[op[0]] = __convert_to_v2__(
             op[0], parent_names=op[1], is_default_name=False)
    +
    +
    +@wrap_name_default()
    +def recurrent_group(step, input, name=None):
    +    if not isinstance(input, collections.Sequence):
    +        input = [input]
    +
    +    non_static_inputs = filter(lambda x: not isinstance(x, StaticInputV2),
    +                               input)
    +    actual_input = [
    +        RecurrentLayerInput(
    +            recurrent_name=name,
    +            index=i,
    +            parent_layers={'recurrent_inputs': non_static_inputs})
    +        for i in xrange(len(non_static_inputs))
    +    ]
    +
    +    def __real_step__(*args):
    +        rnn_input = list(args)
    +        static_inputs = filter(lambda x: isinstance(x, StaticInputV2), input)
    +        for static_input in static_inputs:
    +            mem_name = "__%s_memory__" % static_input.input.name
    +            print memory
    +            mem = memory(
    +                name=mem_name,
    +                is_seq=static_input.is_seq,
    +                size=static_input.input.calcalted_size,
    +                boot_layer=static_input.input)
    +            with mixed(
    +                    name=mem_name,
    +                    size=static_input.input.calcalted_size,
    +                    act=activation.Identity()) as mix:
    +                mix += identity_projection(input=mem)
    +            rnn_input.insert(input.index(static_input), mix)
    +        return step(*rnn_input)
    +
    +    actual_output = __real_step__(*actual_input)
    +
    +    if not isinstance(actual_output, collections.Sequence):
    +        actual_output = [actual_output]
    +
    +    retv = [
    +        RecurrentLayerOutput(
    +            recurrent_name=name,
    +            index=i,
    +            parent_layers={'recurrent_outputs': actual_output})
    +        for i in xrange(len(actual_output))
    +    ]
    +    if len(retv) == 1:
    +        return retv[0]
    +    else:
    +        return retv
    
    From 69bf77fd1e71fc57bf0f15820a9dd34bd98c79b6 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Thu, 2 Mar 2017 15:09:49 +0800
    Subject: [PATCH 078/186] fix trainer v2 getNonStaticParameters
    
    ---
     python/paddle/v2/trainer.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index bf8b181e42..44ba9d7ae1 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -113,7 +113,7 @@ class SGD(ITrainer):
                     gm.forwardBackward(feeder(data_batch), out_args, pass_type)
                     gm.eval(pass_evaluator)
                     gm.eval(batch_evaluator)
    -                for each_param in gm.getParameters():
    +                for each_param in gm.getNonStaticParameters():
                         updater.update(each_param)
                     # Get cost. We use numpy to calculate total cost for this batch.
                     cost_vec = out_args.getSlotValue(0)
    
    From 3b8a8f81142e7eaea06e8e43e41bcb7bc73b0e09 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 15:10:54 +0800
    Subject: [PATCH 079/186] Follow comments
    
    ---
     demo/mnist/api_train_v2.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py
    index 00d1022175..575a32b322 100644
    --- a/demo/mnist/api_train_v2.py
    +++ b/demo/mnist/api_train_v2.py
    @@ -30,7 +30,7 @@ def main():
                     result = trainer.test(reader=paddle.reader.batched(
                         paddle.dataset.mnist.test(), batch_size=256))
     
    -                print "Pass %d, Batch %d, Cost %.2f, %s, " \
    +                print "Pass %d, Batch %d, Cost %.2f, %s\n" \
                           "Testing cost %.2f metrics %s" % (
                               event.pass_id, event.batch_id, event.cost,
                               event.metrics,
    
    From 1164c287b9db46abd9e591ddebe720bc3e08e22d Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Thu, 2 Mar 2017 15:14:34 +0800
    Subject: [PATCH 080/186] add datasets import
    
    ---
     python/paddle/v2/dataset/__init__.py | 6 +++++-
     1 file changed, 5 insertions(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py
    index 9647e98503..d222739ba2 100644
    --- a/python/paddle/v2/dataset/__init__.py
    +++ b/python/paddle/v2/dataset/__init__.py
    @@ -1,3 +1,7 @@
     import mnist
    +import imikolov
    +import imdb
    +import cifar
    +import movielens
     
    -__all__ = ['mnist']
    +__all__ = ['mnist', 'imikolov', 'imdb', 'cifar', 'movielens']
    
    From f9e6aa2c31aa6bc5269cd66eaa8705b0b98af989 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Thu, 2 Mar 2017 15:23:19 +0800
    Subject: [PATCH 081/186] refine code
    
    ---
     python/paddle/v2/config_base.py | 12 ++++++----
     python/paddle/v2/layer.py       | 40 +++++++++++++++++----------------
     2 files changed, 29 insertions(+), 23 deletions(-)
    
    diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py
    index 573539a30c..fa2ccec6c3 100644
    --- a/python/paddle/v2/config_base.py
    +++ b/python/paddle/v2/config_base.py
    @@ -19,7 +19,7 @@ import paddle.trainer_config_helpers as conf_helps
     
     
     class Layer(object):
    -    def __init__(self, name=None, size=None, parent_layers=None):
    +    def __init__(self, name=None, parent_layers=None):
             assert isinstance(parent_layers, dict)
             self.name = name
             self.__contex__ = {}
    @@ -64,7 +64,12 @@ class Layer(object):
         def use_context_name(self):
             return False
     
    -    def calcalted_size(self):
    +    def calculate_size(self):
    +        """
    +        lazy calculate size of the layer, should be called when to_proto_impl of
    +        this layer is called.
    +        :return:
    +        """
             return self.__contex__[self.context_name()].size
     
     
    @@ -87,8 +92,7 @@ def __convert_to_v2__(method_name, parent_names, is_default_name=True):
                         other_kwargs[key] = kwargs[key]
     
                 name = kwargs.get('name', None)
    -            size = kwargs.get('size', None)
    -            super(V2LayerImpl, self).__init__(name, size, parent_layers)
    +            super(V2LayerImpl, self).__init__(name, parent_layers)
                 self.__other_kwargs__ = other_kwargs
     
             if wrapper is not None:
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index a97518ed52..0d8b59cfd2 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -139,10 +139,10 @@ class WithExtraParent(Layer):
         def extra_parent(self):
             return self.__extra_parent__
     
    -    def __init__(self, name=None, size=None, parent_layers=None):
    +    def __init__(self, name=None, parent_layers=None):
             self.__extra_parent__ = []
             super(WithExtraParent, self).__init__(
    -            name=name, size=size, parent_layers=parent_layers)
    +            name=name, parent_layers=parent_layers)
     
         def append_extra_parent(self, parent):
             self.__extra_parent__.append(parent)
    @@ -178,11 +178,9 @@ class WithExtraParent(Layer):
     
     
     class MemoryV2(WithExtraParent):
    -    def __init__(self, name, size, **kwargs):
    +    def __init__(self, name, **kwargs):
             self.name = name
    -        self.size = size
    -        super(MemoryV2, self).__init__(
    -            name=name, size=size, parent_layers=dict())
    +        super(MemoryV2, self).__init__(name=name, parent_layers=dict())
             self.__kwargs__ = kwargs
             self.__boot_layer_name__ = None
             if 'boot_layer' in kwargs:
    @@ -221,11 +219,14 @@ class MemoryV2(WithExtraParent):
             if self.__boot_layer_name__ is not None:
                 args['boot_layer'] = context[self.__boot_layer_name__]
     
    -        if callable(self.size):
    -            real_size = self.size()
    -        else:
    -            real_size = self.size
    -        args['size'] = real_size
    +        size = args.get('size', None)
    +        if size is not None:
    +            if callable(size):
    +                real_size = size()
    +            else:
    +                real_size = size
    +            print(real_size)
    +            args['size'] = real_size
             return conf_helps.memory(name=self.name, **args)
     
         def context_name(self):
    @@ -298,7 +299,7 @@ class MixedLayerV2(Layer):
             other_kwargs['bias_attr'] = bias_attr
             other_kwargs['layer_attr'] = layer_attr
             parent_layers = {"input": self.__inputs__}
    -        super(MixedLayerV2, self).__init__(name, size, parent_layers)
    +        super(MixedLayerV2, self).__init__(name, parent_layers)
             self.__other_kwargs__ = other_kwargs
     
         def __iadd__(self, other):
    @@ -322,11 +323,12 @@ class MixedLayerV2(Layer):
             for each in self.__other_kwargs__:
                 args[each] = self.__other_kwargs__[each]
             size = args.get('size', None)
    -        if callable(size):
    -            real_size = size()
    -        else:
    -            real_size = size
    -        args['size'] = real_size
    +        if size is not None:
    +            if callable(size):
    +                real_size = size()
    +            else:
    +                real_size = size
    +            args['size'] = real_size
             return getattr(conf_helps, self.__method_name__)(**args)
     
     
    @@ -473,11 +475,11 @@ def recurrent_group(step, input, name=None):
                 mem = memory(
                     name=mem_name,
                     is_seq=static_input.is_seq,
    -                size=static_input.input.calcalted_size,
    +                size=static_input.input.calculate_size,
                     boot_layer=static_input.input)
                 with mixed(
                         name=mem_name,
    -                    size=static_input.input.calcalted_size,
    +                    size=static_input.input.calculate_size,
                         act=activation.Identity()) as mix:
                     mix += identity_projection(input=mem)
                 rnn_input.insert(input.index(static_input), mix)
    
    From bb66f24334eff70a045c75ef9ff5a22b77c27e81 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Thu, 2 Mar 2017 15:32:01 +0800
    Subject: [PATCH 082/186] remove debug code
    
    ---
     python/paddle/v2/layer.py | 2 --
     1 file changed, 2 deletions(-)
    
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index 0d8b59cfd2..2f55611aaa 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -225,7 +225,6 @@ class MemoryV2(WithExtraParent):
                     real_size = size()
                 else:
                     real_size = size
    -            print(real_size)
                 args['size'] = real_size
             return conf_helps.memory(name=self.name, **args)
     
    @@ -471,7 +470,6 @@ def recurrent_group(step, input, name=None):
             static_inputs = filter(lambda x: isinstance(x, StaticInputV2), input)
             for static_input in static_inputs:
                 mem_name = "__%s_memory__" % static_input.input.name
    -            print memory
                 mem = memory(
                     name=mem_name,
                     is_seq=static_input.is_seq,
    
    From 6d09f70a860f253e00f91685eb73693e3eef5a76 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Thu, 2 Mar 2017 15:43:13 +0800
    Subject: [PATCH 083/186] Add event_handler test and comment
    
    ---
     demo/image_classification/api_v2_train.py | 23 ++++++++++++++++++++---
     1 file changed, 20 insertions(+), 3 deletions(-)
    
    diff --git a/demo/image_classification/api_v2_train.py b/demo/image_classification/api_v2_train.py
    index 0b4dc4d929..94bf0b5db4 100644
    --- a/demo/image_classification/api_v2_train.py
    +++ b/demo/image_classification/api_v2_train.py
    @@ -12,27 +12,41 @@
     # See the License for the specific language governing permissions and
     # limitations under the License
     
    +import sys
    +import paddle.v2 as paddle
     from api_v2_vgg import vgg_bn_drop
     from api_v2_resnet import resnet_cifar10
    -import paddle.v2 as paddle
     
     
    +# End batch and end pass event handler
     def event_handler(event):
         if isinstance(event, paddle.event.EndIteration):
             if event.batch_id % 100 == 0:
    -            print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id,
    -                                                  event.cost)
    +            print "\nPass %d, Batch %d, Cost %f, %s" % (
    +                event.pass_id, event.batch_id, event.cost, event.metrics)
    +        else:
    +            sys.stdout.write('.')
    +            sys.stdout.flush()
    +    if isinstance(event, paddle.event.EndPass):
    +        result = trainer.test(
    +            reader=paddle.reader.batched(
    +                paddle.dataset.cifar.test10(), batch_size=128),
    +            reader_dict={'image': 0,
    +                         'label': 1})
    +        print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
     
     
     def main():
         datadim = 3 * 32 * 32
         classdim = 10
     
    +    # PaddlePaddle init
         paddle.init(use_gpu=True, trainer_count=1)
     
         image = paddle.layer.data(
             name="image", type=paddle.data_type.dense_vector(datadim))
     
    +    # Add neural network config
         # option 1. resnet
         net = resnet_cifar10(image, depth=32)
         # option 2. vgg
    @@ -46,8 +60,10 @@ def main():
             name="label", type=paddle.data_type.integer_value(classdim))
         cost = paddle.layer.classification_cost(input=out, label=lbl)
     
    +    # Create parameters
         parameters = paddle.parameters.create(cost)
     
    +    # Create optimizer
         momentum_optimizer = paddle.optimizer.Momentum(
             momentum=0.9,
             regularization=paddle.optimizer.L2Regularization(rate=0.0002 * 128),
    @@ -57,6 +73,7 @@ def main():
             learning_rate_schedule='discexp',
             batch_size=128)
     
    +    # Create trainer
         trainer = paddle.trainer.SGD(cost=cost,
                                      parameters=parameters,
                                      update_equation=momentum_optimizer)
    
    From 9059eea4f46cf47a9f1382b97f25ab5f4586a5da Mon Sep 17 00:00:00 2001
    From: "yi.wu" 
    Date: Thu, 2 Mar 2017 15:58:39 +0800
    Subject: [PATCH 084/186] Fix k8s cluster job rerunable
    
    ---
     doc/howto/usage/k8s/src/k8s_train/start_paddle.py | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/doc/howto/usage/k8s/src/k8s_train/start_paddle.py b/doc/howto/usage/k8s/src/k8s_train/start_paddle.py
    index f1a770ccb5..935c12bb67 100755
    --- a/doc/howto/usage/k8s/src/k8s_train/start_paddle.py
    +++ b/doc/howto/usage/k8s/src/k8s_train/start_paddle.py
    @@ -132,7 +132,8 @@ def startPaddle(idMap={}, train_args_dict=None):
         logDir = JOB_PATH_OUTPUT + "/node_" + str(trainerId)
         if not os.path.exists(JOB_PATH_OUTPUT):
             os.makedirs(JOB_PATH_OUTPUT)
    -    os.mkdir(logDir)
    +    if not os.path.exists(logDir):
    +        os.mkdir(logDir)
         copyCommand = 'cp -rf ' + JOB_PATH + \
             "/" + str(trainerId) + "/data/*" + " ./data/"
         os.system(copyCommand)
    
    From 4a94f8a4473b96161b721341fd0a889d34367aed Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Thu, 2 Mar 2017 16:00:59 +0800
    Subject: [PATCH 085/186] refine api training
    
    ---
     demo/semantic_role_labeling/api_train_v2.py | 221 +++++++++++++-------
     demo/semantic_role_labeling/model_v2.py     | 121 -----------
     python/paddle/v2/dataset/__init__.py        |   2 +-
     python/paddle/v2/dataset/conll05.py         |   6 +-
     4 files changed, 147 insertions(+), 203 deletions(-)
     delete mode 100644 demo/semantic_role_labeling/model_v2.py
    
    diff --git a/demo/semantic_role_labeling/api_train_v2.py b/demo/semantic_role_labeling/api_train_v2.py
    index cfbd2a0224..8ce6faaa1b 100644
    --- a/demo/semantic_role_labeling/api_train_v2.py
    +++ b/demo/semantic_role_labeling/api_train_v2.py
    @@ -1,69 +1,142 @@
    +import sys
    +import math
     import numpy as np
     import paddle.v2 as paddle
    -from model_v2 import db_lstm
    +import paddle.v2.dataset.conll05 as conll05
     
     UNK_IDX = 0
     
    -word_dict_file = './data/wordDict.txt'
    -label_dict_file = './data/targetDict.txt'
    -predicate_file = './data/verbDict.txt'
     
    -word_dict = dict()
    -label_dict = dict()
    -predicate_dict = dict()
    -
    -with open(word_dict_file, 'r') as f_word, \
    -     open(label_dict_file, 'r') as f_label, \
    -     open(predicate_file, 'r') as f_pre:
    -    for i, line in enumerate(f_word):
    -        w = line.strip()
    -        word_dict[w] = i
    -
    -    for i, line in enumerate(f_label):
    -        w = line.strip()
    -        label_dict[w] = i
    -
    -    for i, line in enumerate(f_pre):
    -        w = line.strip()
    -        predicate_dict[w] = i
    -
    -word_dict_len = len(word_dict)
    -label_dict_len = len(label_dict)
    -pred_len = len(predicate_dict)
    -
    -
    -def train_reader(file_name="data/feature"):
    -    def reader():
    -        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 = [word_dict.get(w, UNK_IDX) for w in words]
    -
    -                predicate_slot = [predicate_dict.get(predicate)] * sen_len
    -                ctx_n2_slot = [word_dict.get(ctx_n2, UNK_IDX)] * sen_len
    -                ctx_n1_slot = [word_dict.get(ctx_n1, UNK_IDX)] * sen_len
    -                ctx_0_slot = [word_dict.get(ctx_0, UNK_IDX)] * sen_len
    -                ctx_p1_slot = [word_dict.get(ctx_p1, UNK_IDX)] * sen_len
    -                ctx_p2_slot = [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 = [label_dict.get(w) for w in label_list]
    -                yield word_slot, ctx_n2_slot, ctx_n1_slot, \
    -                  ctx_0_slot, ctx_p1_slot, ctx_p2_slot, predicate_slot, mark_slot, label_slot
    -
    -    return reader
    +def db_lstm():
    +    word_dict, verb_dict, label_dict = conll05.get_dict()
    +    word_dict_len = len(word_dict)
    +    label_dict_len = len(label_dict)
    +    pred_len = len(verb_dict)
    +    print 'word_dict_len,', word_dict_len
    +    print 'label_dict_len,', label_dict_len
    +    print 'pred_len,', pred_len
    +
    +    mark_dict_len = 2
    +    word_dim = 32
    +    mark_dim = 5
    +    hidden_dim = 512
    +    depth = 8
    +
    +    #8 features
    +    def d_type(size):
    +        return paddle.data_type.integer_value_sequence(size)
    +
    +    word = paddle.layer.data(name='word_data', type=d_type(word_dict_len))
    +    predicate = paddle.layer.data(name='verb_data', type=d_type(pred_len))
    +
    +    ctx_n2 = paddle.layer.data(name='ctx_n2_data', type=d_type(word_dict_len))
    +    ctx_n1 = paddle.layer.data(name='ctx_n1_data', type=d_type(word_dict_len))
    +    ctx_0 = paddle.layer.data(name='ctx_0_data', type=d_type(word_dict_len))
    +    ctx_p1 = paddle.layer.data(name='ctx_p1_data', type=d_type(word_dict_len))
    +    ctx_p2 = paddle.layer.data(name='ctx_p2_data', type=d_type(word_dict_len))
    +    mark = paddle.layer.data(name='mark_data', type=d_type(mark_dict_len))
    +
    +    target = paddle.layer.data(name='target', type=d_type(label_dict_len))
    +
    +    default_std = 1 / math.sqrt(hidden_dim) / 3.0
    +
    +    emb_para = paddle.attr.Param(name='emb', initial_std=0., learning_rate=0.)
    +    std_0 = paddle.attr.Param(initial_std=0.)
    +    std_default = paddle.attr.Param(initial_std=default_std)
    +
    +    predicate_embedding = paddle.layer.embedding(
    +        size=word_dim,
    +        input=predicate,
    +        param_attr=paddle.attr.Param(
    +            name='vemb', initial_std=default_std))
    +    mark_embedding = paddle.layer.embedding(
    +        size=mark_dim, input=mark, param_attr=std_0)
    +
    +    word_input = [word, ctx_n2, ctx_n1, ctx_0, ctx_p1, ctx_p2]
    +    emb_layers = [
    +        paddle.layer.embedding(
    +            size=word_dim, input=x, param_attr=emb_para) for x in word_input
    +    ]
    +    emb_layers.append(predicate_embedding)
    +    emb_layers.append(mark_embedding)
    +
    +    hidden_0 = paddle.layer.mixed(
    +        size=hidden_dim,
    +        bias_attr=std_default,
    +        input=[
    +            paddle.layer.full_matrix_projection(
    +                input=emb, param_attr=std_default) for emb in emb_layers
    +        ])
    +
    +    mix_hidden_lr = 1e-3
    +    lstm_para_attr = paddle.attr.Param(initial_std=0.0, learning_rate=1.0)
    +    hidden_para_attr = paddle.attr.Param(
    +        initial_std=default_std, learning_rate=mix_hidden_lr)
    +
    +    lstm_0 = paddle.layer.lstmemory(
    +        input=hidden_0,
    +        act=paddle.activation.Relu(),
    +        gate_act=paddle.activation.Sigmoid(),
    +        state_act=paddle.activation.Sigmoid(),
    +        bias_attr=std_0,
    +        param_attr=lstm_para_attr)
    +
    +    #stack L-LSTM and R-LSTM with direct edges
    +    input_tmp = [hidden_0, lstm_0]
    +
    +    for i in range(1, depth):
    +        mix_hidden = paddle.layer.mixed(
    +            size=hidden_dim,
    +            bias_attr=std_default,
    +            input=[
    +                paddle.layer.full_matrix_projection(
    +                    input=input_tmp[0], param_attr=hidden_para_attr),
    +                paddle.layer.full_matrix_projection(
    +                    input=input_tmp[1], param_attr=lstm_para_attr)
    +            ])
    +
    +        lstm = paddle.layer.lstmemory(
    +            input=mix_hidden,
    +            act=paddle.activation.Relu(),
    +            gate_act=paddle.activation.Sigmoid(),
    +            state_act=paddle.activation.Sigmoid(),
    +            reverse=((i % 2) == 1),
    +            bias_attr=std_0,
    +            param_attr=lstm_para_attr)
    +
    +        input_tmp = [mix_hidden, lstm]
    +
    +    feature_out = paddle.layer.mixed(
    +        size=label_dict_len,
    +        bias_attr=std_default,
    +        input=[
    +            paddle.layer.full_matrix_projection(
    +                input=input_tmp[0], param_attr=hidden_para_attr),
    +            paddle.layer.full_matrix_projection(
    +                input=input_tmp[1], param_attr=lstm_para_attr)
    +        ], )
    +
    +    crf_cost = paddle.layer.crf(size=label_dict_len,
    +                                input=feature_out,
    +                                label=target,
    +                                param_attr=paddle.attr.Param(
    +                                    name='crfw',
    +                                    initial_std=default_std,
    +                                    learning_rate=mix_hidden_lr))
    +
    +    crf_dec = paddle.layer.crf_decoding(
    +        name='crf_dec_l',
    +        size=label_dict_len,
    +        input=feature_out,
    +        label=target,
    +        param_attr=paddle.attr.Param(name='crfw'))
    +
    +    return crf_cost, crf_dec
     
     
     def load_parameter(file_name, h, w):
         with open(file_name, 'rb') as f:
    -        f.read(16)  # skip header for float type.
    +        f.read(16)  # skip header.
             return np.fromfile(f, dtype=np.float32).reshape(h, w)
     
     
    @@ -71,44 +144,36 @@ def main():
         paddle.init(use_gpu=False, trainer_count=1)
     
         # define network topology
    -    crf_cost, crf_dec = db_lstm(word_dict_len, label_dict_len, pred_len)
    +    crf_cost, crf_dec = db_lstm()
     
    +    # create parameters
         parameters = paddle.parameters.create([crf_cost, crf_dec])
    -    optimizer = paddle.optimizer.Momentum(momentum=0.01, learning_rate=2e-2)
    +
    +    # create optimizer
    +    optimizer = paddle.optimizer.Momentum(
    +        momentum=0,
    +        learning_rate=2e-2,
    +        regularization=paddle.optimizer.L2Regularization(rate=8e-4),
    +        model_average=paddle.optimizer.ModelAverage(
    +            average_window=0.5, max_average_window=10000), )
     
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
                 if event.batch_id % 100 == 0:
                     print "Pass %d, Batch %d, Cost %f, %s" % (
                         event.pass_id, event.batch_id, event.cost, event.metrics)
    -        else:
    -            pass
     
         trainer = paddle.trainer.SGD(cost=crf_cost,
                                      parameters=parameters,
                                      update_equation=optimizer)
    +    parameters.set('emb', load_parameter(conll05.get_embedding(), 44068, 32))
     
    -    parameters.set('emb', load_parameter("data/emb", 44068, 32))
    -
    -    reader_dict = {
    -        'word_data': 0,
    -        'ctx_n2_data': 1,
    -        'ctx_n1_data': 2,
    -        'ctx_0_data': 3,
    -        'ctx_p1_data': 4,
    -        'ctx_p2_data': 5,
    -        'verb_data': 6,
    -        'mark_data': 7,
    -        'target': 8,
    -    }
         trn_reader = paddle.reader.batched(
             paddle.reader.shuffle(
    -            train_reader(), buf_size=8192), batch_size=10)
    +            conll05.test, buf_size=8192), batch_size=10)
    +
         trainer.train(
    -        reader=trn_reader,
    -        event_handler=event_handler,
    -        num_passes=10000,
    -        reader_dict=reader_dict)
    +        reader=trn_reader, event_handler=event_handler, num_passes=10000)
     
     
     if __name__ == '__main__':
    diff --git a/demo/semantic_role_labeling/model_v2.py b/demo/semantic_role_labeling/model_v2.py
    deleted file mode 100644
    index cec58e52c7..0000000000
    --- a/demo/semantic_role_labeling/model_v2.py
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -import math
    -import paddle.v2 as paddle
    -
    -
    -def db_lstm(word_dict_len, label_dict_len, pred_len):
    -    mark_dict_len = 2
    -    word_dim = 32
    -    mark_dim = 5
    -    hidden_dim = 512
    -    depth = 8
    -
    -    #8 features
    -    def d_type(size):
    -        return paddle.data_type.integer_value_sequence(size)
    -
    -    word = paddle.layer.data(name='word_data', type=d_type(word_dict_len))
    -    predicate = paddle.layer.data(name='verb_data', type=d_type(pred_len))
    -
    -    ctx_n2 = paddle.layer.data(name='ctx_n2_data', type=d_type(word_dict_len))
    -    ctx_n1 = paddle.layer.data(name='ctx_n1_data', type=d_type(word_dict_len))
    -    ctx_0 = paddle.layer.data(name='ctx_0_data', type=d_type(word_dict_len))
    -    ctx_p1 = paddle.layer.data(name='ctx_p1_data', type=d_type(word_dict_len))
    -    ctx_p2 = paddle.layer.data(name='ctx_p2_data', type=d_type(word_dict_len))
    -    mark = paddle.layer.data(name='mark_data', type=d_type(mark_dict_len))
    -
    -    target = paddle.layer.data(name='target', type=d_type(label_dict_len))
    -
    -    default_std = 1 / math.sqrt(hidden_dim) / 3.0
    -
    -    emb_para = paddle.attr.Param(name='emb', initial_std=0., learning_rate=0.)
    -    std_0 = paddle.attr.Param(initial_std=0.)
    -    std_default = paddle.attr.Param(initial_std=default_std)
    -
    -    predicate_embedding = paddle.layer.embedding(
    -        size=word_dim,
    -        input=predicate,
    -        param_attr=paddle.attr.Param(
    -            name='vemb', initial_std=default_std))
    -    mark_embedding = paddle.layer.embedding(
    -        size=mark_dim, input=mark, param_attr=std_0)
    -
    -    word_input = [word, ctx_n2, ctx_n1, ctx_0, ctx_p1, ctx_p2]
    -    emb_layers = [
    -        paddle.layer.embedding(
    -            size=word_dim, input=x, param_attr=emb_para) for x in word_input
    -    ]
    -    emb_layers.append(predicate_embedding)
    -    emb_layers.append(mark_embedding)
    -
    -    hidden_0 = paddle.layer.mixed(
    -        size=hidden_dim,
    -        bias_attr=std_default,
    -        input=[
    -            paddle.layer.full_matrix_projection(
    -                input=emb, param_attr=std_default) for emb in emb_layers
    -        ])
    -
    -    mix_hidden_lr = 1e-3
    -    lstm_para_attr = paddle.attr.Param(initial_std=0.0, learning_rate=1.0)
    -    hidden_para_attr = paddle.attr.Param(
    -        initial_std=default_std, learning_rate=mix_hidden_lr)
    -
    -    lstm_0 = paddle.layer.lstmemory(
    -        input=hidden_0,
    -        act=paddle.activation.Relu(),
    -        gate_act=paddle.activation.Sigmoid(),
    -        state_act=paddle.activation.Sigmoid(),
    -        bias_attr=std_0,
    -        param_attr=lstm_para_attr)
    -
    -    #stack L-LSTM and R-LSTM with direct edges
    -    input_tmp = [hidden_0, lstm_0]
    -
    -    for i in range(1, depth):
    -        mix_hidden = paddle.layer.mixed(
    -            size=hidden_dim,
    -            bias_attr=std_default,
    -            input=[
    -                paddle.layer.full_matrix_projection(
    -                    input=input_tmp[0], param_attr=hidden_para_attr),
    -                paddle.layer.full_matrix_projection(
    -                    input=input_tmp[1], param_attr=lstm_para_attr)
    -            ])
    -
    -        lstm = paddle.layer.lstmemory(
    -            input=mix_hidden,
    -            act=paddle.activation.Relu(),
    -            gate_act=paddle.activation.Sigmoid(),
    -            state_act=paddle.activation.Sigmoid(),
    -            reverse=((i % 2) == 1),
    -            bias_attr=std_0,
    -            param_attr=lstm_para_attr)
    -
    -        input_tmp = [mix_hidden, lstm]
    -
    -    feature_out = paddle.layer.mixed(
    -        size=label_dict_len,
    -        bias_attr=std_default,
    -        input=[
    -            paddle.layer.full_matrix_projection(
    -                input=input_tmp[0], param_attr=hidden_para_attr),
    -            paddle.layer.full_matrix_projection(
    -                input=input_tmp[1], param_attr=lstm_para_attr)
    -        ], )
    -
    -    crf_cost = paddle.layer.crf(size=label_dict_len,
    -                                input=feature_out,
    -                                label=target,
    -                                param_attr=paddle.attr.Param(
    -                                    name='crfw',
    -                                    initial_std=default_std,
    -                                    learning_rate=mix_hidden_lr))
    -
    -    crf_dec = paddle.layer.crf_decoding(
    -        name='crf_dec_l',
    -        size=label_dict_len,
    -        input=feature_out,
    -        label=target,
    -        param_attr=paddle.attr.Param(name='crfw'))
    -
    -    return crf_cost, crf_dec
    diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py
    index 15460b820d..90803628e3 100644
    --- a/python/paddle/v2/dataset/__init__.py
    +++ b/python/paddle/v2/dataset/__init__.py
    @@ -14,4 +14,4 @@
     
     import mnist
     
    -__all__ = ['mnist']
    +__all__ = ['mnist', 'cifar', 'imdb', 'conll05', 'imikolov', 'movielens']
    diff --git a/python/paddle/v2/dataset/conll05.py b/python/paddle/v2/dataset/conll05.py
    index 7874161a05..52f19d2115 100644
    --- a/python/paddle/v2/dataset/conll05.py
    +++ b/python/paddle/v2/dataset/conll05.py
    @@ -160,7 +160,6 @@ def reader_creator(corpus_reader,
                     ctx_p2 = 'eos'
     
                 word_idx = [word_dict.get(w, UNK_IDX) for w in sentence]
    -            pred_idx = [predicate_dict.get(predicate)] * sen_len
     
                 ctx_n2_idx = [word_dict.get(ctx_n2, UNK_IDX)] * sen_len
                 ctx_n1_idx = [word_dict.get(ctx_n1, UNK_IDX)] * sen_len
    @@ -168,10 +167,11 @@ def reader_creator(corpus_reader,
                 ctx_p1_idx = [word_dict.get(ctx_p1, UNK_IDX)] * sen_len
                 ctx_p2_idx = [word_dict.get(ctx_p2, UNK_IDX)] * sen_len
     
    +            pred_idx = [predicate_dict.get(predicate)] * sen_len
                 label_idx = [label_dict.get(w) for w in labels]
     
    -            yield word_idx, pred_idx, ctx_n2_idx, ctx_n1_idx, \
    -              ctx_0_idx, ctx_p1_idx, ctx_p2_idx, mark, label_idx
    +            yield word_idx, ctx_n2_idx, ctx_n1_idx, \
    +              ctx_0_idx, ctx_p1_idx, ctx_p2_idx, pred_idx, mark, label_idx
     
         return reader()
     
    
    From 11fdb4f041250d906a115c00d4e37b76a4bf8905 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Thu, 2 Mar 2017 16:11:30 +0800
    Subject: [PATCH 086/186] Check system's protobuf for internal users
    
    ---
     cmake/external/protobuf.cmake | 82 ++++++++++++++++++-----------------
     cmake/external/python.cmake   |  4 --
     2 files changed, 43 insertions(+), 43 deletions(-)
    
    diff --git a/cmake/external/protobuf.cmake b/cmake/external/protobuf.cmake
    index 84f459033f..26da7e8e38 100644
    --- a/cmake/external/protobuf.cmake
    +++ b/cmake/external/protobuf.cmake
    @@ -14,46 +14,50 @@
     
     INCLUDE(ExternalProject)
     
    -SET(PROTOBUF_SOURCES_DIR ${THIRD_PARTY_PATH}/protobuf)
    -SET(PROTOBUF_INSTALL_DIR ${THIRD_PARTY_PATH}/install/protobuf)
    -SET(PROTOBUF_INCLUDE_DIR "${PROTOBUF_INSTALL_DIR}/include" CACHE PATH "protobuf include directory." FORCE)
    +FIND_PACKAGE(Protobuf)
     
    -INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
    +IF(NOT PROTOBUF_FOUND)
    +    SET(PROTOBUF_SOURCES_DIR ${THIRD_PARTY_PATH}/protobuf)
    +    SET(PROTOBUF_INSTALL_DIR ${THIRD_PARTY_PATH}/install/protobuf)
    +    SET(PROTOBUF_INCLUDE_DIR "${PROTOBUF_INSTALL_DIR}/include" CACHE PATH "protobuf include directory." FORCE)
    +
    +    IF(WIN32)
    +        SET(PROTOBUF_LITE_LIBRARY
    +            "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf-lite.lib" CACHE FILEPATH "protobuf lite library." FORCE)
    +        SET(PROTOBUF_LIBRARY
    +            "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf.lib" CACHE FILEPATH "protobuf library." FORCE)
    +        SET(PROTOBUF_PROTOC_LIBRARY
    +            "${PROTOBUF_INSTALL_DIR}/lib/libprotoc.lib" CACHE FILEPATH "protoc library." FORCE)
    +        SET(PROTOBUF_PROTOC_EXECUTABLE "${PROTOBUF_INSTALL_DIR}/bin/protoc.exe" CACHE FILEPATH "protobuf executable." FORCE)
    +    ELSE(WIN32)
    +        SET(PROTOBUF_LITE_LIBRARY
    +            "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf-lite.a" CACHE FILEPATH "protobuf lite library." FORCE)
    +        SET(PROTOBUF_LIBRARY
    +            "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf.a" CACHE FILEPATH "protobuf library." FORCE)
    +        SET(PROTOBUF_PROTOC_LIBRARY
    +            "${PROTOBUF_INSTALL_DIR}/lib/libprotoc.a" CACHE FILEPATH "protoc library." FORCE)
    +        SET(PROTOBUF_PROTOC_EXECUTABLE "${PROTOBUF_INSTALL_DIR}/bin/protoc" CACHE FILEPATH "protobuf executable." FORCE)
    +    ENDIF(WIN32)
     
    -IF(WIN32)
    -  SET(PROTOBUF_LITE_LIBRARY
    -        "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf-lite.lib" CACHE FILEPATH "protobuf lite library." FORCE)
    -  SET(PROTOBUF_LIBRARY
    -        "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf.lib" CACHE FILEPATH "protobuf library." FORCE)
    -  SET(PROTOBUF_PROTOC_LIBRARY
    -        "${PROTOBUF_INSTALL_DIR}/lib/libprotoc.lib" CACHE FILEPATH "protoc library." FORCE)
    -  SET(PROTOBUF_PROTOC_EXECUTABLE "${PROTOBUF_INSTALL_DIR}/bin/protoc.exe" CACHE FILEPATH "protobuf executable." FORCE)
    -ELSE(WIN32)
    -  SET(PROTOBUF_LITE_LIBRARY
    -        "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf-lite.a" CACHE FILEPATH "protobuf lite library." FORCE)
    -  SET(PROTOBUF_LIBRARY
    -        "${PROTOBUF_INSTALL_DIR}/lib/libprotobuf.a" CACHE FILEPATH "protobuf library." FORCE)
    -  SET(PROTOBUF_PROTOC_LIBRARY
    -        "${PROTOBUF_INSTALL_DIR}/lib/libprotoc.a" CACHE FILEPATH "protoc library." FORCE)
    -  SET(PROTOBUF_PROTOC_EXECUTABLE "${PROTOBUF_INSTALL_DIR}/bin/protoc" CACHE FILEPATH "protobuf executable." FORCE)
    -ENDIF(WIN32)
    +    ExternalProject_Add(
    +        protobuf
    +        ${EXTERNAL_PROJECT_LOG_ARGS}
    +        PREFIX          ${PROTOBUF_SOURCES_DIR}
    +        UPDATE_COMMAND  ""
    +        DEPENDS         zlib
    +        GIT_REPOSITORY  "https://github.com/google/protobuf.git"
    +        GIT_TAG         "9f75c5aa851cd877fb0d93ccc31b8567a6706546"
    +        CONFIGURE_COMMAND
    +        ${CMAKE_COMMAND} ${PROTOBUF_SOURCES_DIR}/src/protobuf/cmake
    +        -Dprotobuf_BUILD_TESTS=OFF
    +        -DZLIB_ROOT:FILEPATH=${ZLIB_ROOT}
    +        -DCMAKE_POSITION_INDEPENDENT_CODE=ON
    +        -DCMAKE_BUILD_TYPE=Release
    +        -DCMAKE_INSTALL_PREFIX=${PROTOBUF_INSTALL_DIR}
    +        -DCMAKE_INSTALL_LIBDIR=lib
    +    )
     
    -ExternalProject_Add(
    -  protobuf
    -  ${EXTERNAL_PROJECT_LOG_ARGS}
    -  PREFIX          ${PROTOBUF_SOURCES_DIR}
    -  UPDATE_COMMAND  ""
    -  DEPENDS         zlib
    -  GIT_REPOSITORY  "https://github.com/google/protobuf.git"
    -  GIT_TAG         "9f75c5aa851cd877fb0d93ccc31b8567a6706546"
    -  CONFIGURE_COMMAND
    -    ${CMAKE_COMMAND} ${PROTOBUF_SOURCES_DIR}/src/protobuf/cmake
    -    -Dprotobuf_BUILD_TESTS=OFF
    -    -DZLIB_ROOT:FILEPATH=${ZLIB_ROOT}
    -    -DCMAKE_POSITION_INDEPENDENT_CODE=ON
    -    -DCMAKE_BUILD_TYPE=Release
    -    -DCMAKE_INSTALL_PREFIX=${PROTOBUF_INSTALL_DIR}
    -    -DCMAKE_INSTALL_LIBDIR=lib
    -)
    +    LIST(APPEND external_project_dependencies protobuf)
    +ENDIF(NOT PROTOBUF_FOUND)
     
    -LIST(APPEND external_project_dependencies protobuf)
    +INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})
    diff --git a/cmake/external/python.cmake b/cmake/external/python.cmake
    index 6372a9a768..0accf1a8dd 100644
    --- a/cmake/external/python.cmake
    +++ b/cmake/external/python.cmake
    @@ -221,7 +221,3 @@ ENDIF(PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND)
     
     INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIR})
     INCLUDE_DIRECTORIES(${PYTHON_NUMPY_INCLUDE_DIR})
    -
    -MESSAGE("[Paddle] Python Executable: ${PYTHON_EXECUTABLE}")
    -MESSAGE("[Paddle] Python Include: ${PYTHON_INCLUDE_DIRS}")
    -MESSAGE("[Paddle] Python Libraries: ${PYTHON_LIBRARIES}")
    
    From 69ac20c2845fa0bb988407a4cd3af7af1aaa7d0a Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Thu, 2 Mar 2017 16:53:31 +0800
    Subject: [PATCH 087/186] Fix event_handler trainer
    
    ---
     demo/image_classification/api_v2_train.py | 35 +++++++++++------------
     1 file changed, 17 insertions(+), 18 deletions(-)
    
    diff --git a/demo/image_classification/api_v2_train.py b/demo/image_classification/api_v2_train.py
    index 94bf0b5db4..585f61c6fa 100644
    --- a/demo/image_classification/api_v2_train.py
    +++ b/demo/image_classification/api_v2_train.py
    @@ -18,24 +18,6 @@ from api_v2_vgg import vgg_bn_drop
     from api_v2_resnet import resnet_cifar10
     
     
    -# End batch and end pass event handler
    -def event_handler(event):
    -    if isinstance(event, paddle.event.EndIteration):
    -        if event.batch_id % 100 == 0:
    -            print "\nPass %d, Batch %d, Cost %f, %s" % (
    -                event.pass_id, event.batch_id, event.cost, event.metrics)
    -        else:
    -            sys.stdout.write('.')
    -            sys.stdout.flush()
    -    if isinstance(event, paddle.event.EndPass):
    -        result = trainer.test(
    -            reader=paddle.reader.batched(
    -                paddle.dataset.cifar.test10(), batch_size=128),
    -            reader_dict={'image': 0,
    -                         'label': 1})
    -        print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
    -
    -
     def main():
         datadim = 3 * 32 * 32
         classdim = 10
    @@ -73,6 +55,23 @@ def main():
             learning_rate_schedule='discexp',
             batch_size=128)
     
    +    # End batch and end pass event handler
    +    def event_handler(event):
    +        if isinstance(event, paddle.event.EndIteration):
    +            if event.batch_id % 100 == 0:
    +                print "\nPass %d, Batch %d, Cost %f, %s" % (
    +                    event.pass_id, event.batch_id, event.cost, event.metrics)
    +            else:
    +                sys.stdout.write('.')
    +                sys.stdout.flush()
    +        if isinstance(event, paddle.event.EndPass):
    +            result = trainer.test(
    +                reader=paddle.reader.batched(
    +                    paddle.dataset.cifar.test10(), batch_size=128),
    +                reader_dict={'image': 0,
    +                             'label': 1})
    +            print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
    +
         # Create trainer
         trainer = paddle.trainer.SGD(cost=cost,
                                      parameters=parameters,
    
    From 66b6ae163c468f46a301d738429c359190904861 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 17:27:29 +0800
    Subject: [PATCH 088/186] Complete api_train_v2
    
    ---
     demo/recommendation/api_train_v2.py   | 39 +++++++++++++++++++++------
     python/paddle/v2/dataset/movielens.py | 27 ++++++++++++++++++-
     2 files changed, 57 insertions(+), 9 deletions(-)
    
    diff --git a/demo/recommendation/api_train_v2.py b/demo/recommendation/api_train_v2.py
    index 93e2a26f74..a7cf137a79 100644
    --- a/demo/recommendation/api_train_v2.py
    +++ b/demo/recommendation/api_train_v2.py
    @@ -1,8 +1,10 @@
     import paddle.v2 as paddle
    +import cPickle
    +import copy
     
     
     def main():
    -    paddle.init(use_gpu=False, trainer_count=3)
    +    paddle.init(use_gpu=False)
         movie_title_dict = paddle.dataset.movielens.get_movie_title_dict()
         uid = paddle.layer.data(
             name='user_id',
    @@ -86,19 +88,40 @@ def main():
                 if event.batch_id % 100 == 0:
                     print "Pass %d Batch %d Cost %.2f" % (
                         event.pass_id, event.batch_id, event.cost)
    -        elif isinstance(event, paddle.event.EndPass):
    -            result = trainer.test(reader=paddle.reader.batched(
    -                paddle.dataset.movielens.test(), batch_size=256))
    -            print result.cost
     
         trainer.train(
             reader=paddle.reader.batched(
    -            paddle.reader.shuffle(
    -                paddle.dataset.movielens.train(), buf_size=8192),
    +            paddle.reader.firstn(
    +                paddle.reader.shuffle(
    +                    paddle.dataset.movielens.train(), buf_size=8192),
    +                n=1000),
                 batch_size=256),
             event_handler=event_handler,
             reader_dict=reader_dict,
    -        num_passes=10)
    +        num_passes=1)
    +
    +    user_id = 234
    +    movie_id = 345
    +
    +    user = paddle.dataset.movielens.user_info()[user_id]
    +    movie = paddle.dataset.movielens.movie_info()[movie_id]
    +
    +    feature = user.value() + movie.value()
    +
    +    def reader():
    +        yield feature
    +
    +    infer_dict = copy.copy(reader_dict)
    +    del infer_dict['score']
    +    print infer_dict
    +
    +    prediction = paddle.infer(
    +        output=inference,
    +        parameters=parameters,
    +        reader=paddle.reader.batched(
    +            reader, batch_size=32),
    +        reader_dict=infer_dict)
    +    print prediction
     
     
     if __name__ == '__main__':
    diff --git a/python/paddle/v2/dataset/movielens.py b/python/paddle/v2/dataset/movielens.py
    index 058400502f..5534af1145 100644
    --- a/python/paddle/v2/dataset/movielens.py
    +++ b/python/paddle/v2/dataset/movielens.py
    @@ -6,7 +6,7 @@ import functools
     
     __all__ = [
         'train', 'test', 'get_movie_title_dict', 'max_movie_id', 'max_user_id',
    -    'age_table', 'movie_categories', 'max_job_id'
    +    'age_table', 'movie_categories', 'max_job_id', 'user_info', 'movie_info'
     ]
     
     age_table = [1, 18, 25, 35, 45, 50, 56]
    @@ -24,6 +24,13 @@ class MovieInfo(object):
                 [MOVIE_TITLE_DICT[w.lower()] for w in self.title.split()]
             ]
     
    +    def __str__(self):
    +        return "" % (
    +            self.index, self.title, self.categories)
    +
    +    def __repr__(self):
    +        return self.__str__()
    +
     
     class UserInfo(object):
         def __init__(self, index, gender, age, job_id):
    @@ -35,6 +42,14 @@ class UserInfo(object):
         def value(self):
             return [self.index, 0 if self.is_male else 1, self.age, self.job_id]
     
    +    def __str__(self):
    +        return "" % (
    +            self.index, "M"
    +            if self.is_male else "F", age_table[self.age], self.job_id)
    +
    +    def __repr__(self):
    +        return str(self)
    +
     
     MOVIE_INFO = None
     MOVIE_TITLE_DICT = None
    @@ -152,6 +167,16 @@ def movie_categories():
         return CATEGORIES_DICT
     
     
    +def user_info():
    +    __initialize_meta_info__()
    +    return USER_INFO
    +
    +
    +def movie_info():
    +    __initialize_meta_info__()
    +    return MOVIE_INFO
    +
    +
     def unittest():
         for train_count, _ in enumerate(train()()):
             pass
    
    From edce6c8b6ab23c9c7fea1dee75d46fb2bb0f3e31 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Thu, 2 Mar 2017 17:51:53 +0800
    Subject: [PATCH 089/186] restore embedding_layer name to embedding
    
    ---
     python/paddle/trainer_config_helpers/layers.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/python/paddle/trainer_config_helpers/layers.py b/python/paddle/trainer_config_helpers/layers.py
    index 2b95c2ed0f..b68460b6a3 100755
    --- a/python/paddle/trainer_config_helpers/layers.py
    +++ b/python/paddle/trainer_config_helpers/layers.py
    @@ -822,7 +822,7 @@ def data_layer(name, size, height=None, width=None, layer_attr=None):
         return LayerOutput(name, LayerType.DATA, size=size)
     
     
    -@wrap_name_default("embedding_layer")
    +@wrap_name_default("embedding")
     @wrap_param_attr_default()
     @layer_support(ERROR_CLIPPING)
     def embedding_layer(input, size, name=None, param_attr=None, layer_attr=None):
    
    From 465878a9d2f84910dc71ea8fa9dd53f34c10f52d Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Thu, 2 Mar 2017 18:50:12 +0800
    Subject: [PATCH 090/186] fit_a_line v2 api
    
    ---
     demo/introduction/api_train_v2.py       | 59 +++++++++++++++++
     python/paddle/v2/dataset/__init__.py    |  3 +-
     python/paddle/v2/dataset/uci_housing.py | 86 +++++++++++++++++++++++++
     3 files changed, 147 insertions(+), 1 deletion(-)
     create mode 100644 demo/introduction/api_train_v2.py
     create mode 100644 python/paddle/v2/dataset/uci_housing.py
    
    diff --git a/demo/introduction/api_train_v2.py b/demo/introduction/api_train_v2.py
    new file mode 100644
    index 0000000000..49496c7f08
    --- /dev/null
    +++ b/demo/introduction/api_train_v2.py
    @@ -0,0 +1,59 @@
    +import paddle.v2 as paddle
    +import paddle.v2.dataset.uci_housing as uci_housing
    +
    +
    +def main():
    +    # init
    +    paddle.init(use_gpu=False, trainer_count=1)
    +
    +    # network config
    +    x = paddle.layer.data(name='x', type=paddle.data_type.dense_vector(13))
    +    y_predict = paddle.layer.fc(input=x,
    +                                param_attr=paddle.attr.Param(name='w'),
    +                                size=1,
    +                                act=paddle.activation.Linear(),
    +                                bias_attr=paddle.attr.Param(name='b'))
    +    y = paddle.layer.data(name='y', type=paddle.data_type.dense_vector(1))
    +    cost = paddle.layer.regression_cost(input=y_predict, label=y)
    +
    +    # create parameters
    +    parameters = paddle.parameters.create(cost)
    +
    +    # create optimizer
    +    optimizer = paddle.optimizer.Momentum(momentum=0)
    +
    +    trainer = paddle.trainer.SGD(cost=cost,
    +                                 parameters=parameters,
    +                                 update_equation=optimizer)
    +
    +    # event_handler to print training and testing info
    +    def event_handler(event):
    +        if isinstance(event, paddle.event.EndIteration):
    +            if event.batch_id % 100 == 0:
    +                print "Pass %d, Batch %d, Cost %f, %s" % (
    +                    event.pass_id, event.batch_id, event.cost, event.metrics)
    +
    +        if isinstance(event, paddle.event.EndPass):
    +            result = trainer.test(
    +                reader=paddle.reader.batched(
    +                    uci_housing.test(), batch_size=2),
    +                reader_dict={'x': 0,
    +                             'y': 1})
    +            if event.pass_id % 10 == 0:
    +                print "Test %d, Cost %f, %s" % (event.pass_id, event.cost,
    +                                                result.metrics)
    +
    +    # training
    +    trainer.train(
    +        reader=paddle.reader.batched(
    +            paddle.reader.shuffle(
    +                uci_housing.train(), buf_size=500),
    +            batch_size=2),
    +        reader_dict={'x': 0,
    +                     'y': 1},
    +        event_handler=event_handler,
    +        num_passes=30)
    +
    +
    +if __name__ == '__main__':
    +    main()
    diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py
    index 9647e98503..0058e1df11 100644
    --- a/python/paddle/v2/dataset/__init__.py
    +++ b/python/paddle/v2/dataset/__init__.py
    @@ -1,3 +1,4 @@
     import mnist
    +import uci_housing
     
    -__all__ = ['mnist']
    +__all__ = ['mnist', 'uci_housing']
    diff --git a/python/paddle/v2/dataset/uci_housing.py b/python/paddle/v2/dataset/uci_housing.py
    new file mode 100644
    index 0000000000..b5a0537af6
    --- /dev/null
    +++ b/python/paddle/v2/dataset/uci_housing.py
    @@ -0,0 +1,86 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +import numpy as np
    +import os
    +from common import download
    +
    +__all__ = ['train', 'test']
    +
    +URL = 'https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data'
    +MD5 = 'd4accdce7a25600298819f8e28e8d593'
    +feature_names = [
    +    'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX',
    +    'PTRATIO', 'B', 'LSTAT'
    +]
    +
    +UCI_TRAIN_DATA = None
    +UCI_TEST_DATA = None
    +
    +
    +def feature_range(maximums, minimums):
    +    import matplotlib
    +    matplotlib.use('Agg')
    +    import matplotlib.pyplot as plt
    +    fig, ax = plt.subplots()
    +    feature_num = len(maximums)
    +    ax.bar(range(feature_num), maximums - minimums, color='r', align='center')
    +    ax.set_title('feature scale')
    +    plt.xticks(range(feature_num), feature_names)
    +    plt.xlim([-1, feature_num])
    +    fig.set_figheight(6)
    +    fig.set_figwidth(10)
    +    if not os.path.exists('./image'):
    +        os.makedirs('./image')
    +    fig.savefig('image/ranges.png', dpi=48)
    +    plt.close(fig)
    +
    +
    +def load_data(filename, feature_num=14, ratio=0.8):
    +    global UCI_TRAIN_DATA, UCI_TEST_DATA
    +    if UCI_TRAIN_DATA is not None and UCI_TEST_DATA is not None:
    +        return
    +
    +    data = np.fromfile(filename, sep=' ')
    +    data = data.reshape(data.shape[0] / feature_num, feature_num)
    +    maximums, minimums, avgs = data.max(axis=0), data.min(axis=0), data.sum(
    +        axis=0) / data.shape[0]
    +    feature_range(maximums[:-1], minimums[:-1])
    +    for i in xrange(feature_num - 1):
    +        data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i])
    +    offset = int(data.shape[0] * ratio)
    +    UCI_TRAIN_DATA = data[:offset]
    +    UCI_TEST_DATA = data[offset:]
    +
    +
    +def train():
    +    global UCI_TRAIN_DATA
    +    load_data(download(URL, 'uci_housing', MD5))
    +
    +    def reader():
    +        for d in UCI_TRAIN_DATA:
    +            yield d[:-1], d[-1:]
    +
    +    return reader
    +
    +
    +def test():
    +    global UCI_TEST_DATA
    +    load_data(download(URL, 'uci_housing', MD5))
    +
    +    def reader():
    +        for d in UCI_TEST_DATA:
    +            yield d[:-1], d[-1:]
    +
    +    return reader
    
    From a05707ff324e59b032f8ac0c43d62f339ef78db5 Mon Sep 17 00:00:00 2001
    From: Luo Tao 
    Date: Thu, 2 Mar 2017 20:45:37 +0800
    Subject: [PATCH 091/186] add test cost
    
    ---
     demo/mnist/api_train_v2.py  | 25 +++++++++++++++++++------
     python/paddle/v2/event.py   |  3 ++-
     python/paddle/v2/trainer.py | 10 +++++++++-
     3 files changed, 30 insertions(+), 8 deletions(-)
    
    diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py
    index 6439d07ac6..341a7165da 100644
    --- a/demo/mnist/api_train_v2.py
    +++ b/demo/mnist/api_train_v2.py
    @@ -63,6 +63,8 @@ def main():
         label = paddle.layer.data(
             name='label', type=paddle.data_type.integer_value(10))
     
    +    # Here we can build the prediction network in different ways. Please
    +    # choose one by uncomment corresponding line.
         predict = softmax_regression(images)
         #predict = multilayer_perceptron(images)
         #predict = convolutional_neural_network(images)
    @@ -80,14 +82,20 @@ def main():
                                      parameters=parameters,
                                      update_equation=optimizer)
     
    +    list = []
    +
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
                 if event.batch_id % 100 == 0:
    -                result = trainer.test(reader=paddle.reader.batched(
    -                    paddle.dataset.mnist.test(), batch_size=128))
    -                print "Pass %d, Batch %d, Cost %f, %s, Testing metrics %s" % (
    -                    event.pass_id, event.batch_id, event.cost, event.metrics,
    -                    result.metrics)
    +                print "Pass %d, Batch %d, Cost %f, %s" % (
    +                    event.pass_id, event.batch_id, event.cost, event.metrics)
    +        if isinstance(event, paddle.event.EndPass):
    +            result = trainer.test(reader=paddle.reader.batched(
    +                paddle.dataset.mnist.test(), batch_size=128))
    +            print "Test with Pass %d, Cost %f, %s\n" % (
    +                event.pass_id, event.cost, result.metrics)
    +            list.append((event.pass_id, event.cost,
    +                         result.metrics['classification_error_evaluator']))
     
         trainer.train(
             reader=paddle.reader.batched(
    @@ -97,10 +105,15 @@ def main():
             event_handler=event_handler,
             num_passes=100)
     
    +    # find the best pass
    +    best = sorted(list, key=lambda list: float(list[1]))[0]
    +    print 'Best pass is %s, testing Avgcost is %s' % (best[0], best[1])
    +    print 'The classification accuracy is %.2f%%' % (100 - float(best[2]) * 100)
    +
         # output is a softmax layer. It returns probabilities.
         # Shape should be (100, 10)
         probs = paddle.infer(
    -        output=inference,
    +        output=predict,
             parameters=parameters,
             reader=paddle.reader.batched(
                 paddle.reader.firstn(
    diff --git a/python/paddle/v2/event.py b/python/paddle/v2/event.py
    index a78bcf076c..6a7bcb8187 100644
    --- a/python/paddle/v2/event.py
    +++ b/python/paddle/v2/event.py
    @@ -52,8 +52,9 @@ class EndPass(WithMetric):
         Event On One Pass Training Complete.
         """
     
    -    def __init__(self, pass_id, evaluator):
    +    def __init__(self, pass_id, cost, evaluator):
             self.pass_id = pass_id
    +        self.cost = cost
             WithMetric.__init__(self, evaluator)
     
     
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index e743a49523..a4ef0df597 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -107,6 +107,8 @@ class SGD(ITrainer):
                 event_handler(v2_event.BeginPass(pass_id))
                 pass_evaluator.start()
                 updater.startPass()
    +            total_cost_sum = 0
    +            total_batch = 0
                 for batch_id, data_batch in enumerate(reader()):
                     pass_type = updater.startBatch(len(data_batch))
                     self.__gradient_machine__.forwardBackward(
    @@ -127,6 +129,8 @@ class SGD(ITrainer):
                     cost_vec = out_args.getSlotValue(0)
                     cost_vec = cost_vec.copyToNumpyMat()
                     cost = cost_vec.sum() / len(data_batch)
    +                total_cost_sum += cost_vec.sum()
    +                total_batch += len(data_batch)
                     updater.finishBatch(cost)
                     batch_evaluator.finish()
                     event_handler(
    @@ -138,7 +142,11 @@ class SGD(ITrainer):
     
                 updater.finishPass()
                 pass_evaluator.finish()
    -            event_handler(v2_event.EndPass(pass_id, evaluator=pass_evaluator))
    +            event_handler(
    +                v2_event.EndPass(
    +                    pass_id,
    +                    cost=total_cost_sum / total_batch,
    +                    evaluator=pass_evaluator))
             self.__gradient_machine__.finish()
     
         def default_reader_dict(self):
    
    From 5ce504b19b96d94dec5ceab2e2443a091b690cf0 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Thu, 2 Mar 2017 20:50:23 +0800
    Subject: [PATCH 092/186] Fix duplicated forward/backward in trainer.
    
    ---
     python/paddle/v2/trainer.py | 3 ---
     1 file changed, 3 deletions(-)
    
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index 5003f55f3e..5cff75e39d 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -108,9 +108,6 @@ class SGD(ITrainer):
                 pass_evaluator.start()
                 updater.startPass()
                 for batch_id, data_batch in enumerate(reader()):
    -                pass_type = updater.startBatch(len(data_batch))
    -                self.__gradient_machine__.forwardBackward(
    -                    feeder(data_batch), out_args, pass_type)
                     batch_evaluator.start()
                     event_handler(
                         v2_event.BeginIteration(
    
    From 172ac8af7abb0b54f47abb7eb067fbd538ab5b57 Mon Sep 17 00:00:00 2001
    From: dangqingqing 
    Date: Thu, 2 Mar 2017 20:58:05 +0800
    Subject: [PATCH 093/186] update
    
    ---
     demo/semantic_role_labeling/api_train_v2.py | 5 -----
     1 file changed, 5 deletions(-)
    
    diff --git a/demo/semantic_role_labeling/api_train_v2.py b/demo/semantic_role_labeling/api_train_v2.py
    index 8ce6faaa1b..c582724185 100644
    --- a/demo/semantic_role_labeling/api_train_v2.py
    +++ b/demo/semantic_role_labeling/api_train_v2.py
    @@ -4,17 +4,12 @@ import numpy as np
     import paddle.v2 as paddle
     import paddle.v2.dataset.conll05 as conll05
     
    -UNK_IDX = 0
    -
     
     def db_lstm():
         word_dict, verb_dict, label_dict = conll05.get_dict()
         word_dict_len = len(word_dict)
         label_dict_len = len(label_dict)
         pred_len = len(verb_dict)
    -    print 'word_dict_len,', word_dict_len
    -    print 'label_dict_len,', label_dict_len
    -    print 'pred_len,', pred_len
     
         mark_dict_len = 2
         word_dim = 32
    
    From 495861f55923dcd9092e74e401e50aa8deeb0fd5 Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Thu, 2 Mar 2017 21:30:47 +0800
    Subject: [PATCH 094/186] add v2 demo to seqtoseq, fix __dfs_travel__ for v2
     layers
    
    ---
     demo/seqToseq/api_train_v2.py    | 106 +++++++++++++++++++++++++++++++
     demo/seqToseq/seqToseq_net_v2.py |  90 ++++++++++++++++++++++++++
     python/paddle/v2/layer.py        |   2 +-
     python/paddle/v2/topology.py     |   6 +-
     4 files changed, 202 insertions(+), 2 deletions(-)
     create mode 100644 demo/seqToseq/api_train_v2.py
     create mode 100644 demo/seqToseq/seqToseq_net_v2.py
    
    diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py
    new file mode 100644
    index 0000000000..efbab8d7b9
    --- /dev/null
    +++ b/demo/seqToseq/api_train_v2.py
    @@ -0,0 +1,106 @@
    +import os
    +
    +import paddle.v2 as paddle
    +
    +from seqToseq_net_v2 import seqToseq_net_v2
    +
    +### Data Definiation
    +data_dir = "./data/pre-wmt14"
    +src_lang_dict = os.path.join(data_dir, 'src.dict')
    +trg_lang_dict = os.path.join(data_dir, 'trg.dict')
    +
    +source_dict_dim = len(open(src_lang_dict, "r").readlines())
    +target_dict_dim = len(open(trg_lang_dict, "r").readlines())
    +
    +
    +def read_to_dict(dict_path):
    +    with open(dict_path, "r") as fin:
    +        out_dict = {
    +            line.strip(): line_count
    +            for line_count, line in enumerate(fin)
    +        }
    +    return out_dict
    +
    +
    +src_dict = read_to_dict(src_lang_dict)
    +trg_dict = read_to_dict(trg_lang_dict)
    +
    +train_list = os.path.join(data_dir, 'train.list')
    +test_list = os.path.join(data_dir, 'test.list')
    +
    +UNK_IDX = 2
    +START = ""
    +END = ""
    +
    +
    +def _get_ids(s, dictionary):
    +    words = s.strip().split()
    +    return [dictionary[START]] + \
    +           [dictionary.get(w, UNK_IDX) for w in words] + \
    +           [dictionary[END]]
    +
    +
    +def train_reader(file_name):
    +    def reader():
    +        with open(file_name, 'r') as f:
    +            for line_count, line in enumerate(f):
    +                line_split = line.strip().split('\t')
    +                if len(line_split) != 2:
    +                    continue
    +                src_seq = line_split[0]  # one source sequence
    +                src_ids = _get_ids(src_seq, src_dict)
    +
    +                trg_seq = line_split[1]  # one target sequence
    +                trg_words = trg_seq.split()
    +                trg_ids = [trg_dict.get(w, UNK_IDX) for w in trg_words]
    +
    +                # remove sequence whose length > 80 in training mode
    +                if len(src_ids) > 80 or len(trg_ids) > 80:
    +                    continue
    +                trg_ids_next = trg_ids + [trg_dict[END]]
    +                trg_ids = [trg_dict[START]] + trg_ids
    +
    +                yield src_ids, trg_ids, trg_ids_next
    +
    +    return reader
    +
    +
    +def main():
    +    paddle.init(use_gpu=False, trainer_count=1)
    +
    +    # reader = train_reader("data/pre-wmt14/train/train")
    +    # define network topology
    +    cost = seqToseq_net_v2(source_dict_dim, target_dict_dim)
    +    parameters = paddle.parameters.create(cost)
    +    optimizer = paddle.optimizer.Adam(batch_size=50, learning_rate=5e-4)
    +
    +    def event_handler(event):
    +        if isinstance(event, paddle.event.EndIteration):
    +            if event.batch_id % 100 == 0:
    +                print "Pass %d, Batch %d, Cost %f, %s" % (
    +                    event.pass_id, event.batch_id, event.cost, event.metrics)
    +
    +    trainer = paddle.trainer.SGD(cost=cost,
    +                                 parameters=parameters,
    +                                 update_equation=optimizer)
    +
    +    reader_dict = {
    +        'source_language_word': 0,
    +        'target_language_word': 1,
    +        'target_language_next_word': 2
    +    }
    +
    +    trn_reader = paddle.reader.batched(
    +        paddle.reader.shuffle(
    +            train_reader("data/pre-wmt14/train/train"), buf_size=8192),
    +        batch_size=10)
    +
    +    trainer.train(
    +        reader=trn_reader,
    +        event_handler=event_handler,
    +        num_passes=10000,
    +        reader_dict=reader_dict)
    +
    +
    +if __name__ == '__main__':
    +    main()
    diff --git a/demo/seqToseq/seqToseq_net_v2.py b/demo/seqToseq/seqToseq_net_v2.py
    new file mode 100644
    index 0000000000..7e057e2440
    --- /dev/null
    +++ b/demo/seqToseq/seqToseq_net_v2.py
    @@ -0,0 +1,90 @@
    +import paddle.v2.activation as activation
    +import paddle.v2.attr as attr
    +import paddle.v2.data_type as data_type
    +import paddle.v2.layer as layer
    +import paddle.v2.networks as networks
    +
    +
    +def seqToseq_net_v2(source_dict_dim, target_dict_dim):
    +    ### Network Architecture
    +    word_vector_dim = 512  # dimension of word vector
    +    decoder_size = 512  # dimension of hidden unit in GRU Decoder network
    +    encoder_size = 512  # dimension of hidden unit in GRU Encoder network
    +
    +    #### Encoder
    +    src_word_id = layer.data(
    +        name='source_language_word',
    +        type=data_type.dense_vector(source_dict_dim))
    +    src_embedding = layer.embedding(
    +        input=src_word_id,
    +        size=word_vector_dim,
    +        param_attr=attr.ParamAttr(name='_source_language_embedding'))
    +    src_forward = networks.simple_gru(input=src_embedding, size=encoder_size)
    +    src_backward = networks.simple_gru(
    +        input=src_embedding, size=encoder_size, reverse=True)
    +    encoded_vector = layer.concat(input=[src_forward, src_backward])
    +
    +    #### Decoder
    +    with layer.mixed(size=decoder_size) as encoded_proj:
    +        encoded_proj += layer.full_matrix_projection(input=encoded_vector)
    +
    +    backward_first = layer.first_seq(input=src_backward)
    +
    +    with layer.mixed(size=decoder_size, act=activation.Tanh()) as decoder_boot:
    +        decoder_boot += layer.full_matrix_projection(input=backward_first)
    +
    +    def gru_decoder_with_attention(enc_vec, enc_proj, current_word):
    +
    +        decoder_mem = layer.memory(
    +            name='gru_decoder', size=decoder_size, boot_layer=decoder_boot)
    +
    +        context = networks.simple_attention(
    +            encoded_sequence=enc_vec,
    +            encoded_proj=enc_proj,
    +            decoder_state=decoder_mem)
    +
    +        with layer.mixed(size=decoder_size * 3) as decoder_inputs:
    +            decoder_inputs += layer.full_matrix_projection(input=context)
    +            decoder_inputs += layer.full_matrix_projection(input=current_word)
    +
    +        gru_step = layer.gru_step(
    +            name='gru_decoder',
    +            input=decoder_inputs,
    +            output_mem=decoder_mem,
    +            size=decoder_size)
    +
    +        with layer.mixed(
    +                size=target_dict_dim, bias_attr=True,
    +                act=activation.Softmax()) as out:
    +            out += layer.full_matrix_projection(input=gru_step)
    +        return out
    +
    +    decoder_group_name = "decoder_group"
    +    group_input1 = layer.StaticInputV2(input=encoded_vector, is_seq=True)
    +    group_input2 = layer.StaticInputV2(input=encoded_proj, is_seq=True)
    +    group_inputs = [group_input1, group_input2]
    +
    +    trg_embedding = layer.embedding(
    +        input=layer.data(
    +            name='target_language_word',
    +            type=data_type.dense_vector(target_dict_dim)),
    +        size=word_vector_dim,
    +        param_attr=attr.ParamAttr(name='_target_language_embedding'))
    +    group_inputs.append(trg_embedding)
    +
    +    # For decoder equipped with attention mechanism, in training,
    +    # target embeding (the groudtruth) is the data input,
    +    # while encoded source sequence is accessed to as an unbounded memory.
    +    # Here, the StaticInput defines a read-only memory
    +    # for the recurrent_group.
    +    decoder = layer.recurrent_group(
    +        name=decoder_group_name,
    +        step=gru_decoder_with_attention,
    +        input=group_inputs)
    +
    +    lbl = layer.data(
    +        name='target_language_next_word',
    +        type=data_type.dense_vector(target_dict_dim))
    +    cost = layer.classification_cost(input=decoder, label=lbl)
    +
    +    return cost
    diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
    index 2f55611aaa..010773ddbd 100644
    --- a/python/paddle/v2/layer.py
    +++ b/python/paddle/v2/layer.py
    @@ -262,7 +262,7 @@ class StaticInputV2(object):
             self.input = input
             self.is_seq = is_seq
             self.size = size
    -        # TODO(qiaolongfei): add size
    +        # TODO(add size check)
             # assert input.size is not None or size is not None
     
     
    diff --git a/python/paddle/v2/topology.py b/python/paddle/v2/topology.py
    index 4c21125431..f0679c5675 100644
    --- a/python/paddle/v2/topology.py
    +++ b/python/paddle/v2/topology.py
    @@ -17,6 +17,7 @@ import collections
     from paddle.proto.ModelConfig_pb2 import ModelConfig
     
     import layer as v2_layer
    +from layer import WithExtraParent
     
     __all__ = ['Topology']
     
    @@ -40,7 +41,10 @@ def __bfs_travel__(callback, *layers):
             __break__ = callback(each_layer)
             if __break__:
                 return
    -        __bfs_travel__(callback, *each_layer.__parent_layers__.values())
    +        __layers__ = each_layer.__parent_layers__.values()
    +        if isinstance(each_layer, WithExtraParent):
    +            __layers__ = __layers__ + each_layer.extra_parent()
    +        __bfs_travel__(callback, *__layers__)
     
     
     class Topology(object):
    
    From 4a265b5200bb86ef81f08d9fce516330b2c2f41a Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Thu, 2 Mar 2017 21:42:11 +0800
    Subject: [PATCH 095/186] Use reader in dataset imdb.py
    
    ---
     demo/sentiment/train_v2.py       | 38 ++++++++------------------------
     python/paddle/v2/dataset/imdb.py |  5 +++++
     2 files changed, 14 insertions(+), 29 deletions(-)
    
    diff --git a/demo/sentiment/train_v2.py b/demo/sentiment/train_v2.py
    index 3d595fad30..0fa7494853 100644
    --- a/demo/sentiment/train_v2.py
    +++ b/demo/sentiment/train_v2.py
    @@ -2,10 +2,11 @@ import sys
     from os.path import join as join_path
     import paddle.trainer_config_helpers.attrs as attrs
     from paddle.trainer_config_helpers.poolings import MaxPooling
    -import paddle.v2 as paddle
     import paddle.v2.layer as layer
     import paddle.v2.activation as activation
     import paddle.v2.data_type as data_type
    +import paddle.v2.dataset.imdb as imdb
    +import paddle.v2 as paddle
     
     
     def sequence_conv_pool(input,
    @@ -189,36 +190,15 @@ def stacked_lstm_net(input_dim,
         return cost
     
     
    -def data_reader(data_file, dict_file):
    -    def reader():
    -        with open(dict_file, 'r') as fdict, open(data_file, 'r') as fdata:
    -            dictionary = dict()
    -            for i, line in enumerate(fdict):
    -                dictionary[line.split('\t')[0]] = i
    -
    -            for line_count, line in enumerate(fdata):
    -                label, comment = line.strip().split('\t\t')
    -                label = int(label)
    -                words = comment.split()
    -                word_slot = [dictionary[w] for w in words if w in dictionary]
    -                yield (word_slot, label)
    -
    -    return reader
    -
    -
     if __name__ == '__main__':
    -    # data file
    -    train_file = "./data/pre-imdb/train_part_000"
    -    test_file = "./data/pre-imdb/test_part_000"
    -    dict_file = "./data/pre-imdb/dict.txt"
    -    labels = "./data/pre-imdb/labels.list"
    -
         # init
         paddle.init(use_gpu=True, trainer_count=4)
     
         # network config
    -    dict_dim = len(open(dict_file).readlines())
    -    class_dim = len(open(labels).readlines())
    +    print 'load dictionary...'
    +    word_dict = imdb.word_dict()
    +    dict_dim = len(word_dict)
    +    class_dim = 2
     
         # Please choose the way to build the network
         # by uncommenting the corresponding line.
    @@ -246,7 +226,7 @@ if __name__ == '__main__':
             if isinstance(event, paddle.event.EndPass):
                 result = trainer.test(
                     reader=paddle.reader.batched(
    -                    data_reader(test_file, dict_file), batch_size=128),
    +                    lambda: imdb.test(word_dict), batch_size=128),
                     reader_dict={'word': 0,
                                  'label': 1})
                 print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
    @@ -259,8 +239,8 @@ if __name__ == '__main__':
         trainer.train(
             reader=paddle.reader.batched(
                 paddle.reader.shuffle(
    -                data_reader(train_file, dict_file), buf_size=4096),
    -            batch_size=128),
    +                lambda: imdb.train(word_dict), buf_size=1000),
    +            batch_size=100),
             event_handler=event_handler,
             reader_dict={'word': 0,
                          'label': 1},
    diff --git a/python/paddle/v2/dataset/imdb.py b/python/paddle/v2/dataset/imdb.py
    index 433e37380f..db388be1e0 100644
    --- a/python/paddle/v2/dataset/imdb.py
    +++ b/python/paddle/v2/dataset/imdb.py
    @@ -118,3 +118,8 @@ def test(word_idx):
         return reader_creator(
             re.compile("aclImdb/test/pos/.*\.txt$"),
             re.compile("aclImdb/test/neg/.*\.txt$"), word_idx, 1000)
    +
    +
    +def word_dict():
    +    return build_dict(
    +        re.compile("aclImdb/((train)|(test))/((pos)|(neg))/.*\.txt$"), 150)
    
    From fa3b1c465b4e2e2cc8051b8f47ed4b8f860b616e Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Thu, 2 Mar 2017 00:38:06 +0000
    Subject: [PATCH 096/186] change argument name of
     data_type.integer_value/integer_value_sequence to ele_range, add
     documentation.
    
    ---
     python/paddle/trainer/PyDataProvider2.py   | 16 ++++++++++++----
     python/paddle/v2/tests/test_data_feeder.py | 15 ++++++++-------
     2 files changed, 20 insertions(+), 11 deletions(-)
    
    diff --git a/python/paddle/trainer/PyDataProvider2.py b/python/paddle/trainer/PyDataProvider2.py
    index bd24c68b6f..afde7453a1 100644
    --- a/python/paddle/trainer/PyDataProvider2.py
    +++ b/python/paddle/trainer/PyDataProvider2.py
    @@ -65,14 +65,18 @@ def sparse_value_slot(dim, seq_type=SequenceType.NO_SEQUENCE):
         return InputType(dim, seq_type, DataType.SparseValue)
     
     
    -def index_slot(dim, seq_type=SequenceType.NO_SEQUENCE):
    -    return InputType(dim, seq_type, DataType.Index)
    +def index_slot(ele_range, seq_type=SequenceType.NO_SEQUENCE):
    +    """Data type of integer.
    +    :param ele_range: range of this integer.
    +    """
    +    return InputType(ele_range, seq_type, DataType.Index)
     
     
     dense_vector = dense_slot
     sparse_binary_vector = sparse_non_value_slot
     sparse_vector = sparse_value_slot
     integer_value = index_slot
    +integer_value.__doc__ = index_slot.__doc__
     
     
     def dense_vector_sequence(dim):
    @@ -99,8 +103,11 @@ def sparse_vector_sub_sequence(dim):
         return sparse_vector(dim, seq_type=SequenceType.SUB_SEQUENCE)
     
     
    -def integer_value_sequence(dim):
    -    return integer_value(dim, seq_type=SequenceType.SEQUENCE)
    +def integer_value_sequence(ele_range):
    +    """Data type of a sequence of integer.
    +    :param ele_range: range of each element.
    +    """
    +    return integer_value(ele_range, seq_type=SequenceType.SEQUENCE)
     
     
     def integer_value_sub_sequence(dim):
    @@ -108,6 +115,7 @@ def integer_value_sub_sequence(dim):
     
     
     integer_sequence = integer_value_sequence
    +integer_sequence.__doc__ = integer_value_sequence.__doc__
     
     
     class SingleSlotWrapper(object):
    diff --git a/python/paddle/v2/tests/test_data_feeder.py b/python/paddle/v2/tests/test_data_feeder.py
    index ab2bc5df76..1b1f5aef8b 100644
    --- a/python/paddle/v2/tests/test_data_feeder.py
    +++ b/python/paddle/v2/tests/test_data_feeder.py
    @@ -110,14 +110,14 @@ class DataFeederTest(unittest.TestCase):
                 self.assertAlmostEqual(value.all(), w[i].all())
     
         def test_integer(self):
    -        dim = 100
    +        ele_range = 100
             batch_size = 32
             index = []
             for i in xrange(batch_size):
                 each_sample = []
    -            each_sample.append(np.random.randint(dim))
    +            each_sample.append(np.random.randint(ele_range))
                 index.append(each_sample)
    -        feeder = DataFeeder([('input', data_type.integer_value(dim))],
    +        feeder = DataFeeder([('input', data_type.integer_value(ele_range))],
                                 {'input': 0})
             arg = feeder(index)
             output = arg.getSlotIds(0).copyToNumpyArray()
    @@ -125,7 +125,7 @@ class DataFeederTest(unittest.TestCase):
             self.assertEqual(output.all(), index.flatten().all())
     
         def test_integer_sequence(self):
    -        dim = 10000
    +        ele_range = 10000
             batch_size = 32
             start = [0]
             data = []
    @@ -133,11 +133,12 @@ class DataFeederTest(unittest.TestCase):
                 each_sample = []
                 each_sample.append(
                     self.sparse_binary_reader(
    -                    dim, 30, non_empty=True))
    +                    ele_range, 30, non_empty=True))
                 data.append(each_sample)
                 start.append(len(each_sample[0]) + start[-1])
    -        feeder = DataFeeder([('input', data_type.integer_value_sequence(dim))],
    -                            {'input': 0})
    +        feeder = DataFeeder(
    +            [('input', data_type.integer_value_sequence(ele_range))],
    +            {'input': 0})
             arg = feeder(data)
             output_data = arg.getSlotIds(0).copyToNumpyArray()
             output_start = arg.getSlotSequenceStartPositions(0).copyToNumpyArray()
    
    From e87181db8d4d67dc3c35675adf0c24d399dce88e Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Thu, 2 Mar 2017 19:47:17 +0000
    Subject: [PATCH 097/186] use value_range instead of ele_range
    
    ---
     python/paddle/trainer/PyDataProvider2.py   | 12 ++++++------
     python/paddle/v2/tests/test_data_feeder.py | 12 ++++++------
     2 files changed, 12 insertions(+), 12 deletions(-)
    
    diff --git a/python/paddle/trainer/PyDataProvider2.py b/python/paddle/trainer/PyDataProvider2.py
    index afde7453a1..4e3c4db853 100644
    --- a/python/paddle/trainer/PyDataProvider2.py
    +++ b/python/paddle/trainer/PyDataProvider2.py
    @@ -65,11 +65,11 @@ def sparse_value_slot(dim, seq_type=SequenceType.NO_SEQUENCE):
         return InputType(dim, seq_type, DataType.SparseValue)
     
     
    -def index_slot(ele_range, seq_type=SequenceType.NO_SEQUENCE):
    +def index_slot(value_range, seq_type=SequenceType.NO_SEQUENCE):
         """Data type of integer.
    -    :param ele_range: range of this integer.
    +    :param value_range: range of this integer.
         """
    -    return InputType(ele_range, seq_type, DataType.Index)
    +    return InputType(value_range, seq_type, DataType.Index)
     
     
     dense_vector = dense_slot
    @@ -103,11 +103,11 @@ def sparse_vector_sub_sequence(dim):
         return sparse_vector(dim, seq_type=SequenceType.SUB_SEQUENCE)
     
     
    -def integer_value_sequence(ele_range):
    +def integer_value_sequence(value_range):
         """Data type of a sequence of integer.
    -    :param ele_range: range of each element.
    +    :param value_range: range of each element.
         """
    -    return integer_value(ele_range, seq_type=SequenceType.SEQUENCE)
    +    return integer_value(value_range, seq_type=SequenceType.SEQUENCE)
     
     
     def integer_value_sub_sequence(dim):
    diff --git a/python/paddle/v2/tests/test_data_feeder.py b/python/paddle/v2/tests/test_data_feeder.py
    index 1b1f5aef8b..71eb3bf314 100644
    --- a/python/paddle/v2/tests/test_data_feeder.py
    +++ b/python/paddle/v2/tests/test_data_feeder.py
    @@ -110,14 +110,14 @@ class DataFeederTest(unittest.TestCase):
                 self.assertAlmostEqual(value.all(), w[i].all())
     
         def test_integer(self):
    -        ele_range = 100
    +        value_range = 100
             batch_size = 32
             index = []
             for i in xrange(batch_size):
                 each_sample = []
    -            each_sample.append(np.random.randint(ele_range))
    +            each_sample.append(np.random.randint(value_range))
                 index.append(each_sample)
    -        feeder = DataFeeder([('input', data_type.integer_value(ele_range))],
    +        feeder = DataFeeder([('input', data_type.integer_value(value_range))],
                                 {'input': 0})
             arg = feeder(index)
             output = arg.getSlotIds(0).copyToNumpyArray()
    @@ -125,7 +125,7 @@ class DataFeederTest(unittest.TestCase):
             self.assertEqual(output.all(), index.flatten().all())
     
         def test_integer_sequence(self):
    -        ele_range = 10000
    +        value_range = 10000
             batch_size = 32
             start = [0]
             data = []
    @@ -133,11 +133,11 @@ class DataFeederTest(unittest.TestCase):
                 each_sample = []
                 each_sample.append(
                     self.sparse_binary_reader(
    -                    ele_range, 30, non_empty=True))
    +                    value_range, 30, non_empty=True))
                 data.append(each_sample)
                 start.append(len(each_sample[0]) + start[-1])
             feeder = DataFeeder(
    -            [('input', data_type.integer_value_sequence(ele_range))],
    +            [('input', data_type.integer_value_sequence(value_range))],
                 {'input': 0})
             arg = feeder(data)
             output_data = arg.getSlotIds(0).copyToNumpyArray()
    
    From 4cbbb23fa315eb3b58929f059c59ae7498cdbf45 Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Wed, 1 Mar 2017 13:25:47 -0800
    Subject: [PATCH 098/186] expose build_dict in imikolov dataset, fix bug that
     len(word_dict) is not bigger than all index in word_dict.
    
    ---
     python/paddle/v2/dataset/imikolov.py          | 31 +++++++++----------
     .../paddle/v2/dataset/tests/imikolov_test.py  | 10 ++++--
     2 files changed, 22 insertions(+), 19 deletions(-)
    
    diff --git a/python/paddle/v2/dataset/imikolov.py b/python/paddle/v2/dataset/imikolov.py
    index 285d3eaca8..deb556942d 100644
    --- a/python/paddle/v2/dataset/imikolov.py
    +++ b/python/paddle/v2/dataset/imikolov.py
    @@ -17,7 +17,7 @@ imikolov's simple dataset: http://www.fit.vutbr.cz/~imikolov/rnnlm/
     import paddle.v2.dataset.common
     import tarfile
     
    -__all__ = ['train', 'test']
    +__all__ = ['train', 'test', 'build_dict']
     
     URL = 'http://www.fit.vutbr.cz/~imikolov/rnnlm/simple-examples.tgz'
     MD5 = '30177ea32e27c525793142b6bf2c8e2d'
    @@ -37,7 +37,9 @@ def word_count(f, word_freq=None):
         return word_freq
     
     
    -def build_dict(train_filename, test_filename):
    +def build_dict():
    +    train_filename = './simple-examples/data/ptb.train.txt'
    +    test_filename = './simple-examples/data/ptb.valid.txt'
         with tarfile.open(
                 paddle.v2.dataset.common.download(
                     paddle.v2.dataset.imikolov.URL, 'imikolov',
    @@ -45,27 +47,22 @@ def build_dict(train_filename, test_filename):
             trainf = tf.extractfile(train_filename)
             testf = tf.extractfile(test_filename)
             word_freq = word_count(testf, word_count(trainf))
    +        if '' in word_freq:
    +            # remove  for now, since we will set it as last index
    +            del word_freq['']
     
             TYPO_FREQ = 50
             word_freq = filter(lambda x: x[1] > TYPO_FREQ, word_freq.items())
     
    -        dictionary = sorted(word_freq, key=lambda x: (-x[1], x[0]))
    -        words, _ = list(zip(*dictionary))
    +        word_freq_sorted = sorted(word_freq, key=lambda x: (-x[1], x[0]))
    +        words, _ = list(zip(*word_freq_sorted))
             word_idx = dict(zip(words, xrange(len(words))))
             word_idx[''] = len(words)
     
         return word_idx
     
     
    -word_idx = {}
    -
    -
    -def reader_creator(filename, n):
    -    global word_idx
    -    if len(word_idx) == 0:
    -        word_idx = build_dict('./simple-examples/data/ptb.train.txt',
    -                              './simple-examples/data/ptb.valid.txt')
    -
    +def reader_creator(filename, word_idx, n):
         def reader():
             with tarfile.open(
                     paddle.v2.dataset.common.download(
    @@ -84,9 +81,9 @@ def reader_creator(filename, n):
         return reader
     
     
    -def train(n):
    -    return reader_creator('./simple-examples/data/ptb.train.txt', n)
    +def train(word_idx, n):
    +    return reader_creator('./simple-examples/data/ptb.train.txt', word_idx, n)
     
     
    -def test(n):
    -    return reader_creator('./simple-examples/data/ptb.valid.txt', n)
    +def test(word_idx, n):
    +    return reader_creator('./simple-examples/data/ptb.valid.txt', word_idx, n)
    diff --git a/python/paddle/v2/dataset/tests/imikolov_test.py b/python/paddle/v2/dataset/tests/imikolov_test.py
    index 9b1748eaaa..009e55243a 100644
    --- a/python/paddle/v2/dataset/tests/imikolov_test.py
    +++ b/python/paddle/v2/dataset/tests/imikolov_test.py
    @@ -1,6 +1,8 @@
     import paddle.v2.dataset.imikolov
     import unittest
     
    +WORD_DICT = paddle.v2.dataset.imikolov.build_dict()
    +
     
     class TestMikolov(unittest.TestCase):
         def check_reader(self, reader, n):
    @@ -9,11 +11,15 @@ class TestMikolov(unittest.TestCase):
     
         def test_train(self):
             n = 5
    -        self.check_reader(paddle.v2.dataset.imikolov.train(n), n)
    +        self.check_reader(paddle.v2.dataset.imikolov.train(WORD_DICT, n), n)
     
         def test_test(self):
             n = 5
    -        self.check_reader(paddle.v2.dataset.imikolov.test(n), n)
    +        self.check_reader(paddle.v2.dataset.imikolov.test(WORD_DICT, n), n)
    +
    +    def test_total(self):
    +        _, idx = zip(*WORD_DICT.items())
    +        self.assertEqual(sorted(idx)[-1], len(WORD_DICT) - 1)
     
     
     if __name__ == '__main__':
    
    From a8a25238bbde726834955db9cc9c2deeed36e33d Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Wed, 1 Mar 2017 23:14:36 +0000
    Subject: [PATCH 099/186] remove ITrainer interface since parameters for train
     is already getting out of sync. Currently there is no benefit of having a
     interface.
    
    ---
     python/paddle/v2/trainer.py | 23 ++---------------------
     1 file changed, 2 insertions(+), 21 deletions(-)
    
    diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py
    index e743a49523..6652a1e8fe 100644
    --- a/python/paddle/v2/trainer.py
    +++ b/python/paddle/v2/trainer.py
    @@ -8,7 +8,7 @@ from . import event as v2_event
     from . import optimizer as v2_optimizer
     from . import parameters as v2_parameters
     
    -__all__ = ['ITrainer', 'SGD']
    +__all__ = ['SGD']
     
     
     def default_event_handler(event):
    @@ -22,26 +22,7 @@ def default_event_handler(event):
         pass
     
     
    -class ITrainer(object):
    -    """
    -    The interface of Trainer. The only exposed method is `train`.
    -    """
    -
    -    def train(self, reader, topology, parameters, event_handler=None):
    -        """
    -        train method.
    -
    -        :param reader:
    -        :param topology:
    -        :param parameters:
    -        :param event_handler:
    -        :return:
    -        """
    -
    -        raise NotImplementedError()
    -
    -
    -class SGD(ITrainer):
    +class SGD():
         def __init__(self, cost, parameters, update_equation):
             """
             Simple SGD Trainer.
    
    From 8ebfe554bda96e2ff64d64fe9ae6ca461938411a Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Thu, 2 Mar 2017 15:38:48 -0800
    Subject: [PATCH 100/186] add batch reader into reader design doc
    
    ---
     doc/design/reader/README.md | 91 +++++++++++++++++++++++++++----------
     1 file changed, 66 insertions(+), 25 deletions(-)
    
    diff --git a/doc/design/reader/README.md b/doc/design/reader/README.md
    index 17d52b9e20..03119fdd74 100644
    --- a/doc/design/reader/README.md
    +++ b/doc/design/reader/README.md
    @@ -4,9 +4,10 @@ At training and testing time, PaddlePaddle programs need to read data. To ease t
     
     - 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 *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.
     
    -and provide frequently used reader creators and reader decorators.
    +and provide function which converts reader to batch reader, frequently used reader creators and reader decorators.
     
     ## Data Reader Interface
     
    @@ -37,9 +38,54 @@ def reader_creator_random_imageand_label(widht, height, label):
     	return reader
     ```
     
    +## 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.
    +
    +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),
    +(2, 2, 2),
    +(3, 3, 3)]
    +
    +# a mini batch of three data items, each data item is a list (single column).
    +[([1,1,1],),
    +([2,2,2],),
    +([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.
    +[[1,1,1],
    +[2,2,2],
    +[3,3,3]]
    +```
    +
    +It's easy to convert from reader to 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:
    +```python
    +def custom_batch_reader():
    +	while True:
    +		batch = []
    +		for i in xrange(128):
    +			batch.append((numpy.random.uniform(-1, 1, 28*28),)) # note that it's a tuple being appended.
    +		yield batch
    +
    +mnist_random_image_batch_reader = custom_batch_reader
    +```
    +
     ## Usage
     
    -data reader, mapping from item(s) read to data layer, batch size and number of total pass will be passed into `paddle.train`:
    +batch reader, mapping from item(s) read to data layer, batch size and number of total pass will be passed into `paddle.train`:
     
     ```python
     # two data layer is created:
    @@ -47,8 +93,8 @@ image_layer = paddle.layer.data("image", ...)
     label_layer = paddle.layer.data("label", ...)
     
     # ...
    -
    -paddle.train(paddle.dataset.mnist, {"image":0, "label":1}, 128, 10, ...)
    +batch_reader = paddle.batch(paddle.dataset.mnist.train(), 128)
    +paddle.train(batch_reader, {"image":0, "label":1}, 128, 10, ...)
     ```
     
     ## Data Reader Decorator
    @@ -64,7 +110,7 @@ Since reading data may take time and training can not proceed without data. It i
     Use `paddle.reader.buffered` to prefetch data:
     
     ```python
    -buffered_reader = paddle.reader.buffered(paddle.dataset.mnist, 100)
    +buffered_reader = paddle.reader.buffered(paddle.dataset.mnist.train(), 100)
     ```
     
     `buffered_reader` will try to buffer (prefetch) `100` data entries.
    @@ -91,10 +137,10 @@ def reader_creator_bool(t):
     true_reader = reader_creator_bool(True)
     false_reader = reader_creator_bool(False)
     
    -reader = paddle.reader.compose(paddle.dataset.mnist, data_reader_creator_random_image(20, 20), true_reader, false_reader)
    -# Skipped 1 because paddle.dataset.mnist produces two items per data entry.
    +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.
    -paddle.train(reader, {"true_image":0, "fake_image": 2, "true_label": 3, "false_label": 4}, ...)
    +paddle.train(paddle.batch(reader, 128), {"true_image":0, "fake_image": 2, "true_label": 3, "false_label": 4}, ...)
     ```
     
     ### Shuffle
    @@ -103,16 +149,20 @@ Given shuffle buffer size `n`, `paddle.reader.shuffle` will return a data reader
     
     Example:
     ```python
    -reader = paddle.reader.shuffle(paddle.dataset.mnist, 512)
    +reader = paddle.reader.shuffle(paddle.dataset.mnist.train(), 512)
     ```
     
     ## Q & A
     
    -### Why return only a single entry, but not a mini batch?
    +### Why reader return only a single entry, but 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).
    +
    +We provide function `paddle.batch` to turn (single entry) reader into batch reader.
     
    -If a mini batch is returned, data reader need to take care of batch size. But batch size is a concept for training, it makes more sense for user to specify batch size as a parameter for `train`.
    +### Why do we need batch reader, isn't train take reader and batch_size as arguments sufficient?
     
    -Practically, always return 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).
    +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.
     
     ### Why use a dictionary but not a list to provide mapping?
     
    @@ -137,7 +187,7 @@ def image_reader_creator(image_path, label_path, n):
     
     # images_reader_creator creates a reader
     reader = image_reader_creator("/path/to/image_file", "/path/to/label_file", 1024)
    -paddle.train(reader, {"image":0, "label":1}, ...)
    +paddle.train(paddle.batch(reader, 128), {"image":0, "label":1}, ...)
     ```
     
     ### How is `paddle.train` implemented
    @@ -145,17 +195,8 @@ paddle.train(reader, {"image":0, "label":1}, ...)
     An example implementation of paddle.train could be:
     
     ```python
    -def make_minibatch(reader, minibatch_size):
    -	def ret():
    -		r = reader()
    -		buf = [r.next() for x in xrange(minibatch_size)]
    -		while len(buf) > 0:
    -			yield buf
    -			buf = [r.next() for x in xrange(minibatch_size)]
    -	return ret
    -
    -def train(reader, mapping, batch_size, total_pass):
    +def train(batch_reader, mapping, batch_size, total_pass):
     	for pass_idx in range(total_pass):
    -		for mini_batch in make_minibatch(reader): # this loop will never end in online learning.
    +		for mini_batch in batch_reader(): # this loop will never end in online learning.
     			do_forward_backward(mini_batch, mapping)
     ```
    
    From f9ea339dd03bdf8df068e6936801db82ffd39bcd Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Thu, 2 Mar 2017 22:14:14 +0000
    Subject: [PATCH 101/186] remove osx build from CI
    
    We don't officially support OSX.
    And Travis CI takes a lot of time to build osx. (long time in pending state.
    Probably because travis ci don't have enough osx machines.
    ---
     .travis.yml                                 |  9 --------
     paddle/scripts/travis/before_install.osx.sh |  4 ----
     paddle/scripts/travis/build_and_test.sh     | 23 +++++++--------------
     3 files changed, 8 insertions(+), 28 deletions(-)
     delete mode 100755 paddle/scripts/travis/before_install.osx.sh
    
    diff --git a/.travis.yml b/.travis.yml
    index 28d1f51be7..5a7f45a748 100644
    --- a/.travis.yml
    +++ b/.travis.yml
    @@ -4,22 +4,14 @@ cache:
         - $HOME/third_party
         - $HOME/.ccache
         - $HOME/.cache/pip
    -    - $HOME/Library/Caches/Homebrew
     sudo: required
     dist: trusty
     os:
       - linux
    -  - osx
     env:
       - JOB=DOCS
       - JOB=BUILD_AND_TEST
       - JOB=PRE_COMMIT
    -matrix:
    -  exclude:
    -    - os: osx
    -      env: JOB=DOCS  # Only generate documentation in linux.
    -    - os: osx
    -      env: JOB=PRE_COMMIT # Only check pre-commit hook in linux
     
     addons:
       apt:
    @@ -53,7 +45,6 @@ before_install:
             fi
           fi
         fi
    -  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then paddle/scripts/travis/before_install.osx.sh; fi
       - if [[ "$JOB" == "PRE_COMMIT" ]]; then sudo ln -s /usr/bin/clang-format-3.8 /usr/bin/clang-format; fi
       # Paddle is using protobuf 3.1 currently. Protobuf 3.2 breaks the compatibility. So we specify the python 
       # protobuf version.
    diff --git a/paddle/scripts/travis/before_install.osx.sh b/paddle/scripts/travis/before_install.osx.sh
    deleted file mode 100755
    index 80f031a74e..0000000000
    --- a/paddle/scripts/travis/before_install.osx.sh
    +++ /dev/null
    @@ -1,4 +0,0 @@
    -#!/bin/bash
    -brew update
    -brew tap homebrew/science
    -brew install openblas swig md5sha1sum
    diff --git a/paddle/scripts/travis/build_and_test.sh b/paddle/scripts/travis/build_and_test.sh
    index 5e6350b574..7deb3e62e8 100755
    --- a/paddle/scripts/travis/build_and_test.sh
    +++ b/paddle/scripts/travis/build_and_test.sh
    @@ -2,18 +2,11 @@
     source ./common.sh
     
     NPROC=1
    -if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
    -  export PYTHONPATH=/opt/python/2.7.12/lib/python2.7/site-packages
    -  export PYTHONHOME=/opt/python/2.7.12
    -  export PATH=/opt/python/2.7.12/bin:${PATH}
    -  cmake .. -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran-4.8 -DON_TRAVIS=ON -DON_COVERALLS=ON -DCOVERALLS_UPLOAD=ON ${EXTRA_CMAKE_OPTS}
    -  NRPOC=`nproc`
    -  make -j $NPROC
    -  make coveralls
    -  sudo make install
    -elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
    -  export PYTHONPATH=/usr/local/lib/python2.7/site-packages
    -  cmake .. -DON_TRAVIS=ON -DON_COVERALLS=ON -DCOVERALLS_UPLOAD=ON ${EXTRA_CMAKE_OPTS}
    -  NPROC=`sysctl -n hw.ncpu`
    -  make -j $NPROC
    -fi
    +export PYTHONPATH=/opt/python/2.7.12/lib/python2.7/site-packages
    +export PYTHONHOME=/opt/python/2.7.12
    +export PATH=/opt/python/2.7.12/bin:${PATH}
    +cmake .. -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran-4.8 -DON_TRAVIS=ON -DON_COVERALLS=ON -DCOVERALLS_UPLOAD=ON ${EXTRA_CMAKE_OPTS}
    +NRPOC=`nproc`
    +make -j $NPROC
    +make coveralls
    +sudo make install
    
    From 4157e009c1fb2c0e12e806ce52da0f9e4890084d Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Fri, 3 Mar 2017 01:48:35 +0000
    Subject: [PATCH 102/186] dataset: print download progress
    
    ---
     python/paddle/v2/dataset/common.py | 20 ++++++++++++++++++--
     1 file changed, 18 insertions(+), 2 deletions(-)
    
    diff --git a/python/paddle/v2/dataset/common.py b/python/paddle/v2/dataset/common.py
    index 397c9e66d4..0944fe973d 100644
    --- a/python/paddle/v2/dataset/common.py
    +++ b/python/paddle/v2/dataset/common.py
    @@ -16,6 +16,7 @@ import requests
     import hashlib
     import os
     import shutil
    +import sys
     
     __all__ = ['DATA_HOME', 'download', 'md5file']
     
    @@ -35,6 +36,7 @@ def md5file(fname):
     
     
     def download(url, module_name, md5sum):
    +    print "downloading %s" % url
         dirname = os.path.join(DATA_HOME, module_name)
         if not os.path.exists(dirname):
             os.makedirs(dirname)
    @@ -42,8 +44,22 @@ def download(url, module_name, md5sum):
         filename = os.path.join(dirname, url.split('/')[-1])
         if not (os.path.exists(filename) and md5file(filename) == md5sum):
             r = requests.get(url, stream=True)
    -        with open(filename, 'w') as f:
    -            shutil.copyfileobj(r.raw, f)
    +        total_length = r.headers.get('content-length')
    +
    +        if total_length is None:
    +            with open(filename, 'w') as f:
    +                shutil.copyfileobj(r.raw, f)
    +        else:
    +            with open(filename, 'w') as f:
    +                dl = 0
    +                total_length = int(total_length)
    +                for data in r.iter_content(chunk_size=4096):
    +                    dl += len(data)
    +                    f.write(data)
    +                    done = int(50 * dl / total_length)
    +                    sys.stdout.write("\r[%s%s]" % ('=' * done,
    +                                                   ' ' * (50 - done)))
    +                    sys.stdout.flush()
     
         return filename
     
    
    From 1996d4de74d328bbb6fa2f9544955763a4eb2d2e Mon Sep 17 00:00:00 2001
    From: Helin Wang 
    Date: Fri, 3 Mar 2017 03:38:43 +0000
    Subject: [PATCH 103/186] fix according to comment
    
    ---
     python/paddle/v2/dataset/common.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/dataset/common.py b/python/paddle/v2/dataset/common.py
    index 0944fe973d..3021b68ddb 100644
    --- a/python/paddle/v2/dataset/common.py
    +++ b/python/paddle/v2/dataset/common.py
    @@ -36,13 +36,13 @@ def md5file(fname):
     
     
     def download(url, module_name, md5sum):
    -    print "downloading %s" % url
         dirname = os.path.join(DATA_HOME, module_name)
         if not os.path.exists(dirname):
             os.makedirs(dirname)
     
         filename = os.path.join(dirname, url.split('/')[-1])
         if not (os.path.exists(filename) and md5file(filename) == md5sum):
    +        print "Cache file %s not found, downloading %s" % (filename, url)
             r = requests.get(url, stream=True)
             total_length = r.headers.get('content-length')
     
    
    From e76264f97e09c47edc78ef811cff57f8382df51c Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Fri, 3 Mar 2017 13:24:35 +0800
    Subject: [PATCH 104/186] redirect code coverage to /dev/null
    
    ---
     cmake/coverallsGcovJsons.cmake | 11 ++++++-----
     1 file changed, 6 insertions(+), 5 deletions(-)
    
    diff --git a/cmake/coverallsGcovJsons.cmake b/cmake/coverallsGcovJsons.cmake
    index ae3530c3a0..7dfe0c8bf9 100644
    --- a/cmake/coverallsGcovJsons.cmake
    +++ b/cmake/coverallsGcovJsons.cmake
    @@ -110,14 +110,15 @@ endmacro()
     
     # Get the coverage data.
     file(GLOB_RECURSE GCDA_FILES "${COV_PATH}" "*.gcda")
    -message("GCDA files:")
    +message("Process GCDA files:")
    +message("===============================")
     
     # Get a list of all the object directories needed by gcov
     # (The directories the .gcda files and .o files are found in)
     # and run gcov on those.
     foreach(GCDA ${GCDA_FILES})
    -	message("Process: ${GCDA}")
    -	message("------------------------------------------------------------------------------")
    +	# message("Process: ${GCDA}")
    +	# message("------------------------------------------------------------------------------")
     	get_filename_component(GCDA_DIR ${GCDA} PATH)
     
     	#
    @@ -135,7 +136,7 @@ foreach(GCDA ${GCDA_FILES})
     	# If -p is not specified then the file is named only "the_file.c.gcov"
     	#
     	execute_process(
    -		COMMAND ${GCOV_EXECUTABLE} -p -o ${GCDA_DIR} ${GCDA}
    +		COMMAND "${GCOV_EXECUTABLE} -p -o ${GCDA_DIR} ${GCDA} >/dev/null"
     		WORKING_DIRECTORY ${GCDA_DIR}
     	)
     endforeach()
    @@ -383,7 +384,7 @@ foreach(NOT_COVERED_SRC ${COVERAGE_SRCS_REMAINING})
     	set(GCOV_FILE_COVERAGE "${GCOV_FILE_COVERAGE}]")
     
     	# Generate the final JSON for this file.
    -	message("Generate JSON for non-gcov file: ${NOT_COVERED_SRC}...")
    +	# message("Generate JSON for non-gcov file: ${NOT_COVERED_SRC}...")
     	string(CONFIGURE ${SRC_FILE_TEMPLATE} FILE_JSON)
     	set(JSON_GCOV_FILES "${JSON_GCOV_FILES}${FILE_JSON}, ")
     endforeach()
    
    From 19ab464b8b89d0373c6e7729756a27cf8ca94148 Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Fri, 3 Mar 2017 13:33:57 +0800
    Subject: [PATCH 105/186] Disable test_ProtoServer on Travis CI
    
    ---
     paddle/pserver/test/CMakeLists.txt | 8 +++++---
     1 file changed, 5 insertions(+), 3 deletions(-)
    
    diff --git a/paddle/pserver/test/CMakeLists.txt b/paddle/pserver/test/CMakeLists.txt
    index 64654f67d0..6e8f9c37f6 100644
    --- a/paddle/pserver/test/CMakeLists.txt
    +++ b/paddle/pserver/test/CMakeLists.txt
    @@ -10,9 +10,11 @@ add_test(NAME socket_test
     add_unittest_without_exec(test_ProtoServer
         test_ProtoServer.cpp)
     
    -add_test(NAME test_ProtoServer
    -    COMMAND ${PROJ_ROOT}/paddle/.set_port.sh -p port
    -        ${CMAKE_CURRENT_BINARY_DIR}/test_ProtoServer)
    +IF(NOT ON_TRAVIS)
    +    add_test(NAME test_ProtoServer
    +        COMMAND ${PROJ_ROOT}/paddle/.set_port.sh -p port
    +            ${CMAKE_CURRENT_BINARY_DIR}/test_ProtoServer)
    +ENDIF(NOT ON_TRAVIS)
     
     # TODO(yuyang18): Run test_ProtoServer when with rdma
     # add_test(NAME test_ProtoServerRDMA
    
    From a6f25f3d2a27e2ef434bd399fd9e0c8c1971638d Mon Sep 17 00:00:00 2001
    From: wen-bo-yang 
    Date: Sat, 25 Feb 2017 04:09:20 +0800
    Subject: [PATCH 106/186] add sentiment data package
    
    ---
     paddle/setup.py.in              |  2 +
     paddle/v2/data_set/config.py    |  8 ++++
     paddle/v2/data_set/sentiment.py | 81 +++++++++++++++++++++++++++++++++
     3 files changed, 91 insertions(+)
     create mode 100644 paddle/v2/data_set/config.py
     create mode 100644 paddle/v2/data_set/sentiment.py
    
    diff --git a/paddle/setup.py.in b/paddle/setup.py.in
    index 38621af065..8dc3ff6acd 100644
    --- a/paddle/setup.py.in
    +++ b/paddle/setup.py.in
    @@ -72,6 +72,8 @@ setup(name="py_paddle",
       packages=['py_paddle'],
       include_dirs = include_dirs,
       install_requires = [
    +    'h5py',
    +    'nltk',
         'numpy>=1.8.0',      # The numpy is required.
         'protobuf>=3.0.0'    # The paddle protobuf version
       ],
    diff --git a/paddle/v2/data_set/config.py b/paddle/v2/data_set/config.py
    new file mode 100644
    index 0000000000..69e96d65ef
    --- /dev/null
    +++ b/paddle/v2/data_set/config.py
    @@ -0,0 +1,8 @@
    +import os
    +
    +__all__ = ['DATA_HOME']
    +
    +DATA_HOME = os.path.expanduser('~/.cache/paddle_data_set')
    +
    +if not os.path.exists(DATA_HOME):
    +    os.makedirs(DATA_HOME)
    diff --git a/paddle/v2/data_set/sentiment.py b/paddle/v2/data_set/sentiment.py
    new file mode 100644
    index 0000000000..323fc214dd
    --- /dev/null
    +++ b/paddle/v2/data_set/sentiment.py
    @@ -0,0 +1,81 @@
    +import random
    +import nltk
    +import numpy as np
    +from nltk.corpus import movie_reviews
    +from config import DATA_HOME
    +
    +__all__ = ['train', 'test', 'get_label_dict', 'get_word_dict']
    +SPLIT_NUM = 800
    +TOTAL_DATASET_NUM = 1000
    +
    +
    +def get_label_dict():
    +    label_dict = {'neg': 0, 'pos': 1}
    +    return label_dict
    +
    +
    +def is_download_data():
    +    try:
    +        nltk.data.path.append(DATA_HOME)
    +        movie_reviews.categories()
    +    except LookupError:
    +        print "dd"
    +        nltk.download('movie_reviews', download_dir=DATA_HOME)
    +        nltk.data.path.append(DATA_HOME)
    +
    +
    +def get_word_dict():
    +    words_freq_sorted = list()
    +    is_download_data()
    +    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    +    words_sort_list = words_freq.items()
    +    words_sort_list.sort(cmp=lambda a, b: b[1] - a[1])
    +    print words_sort_list
    +    for index, word in enumerate(words_sort_list):
    +        words_freq_sorted.append(word[0])
    +    return words_freq_sorted
    +
    +
    +def load_sentiment_data():
    +    label_dict = get_label_dict()
    +    is_download_data()
    +    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    +    data_set = [([words_freq[word]
    +                for word in movie_reviews.words(fileid)], label_dict[category])
    +                for category in movie_reviews.categories()
    +                for fileid in movie_reviews.fileids(category)]
    +    random.shuffle(data_set)
    +    return data_set
    +
    +
    +data_set = load_sentiment_data()
    +
    +
    +def reader_creator(data_type):
    +    if data_type == 'train':
    +        for each in data_set[0:SPLIT_NUM]:
    +            train_sentences = np.array(each[0], dtype=np.int32)
    +            train_label = np.array(each[1], dtype=np.int8)
    +            yield train_sentences, train_label
    +    else:
    +        for each in data_set[SPLIT_NUM:]:
    +            test_sentences = np.array(each[0], dtype=np.int32)
    +            test_label = np.array(each[1], dtype=np.int8)
    +            yield test_sentences, test_label
    +
    +
    +def train():
    +    return reader_creator('train')
    +
    +
    +def test():
    +    return reader_creator('test')
    +
    +
    +if __name__ == '__main__':
    +    for train in train():
    +        print "train"
    +        print train
    +    for test in test():
    +        print "test"
    +        print test
    
    From 55d19fc4f029105661ddd30aa838e1100d03ee54 Mon Sep 17 00:00:00 2001
    From: wen-bo-yang 
    Date: Sun, 26 Feb 2017 21:41:42 +0800
    Subject: [PATCH 107/186] fix bugs
    
    ---
     paddle/setup.py.in                        |   1 -
     paddle/v2/data_set/sentiment.py           |  81 --------------
     paddle/v2/{data_set => dataset}/config.py |   2 +-
     paddle/v2/dataset/sentiment.py            | 127 ++++++++++++++++++++++
     4 files changed, 128 insertions(+), 83 deletions(-)
     delete mode 100644 paddle/v2/data_set/sentiment.py
     rename paddle/v2/{data_set => dataset}/config.py (62%)
     create mode 100644 paddle/v2/dataset/sentiment.py
    
    diff --git a/paddle/setup.py.in b/paddle/setup.py.in
    index 8dc3ff6acd..d44f1145df 100644
    --- a/paddle/setup.py.in
    +++ b/paddle/setup.py.in
    @@ -72,7 +72,6 @@ setup(name="py_paddle",
       packages=['py_paddle'],
       include_dirs = include_dirs,
       install_requires = [
    -    'h5py',
         'nltk',
         'numpy>=1.8.0',      # The numpy is required.
         'protobuf>=3.0.0'    # The paddle protobuf version
    diff --git a/paddle/v2/data_set/sentiment.py b/paddle/v2/data_set/sentiment.py
    deleted file mode 100644
    index 323fc214dd..0000000000
    --- a/paddle/v2/data_set/sentiment.py
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -import random
    -import nltk
    -import numpy as np
    -from nltk.corpus import movie_reviews
    -from config import DATA_HOME
    -
    -__all__ = ['train', 'test', 'get_label_dict', 'get_word_dict']
    -SPLIT_NUM = 800
    -TOTAL_DATASET_NUM = 1000
    -
    -
    -def get_label_dict():
    -    label_dict = {'neg': 0, 'pos': 1}
    -    return label_dict
    -
    -
    -def is_download_data():
    -    try:
    -        nltk.data.path.append(DATA_HOME)
    -        movie_reviews.categories()
    -    except LookupError:
    -        print "dd"
    -        nltk.download('movie_reviews', download_dir=DATA_HOME)
    -        nltk.data.path.append(DATA_HOME)
    -
    -
    -def get_word_dict():
    -    words_freq_sorted = list()
    -    is_download_data()
    -    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    -    words_sort_list = words_freq.items()
    -    words_sort_list.sort(cmp=lambda a, b: b[1] - a[1])
    -    print words_sort_list
    -    for index, word in enumerate(words_sort_list):
    -        words_freq_sorted.append(word[0])
    -    return words_freq_sorted
    -
    -
    -def load_sentiment_data():
    -    label_dict = get_label_dict()
    -    is_download_data()
    -    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    -    data_set = [([words_freq[word]
    -                for word in movie_reviews.words(fileid)], label_dict[category])
    -                for category in movie_reviews.categories()
    -                for fileid in movie_reviews.fileids(category)]
    -    random.shuffle(data_set)
    -    return data_set
    -
    -
    -data_set = load_sentiment_data()
    -
    -
    -def reader_creator(data_type):
    -    if data_type == 'train':
    -        for each in data_set[0:SPLIT_NUM]:
    -            train_sentences = np.array(each[0], dtype=np.int32)
    -            train_label = np.array(each[1], dtype=np.int8)
    -            yield train_sentences, train_label
    -    else:
    -        for each in data_set[SPLIT_NUM:]:
    -            test_sentences = np.array(each[0], dtype=np.int32)
    -            test_label = np.array(each[1], dtype=np.int8)
    -            yield test_sentences, test_label
    -
    -
    -def train():
    -    return reader_creator('train')
    -
    -
    -def test():
    -    return reader_creator('test')
    -
    -
    -if __name__ == '__main__':
    -    for train in train():
    -        print "train"
    -        print train
    -    for test in test():
    -        print "test"
    -        print test
    diff --git a/paddle/v2/data_set/config.py b/paddle/v2/dataset/config.py
    similarity index 62%
    rename from paddle/v2/data_set/config.py
    rename to paddle/v2/dataset/config.py
    index 69e96d65ef..304c4bc5cd 100644
    --- a/paddle/v2/data_set/config.py
    +++ b/paddle/v2/dataset/config.py
    @@ -2,7 +2,7 @@ import os
     
     __all__ = ['DATA_HOME']
     
    -DATA_HOME = os.path.expanduser('~/.cache/paddle_data_set')
    +DATA_HOME = os.path.expanduser('~/.cache/paddle/dataset')
     
     if not os.path.exists(DATA_HOME):
         os.makedirs(DATA_HOME)
    diff --git a/paddle/v2/dataset/sentiment.py b/paddle/v2/dataset/sentiment.py
    new file mode 100644
    index 0000000000..83581eadf2
    --- /dev/null
    +++ b/paddle/v2/dataset/sentiment.py
    @@ -0,0 +1,127 @@
    +# /usr/bin/env python
    +# -*- coding:utf-8 -*-
    +
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +"""
    +The script fetch and preprocess movie_reviews data set
    +
    +that provided by NLTK
    +"""
    +
    +
    +import nltk
    +import numpy as np
    +from nltk.corpus import movie_reviews
    +from config import DATA_HOME
    +
    +__all__ = ['train', 'test', 'get_label_dict', 'get_word_dict']
    +NUM_TRAINING_INSTANCES = 1600
    +NUM_TOTAL_INSTANCES = 2000
    +
    +
    +def get_label_dict():
    +    """
    +    Define the labels dict for dataset
    +    """
    +    label_dict = {'neg': 0, 'pos': 1}
    +    return label_dict
    +
    +
    +def download_data_if_not_yet():
    +    """
    +    Download the data set, if the data set is not download.
    +    """
    +    try:
    +        # make sure that nltk can find the data
    +        nltk.data.path.append(DATA_HOME)
    +        movie_reviews.categories()
    +    except LookupError:
    +        print "Downloading movie_reviews data set, please wait....."
    +        nltk.download('movie_reviews', download_dir=DATA_HOME)
    +        print "Download data set success......"
    +        # make sure that nltk can find the data
    +        nltk.data.path.append(DATA_HOME)
    +
    +
    +def get_word_dict():
    +    """
    +    Sorted the words by the frequency of words which occur in sample
    +    :return:
    +        words_freq_sorted
    +    """
    +    words_freq_sorted = list()
    +    download_data_if_not_yet()
    +    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    +    words_sort_list = words_freq.items()
    +    words_sort_list.sort(cmp=lambda a, b: b[1] - a[1])
    +    for index, word in enumerate(words_sort_list):
    +        words_freq_sorted.append(word[0])
    +    return words_freq_sorted
    +
    +
    +def load_sentiment_data():
    +    """
    +    Load the data set
    +    :return:
    +        data_set
    +    """
    +    label_dict = get_label_dict()
    +    download_data_if_not_yet()
    +    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    +    data_set = [([words_freq[word.lower()]
    +                  for word in movie_reviews.words(fileid)],
    +                 label_dict[category])
    +                for category in movie_reviews.categories()
    +                for fileid in movie_reviews.fileids(category)]
    +    return data_set
    +
    +
    +data_set = load_sentiment_data()
    +
    +
    +def reader_creator(data):
    +    """
    +    Reader creator, it format data set to numpy
    +    :param data:
    +        train data set or test data set
    +    """
    +    for each in data:
    +        sentences = np.array(each[0], dtype=np.int32)
    +        labels = np.array(each[1], dtype=np.int8)
    +        yield sentences, labels
    +
    +
    +def train():
    +    """
    +    Default train set reader creator
    +    """
    +    return reader_creator(data_set[0:NUM_TRAINING_INSTANCES])
    +
    +
    +def test():
    +    """
    +    Default test set reader creator
    +    """
    +    return reader_creator(data_set[NUM_TRAINING_INSTANCES:])
    +
    +
    +def unittest():
    +    assert len(data_set) == NUM_TOTAL_INSTANCES
    +    assert len(list(train())) == NUM_TRAINING_INSTANCES
    +    assert len(list(test())) == NUM_TOTAL_INSTANCES - NUM_TRAINING_INSTANCES
    +
    +
    +if __name__ == '__main__':
    +    unittest()
    
    From 812e21f3c4c14b8cf215fb1221b74814b132f301 Mon Sep 17 00:00:00 2001
    From: wen-bo-yang 
    Date: Mon, 27 Feb 2017 17:43:28 +0800
    Subject: [PATCH 108/186] add cross reading sample files and fix bugs
    
    ---
     paddle/setup.py.in                            |  2 +-
     paddle/v2/dataset/config.py                   |  8 ----
     .../paddle}/v2/dataset/sentiment.py           | 42 +++++++++++++------
     3 files changed, 30 insertions(+), 22 deletions(-)
     delete mode 100644 paddle/v2/dataset/config.py
     rename {paddle => python/paddle}/v2/dataset/sentiment.py (73%)
    
    diff --git a/paddle/setup.py.in b/paddle/setup.py.in
    index d44f1145df..382d5be6ec 100644
    --- a/paddle/setup.py.in
    +++ b/paddle/setup.py.in
    @@ -72,7 +72,7 @@ setup(name="py_paddle",
       packages=['py_paddle'],
       include_dirs = include_dirs,
       install_requires = [
    -    'nltk',
    +    'nltk>=3.2.2',
         'numpy>=1.8.0',      # The numpy is required.
         'protobuf>=3.0.0'    # The paddle protobuf version
       ],
    diff --git a/paddle/v2/dataset/config.py b/paddle/v2/dataset/config.py
    deleted file mode 100644
    index 304c4bc5cd..0000000000
    --- a/paddle/v2/dataset/config.py
    +++ /dev/null
    @@ -1,8 +0,0 @@
    -import os
    -
    -__all__ = ['DATA_HOME']
    -
    -DATA_HOME = os.path.expanduser('~/.cache/paddle/dataset')
    -
    -if not os.path.exists(DATA_HOME):
    -    os.makedirs(DATA_HOME)
    diff --git a/paddle/v2/dataset/sentiment.py b/python/paddle/v2/dataset/sentiment.py
    similarity index 73%
    rename from paddle/v2/dataset/sentiment.py
    rename to python/paddle/v2/dataset/sentiment.py
    index 83581eadf2..9825d2ef96 100644
    --- a/paddle/v2/dataset/sentiment.py
    +++ b/python/paddle/v2/dataset/sentiment.py
    @@ -20,9 +20,9 @@ The script fetch and preprocess movie_reviews data set
     that provided by NLTK
     """
     
    -
     import nltk
     import numpy as np
    +from itertools import chain
     from nltk.corpus import movie_reviews
     from config import DATA_HOME
     
    @@ -50,9 +50,10 @@ def download_data_if_not_yet():
         except LookupError:
             print "Downloading movie_reviews data set, please wait....."
             nltk.download('movie_reviews', download_dir=DATA_HOME)
    -        print "Download data set success......"
             # make sure that nltk can find the data
             nltk.data.path.append(DATA_HOME)
    +        print "Download data set success....."
    +        print "Path is " + nltk.data.find('corpora/movie_reviews').path
     
     
     def get_word_dict():
    @@ -67,24 +68,39 @@ def get_word_dict():
         words_sort_list = words_freq.items()
         words_sort_list.sort(cmp=lambda a, b: b[1] - a[1])
         for index, word in enumerate(words_sort_list):
    -        words_freq_sorted.append(word[0])
    +        words_freq_sorted.append((word[0], index + 1))
         return words_freq_sorted
     
     
    +def sort_files():
    +    """
    +    Sorted the sample for cross reading the sample
    +    :return:
    +        files_list
    +    """
    +    files_list = list()
    +    download_data_if_not_yet()
    +    neg_file_list = movie_reviews.fileids('neg')
    +    pos_file_list = movie_reviews.fileids('pos')
    +    files_list = list(chain.from_iterable(zip(neg_file_list, pos_file_list)))
    +    return files_list
    +
    +
     def load_sentiment_data():
         """
         Load the data set
         :return:
             data_set
         """
    -    label_dict = get_label_dict()
    +    data_set = list()
         download_data_if_not_yet()
    -    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    -    data_set = [([words_freq[word.lower()]
    -                  for word in movie_reviews.words(fileid)],
    -                 label_dict[category])
    -                for category in movie_reviews.categories()
    -                for fileid in movie_reviews.fileids(category)]
    +    words_ids = dict(get_word_dict())
    +    for sample_file in sort_files():
    +        words_list = list()
    +        category = 0 if 'neg' in sample_file else 1
    +        for word in movie_reviews.words(sample_file):
    +            words_list.append(words_ids[word.lower()])
    +        data_set.append((words_list, category))
         return data_set
     
     
    @@ -98,9 +114,9 @@ def reader_creator(data):
             train data set or test data set
         """
         for each in data:
    -        sentences = np.array(each[0], dtype=np.int32)
    -        labels = np.array(each[1], dtype=np.int8)
    -        yield sentences, labels
    +        list_of_int = np.array(each[0], dtype=np.int32)
    +        label = each[1]
    +        yield list_of_int, label
     
     
     def train():
    
    From 6115fcc5a73497157718eadb3bd596311ea83a55 Mon Sep 17 00:00:00 2001
    From: wen-bo-yang 
    Date: Thu, 2 Mar 2017 04:11:11 +0000
    Subject: [PATCH 109/186] format by yapf
    
    ---
     python/paddle/v2/dataset/sentiment.py         | 51 ++++++------------
     .../paddle/v2/dataset/tests/test_sentiment.py | 52 +++++++++++++++++++
     2 files changed, 69 insertions(+), 34 deletions(-)
     create mode 100644 python/paddle/v2/dataset/tests/test_sentiment.py
    
    diff --git a/python/paddle/v2/dataset/sentiment.py b/python/paddle/v2/dataset/sentiment.py
    index 9825d2ef96..1e7f222f4d 100644
    --- a/python/paddle/v2/dataset/sentiment.py
    +++ b/python/paddle/v2/dataset/sentiment.py
    @@ -20,38 +20,30 @@ The script fetch and preprocess movie_reviews data set
     that provided by NLTK
     """
     
    +import paddle.v2.dataset.common as common
    +import collections
     import nltk
     import numpy as np
     from itertools import chain
     from nltk.corpus import movie_reviews
    -from config import DATA_HOME
     
    -__all__ = ['train', 'test', 'get_label_dict', 'get_word_dict']
    +__all__ = ['train', 'test', 'get_word_dict']
     NUM_TRAINING_INSTANCES = 1600
     NUM_TOTAL_INSTANCES = 2000
     
     
    -def get_label_dict():
    -    """
    -    Define the labels dict for dataset
    -    """
    -    label_dict = {'neg': 0, 'pos': 1}
    -    return label_dict
    -
    -
     def download_data_if_not_yet():
         """
         Download the data set, if the data set is not download.
         """
         try:
             # make sure that nltk can find the data
    -        nltk.data.path.append(DATA_HOME)
    +        if common.DATA_HOME not in nltk.data.path:
    +            nltk.data.path.append(common.DATA_HOME)
             movie_reviews.categories()
         except LookupError:
             print "Downloading movie_reviews data set, please wait....."
    -        nltk.download('movie_reviews', download_dir=DATA_HOME)
    -        # make sure that nltk can find the data
    -        nltk.data.path.append(DATA_HOME)
    +        nltk.download('movie_reviews', download_dir=common.DATA_HOME)
             print "Download data set success....."
             print "Path is " + nltk.data.find('corpora/movie_reviews').path
     
    @@ -63,12 +55,17 @@ def get_word_dict():
             words_freq_sorted
         """
         words_freq_sorted = list()
    +    word_freq_dict = collections.defaultdict(int)
         download_data_if_not_yet()
    -    words_freq = nltk.FreqDist(w.lower() for w in movie_reviews.words())
    -    words_sort_list = words_freq.items()
    +
    +    for category in movie_reviews.categories():
    +        for field in movie_reviews.fileids(category):
    +            for words in movie_reviews.words(field):
    +                word_freq_dict[words] += 1
    +    words_sort_list = word_freq_dict.items()
         words_sort_list.sort(cmp=lambda a, b: b[1] - a[1])
         for index, word in enumerate(words_sort_list):
    -        words_freq_sorted.append((word[0], index + 1))
    +        words_freq_sorted.append((word[0], index))
         return words_freq_sorted
     
     
    @@ -79,7 +76,6 @@ def sort_files():
             files_list
         """
         files_list = list()
    -    download_data_if_not_yet()
         neg_file_list = movie_reviews.fileids('neg')
         pos_file_list = movie_reviews.fileids('pos')
         files_list = list(chain.from_iterable(zip(neg_file_list, pos_file_list)))
    @@ -104,9 +100,6 @@ def load_sentiment_data():
         return data_set
     
     
    -data_set = load_sentiment_data()
    -
    -
     def reader_creator(data):
         """
         Reader creator, it format data set to numpy
    @@ -114,15 +107,14 @@ def reader_creator(data):
             train data set or test data set
         """
         for each in data:
    -        list_of_int = np.array(each[0], dtype=np.int32)
    -        label = each[1]
    -        yield list_of_int, label
    +        yield each[0], each[1]
     
     
     def train():
         """
         Default train set reader creator
         """
    +    data_set = load_sentiment_data()
         return reader_creator(data_set[0:NUM_TRAINING_INSTANCES])
     
     
    @@ -130,14 +122,5 @@ def test():
         """
         Default test set reader creator
         """
    +    data_set = load_sentiment_data()
         return reader_creator(data_set[NUM_TRAINING_INSTANCES:])
    -
    -
    -def unittest():
    -    assert len(data_set) == NUM_TOTAL_INSTANCES
    -    assert len(list(train())) == NUM_TRAINING_INSTANCES
    -    assert len(list(test())) == NUM_TOTAL_INSTANCES - NUM_TRAINING_INSTANCES
    -
    -
    -if __name__ == '__main__':
    -    unittest()
    diff --git a/python/paddle/v2/dataset/tests/test_sentiment.py b/python/paddle/v2/dataset/tests/test_sentiment.py
    new file mode 100644
    index 0000000000..48a14aad2a
    --- /dev/null
    +++ b/python/paddle/v2/dataset/tests/test_sentiment.py
    @@ -0,0 +1,52 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
    +import unittest
    +import nltk
    +import paddle.v2.dataset.sentiment as st
    +from nltk.corpus import movie_reviews
    +
    +
    +class TestSentimentMethods(unittest.TestCase):
    +    def test_get_word_dict(self):
    +        word_dict = st.get_word_dict()[0:10]
    +        test_word_list = [(u',', 0), (u'the', 1), (u'.', 2), (u'a', 3),
    +                          (u'and', 4), (u'of', 5), (u'to', 6), (u"'", 7),
    +                          (u'is', 8), (u'in', 9)]
    +        for idx, each in enumerate(word_dict):
    +            self.assertEqual(each, test_word_list[idx])
    +        self.assertTrue("/root/.cache/paddle/dataset" in nltk.data.path)
    +
    +    def test_sort_files(self):
    +        last_label = ''
    +        for sample_file in st.sort_files():
    +            current_label = sample_file.split("/")[0]
    +            self.assertNotEqual(current_label, last_label)
    +            last_label = current_label
    +
    +    def test_data_set(self):
    +        data_set = st.load_sentiment_data()
    +        last_label = -1
    +        for each in st.test():
    +            self.assertNotEqual(each[1], last_label)
    +            last_label = each[1]
    +        self.assertEqual(len(data_set), st.NUM_TOTAL_INSTANCES)
    +        self.assertEqual(len(list(st.train())), st.NUM_TRAINING_INSTANCES)
    +        self.assertEqual(
    +            len(list(st.test())),
    +            (st.NUM_TOTAL_INSTANCES - st.NUM_TRAINING_INSTANCES))
    +
    +
    +if __name__ == '__main__':
    +    unittest.main()
    
    From a846ef664002a91c949f383d273e0539768198e6 Mon Sep 17 00:00:00 2001
    From: wen-bo-yang 
    Date: Thu, 2 Mar 2017 08:13:13 +0000
    Subject: [PATCH 110/186] modify doc
    
    ---
     python/paddle/v2/dataset/sentiment.py            | 2 +-
     python/paddle/v2/dataset/tests/test_sentiment.py | 3 +++
     2 files changed, 4 insertions(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/dataset/sentiment.py b/python/paddle/v2/dataset/sentiment.py
    index 1e7f222f4d..137aa6aea7 100644
    --- a/python/paddle/v2/dataset/sentiment.py
    +++ b/python/paddle/v2/dataset/sentiment.py
    @@ -102,7 +102,7 @@ def load_sentiment_data():
     
     def reader_creator(data):
         """
    -    Reader creator, it format data set to numpy
    +    Reader creator, generate an iterator for data set
         :param data:
             train data set or test data set
         """
    diff --git a/python/paddle/v2/dataset/tests/test_sentiment.py b/python/paddle/v2/dataset/tests/test_sentiment.py
    index 48a14aad2a..4074052907 100644
    --- a/python/paddle/v2/dataset/tests/test_sentiment.py
    +++ b/python/paddle/v2/dataset/tests/test_sentiment.py
    @@ -1,3 +1,6 @@
    +# /usr/bin/env python
    +# -*- coding:utf-8 -*-
    +
     # Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
     #
     # Licensed under the Apache License, Version 2.0 (the "License");
    
    From 3feebce2095ebe7002e86081de0a76d573319129 Mon Sep 17 00:00:00 2001
    From: wen-bo-yang 
    Date: Fri, 3 Mar 2017 05:45:59 +0000
    Subject: [PATCH 111/186] add sentiment in __init__.py
    
    ---
     python/paddle/v2/dataset/__init__.py | 5 ++++-
     1 file changed, 4 insertions(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py
    index a1b21bab3b..e823f56316 100644
    --- a/python/paddle/v2/dataset/__init__.py
    +++ b/python/paddle/v2/dataset/__init__.py
    @@ -18,5 +18,8 @@ import imdb
     import cifar
     import movielens
     import conll05
    +import sentiment
     
    -__all__ = ['mnist', 'imikolov', 'imdb', 'cifar', 'movielens', 'conll05']
    +__all__ = [
    +    'mnist', 'imikolov', 'imdb', 'cifar', 'movielens', 'conll05', 'sentiment'
    +]
    
    From 615e41240c0083de10d938f28834d0933ea27bdc Mon Sep 17 00:00:00 2001
    From: liaogang 
    Date: Fri, 3 Mar 2017 14:55:16 +0800
    Subject: [PATCH 112/186] remove comment messages
    
    ---
     cmake/coverallsGcovJsons.cmake | 3 ---
     1 file changed, 3 deletions(-)
    
    diff --git a/cmake/coverallsGcovJsons.cmake b/cmake/coverallsGcovJsons.cmake
    index 7dfe0c8bf9..ad9a10cb86 100644
    --- a/cmake/coverallsGcovJsons.cmake
    +++ b/cmake/coverallsGcovJsons.cmake
    @@ -117,8 +117,6 @@ message("===============================")
     # (The directories the .gcda files and .o files are found in)
     # and run gcov on those.
     foreach(GCDA ${GCDA_FILES})
    -	# message("Process: ${GCDA}")
    -	# message("------------------------------------------------------------------------------")
     	get_filename_component(GCDA_DIR ${GCDA} PATH)
     
     	#
    @@ -384,7 +382,6 @@ foreach(NOT_COVERED_SRC ${COVERAGE_SRCS_REMAINING})
     	set(GCOV_FILE_COVERAGE "${GCOV_FILE_COVERAGE}]")
     
     	# Generate the final JSON for this file.
    -	# message("Generate JSON for non-gcov file: ${NOT_COVERED_SRC}...")
     	string(CONFIGURE ${SRC_FILE_TEMPLATE} FILE_JSON)
     	set(JSON_GCOV_FILES "${JSON_GCOV_FILES}${FILE_JSON}, ")
     endforeach()
    
    From c9f379ed805d7459fd5333706c0496dee662112d Mon Sep 17 00:00:00 2001
    From: wen-bo-yang 
    Date: Fri, 3 Mar 2017 07:05:37 +0000
    Subject: [PATCH 113/186] modify code
    
    ---
     python/paddle/v2/dataset/sentiment.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/dataset/sentiment.py b/python/paddle/v2/dataset/sentiment.py
    index 137aa6aea7..cbd08fa736 100644
    --- a/python/paddle/v2/dataset/sentiment.py
    +++ b/python/paddle/v2/dataset/sentiment.py
    @@ -20,7 +20,7 @@ The script fetch and preprocess movie_reviews data set
     that provided by NLTK
     """
     
    -import paddle.v2.dataset.common as common
    +import common
     import collections
     import nltk
     import numpy as np
    
    From 5b24583f63ff25f9f652bd1a1d9e9bc3f930f263 Mon Sep 17 00:00:00 2001
    From: Luo Tao 
    Date: Fri, 3 Mar 2017 15:12:42 +0800
    Subject: [PATCH 114/186] fix merge conflict
    
    ---
     python/paddle/v2/event.py | 3 +--
     1 file changed, 1 insertion(+), 2 deletions(-)
    
    diff --git a/python/paddle/v2/event.py b/python/paddle/v2/event.py
    index 8cbf9b9b1f..a429e36b63 100644
    --- a/python/paddle/v2/event.py
    +++ b/python/paddle/v2/event.py
    @@ -53,9 +53,8 @@ class EndPass(WithMetric):
         Event On One Pass Training Complete.
         """
     
    -    def __init__(self, pass_id, cost, evaluator):
    +    def __init__(self, pass_id, evaluator):
             self.pass_id = pass_id
    -        self.cost = cost
             WithMetric.__init__(self, evaluator)
     
     
    
    From e60d94b3d89233d8272a98a67cd980f6b837c40b Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Fri, 3 Mar 2017 15:13:45 +0800
    Subject: [PATCH 115/186] correct data_type
    
    ---
     demo/seqToseq/api_train_v2.py    | 12 ++++++------
     demo/seqToseq/seqToseq_net_v2.py |  6 +++---
     2 files changed, 9 insertions(+), 9 deletions(-)
    
    diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py
    index efbab8d7b9..bdcf3a5af0 100644
    --- a/demo/seqToseq/api_train_v2.py
    +++ b/demo/seqToseq/api_train_v2.py
    @@ -4,7 +4,8 @@ import paddle.v2 as paddle
     
     from seqToseq_net_v2 import seqToseq_net_v2
     
    -### Data Definiation
    +# Data Definiation.
    +# TODO:This code should be merged to dataset package.
     data_dir = "./data/pre-wmt14"
     src_lang_dict = os.path.join(data_dir, 'src.dict')
     trg_lang_dict = os.path.join(data_dir, 'trg.dict')
    @@ -68,15 +69,14 @@ def train_reader(file_name):
     def main():
         paddle.init(use_gpu=False, trainer_count=1)
     
    -    # reader = train_reader("data/pre-wmt14/train/train")
         # define network topology
         cost = seqToseq_net_v2(source_dict_dim, target_dict_dim)
         parameters = paddle.parameters.create(cost)
    -    optimizer = paddle.optimizer.Adam(batch_size=50, learning_rate=5e-4)
    +    optimizer = paddle.optimizer.Adam(learning_rate=1e-4)
     
         def event_handler(event):
             if isinstance(event, paddle.event.EndIteration):
    -            if event.batch_id % 100 == 0:
    +            if event.batch_id % 10 == 0:
                     print "Pass %d, Batch %d, Cost %f, %s" % (
                         event.pass_id, event.batch_id, event.cost, event.metrics)
     
    @@ -93,12 +93,12 @@ def main():
         trn_reader = paddle.reader.batched(
             paddle.reader.shuffle(
                 train_reader("data/pre-wmt14/train/train"), buf_size=8192),
    -        batch_size=10)
    +        batch_size=10000)
     
         trainer.train(
             reader=trn_reader,
             event_handler=event_handler,
    -        num_passes=10000,
    +        num_passes=10,
             reader_dict=reader_dict)
     
     
    diff --git a/demo/seqToseq/seqToseq_net_v2.py b/demo/seqToseq/seqToseq_net_v2.py
    index 7e057e2440..1ac95686b4 100644
    --- a/demo/seqToseq/seqToseq_net_v2.py
    +++ b/demo/seqToseq/seqToseq_net_v2.py
    @@ -14,7 +14,7 @@ def seqToseq_net_v2(source_dict_dim, target_dict_dim):
         #### Encoder
         src_word_id = layer.data(
             name='source_language_word',
    -        type=data_type.dense_vector(source_dict_dim))
    +        type=data_type.integer_value_sequence(source_dict_dim))
         src_embedding = layer.embedding(
             input=src_word_id,
             size=word_vector_dim,
    @@ -67,7 +67,7 @@ def seqToseq_net_v2(source_dict_dim, target_dict_dim):
         trg_embedding = layer.embedding(
             input=layer.data(
                 name='target_language_word',
    -            type=data_type.dense_vector(target_dict_dim)),
    +            type=data_type.integer_value_sequence(target_dict_dim)),
             size=word_vector_dim,
             param_attr=attr.ParamAttr(name='_target_language_embedding'))
         group_inputs.append(trg_embedding)
    @@ -84,7 +84,7 @@ def seqToseq_net_v2(source_dict_dim, target_dict_dim):
     
         lbl = layer.data(
             name='target_language_next_word',
    -        type=data_type.dense_vector(target_dict_dim))
    +        type=data_type.integer_value_sequence(target_dict_dim))
         cost = layer.classification_cost(input=decoder, label=lbl)
     
         return cost
    
    From 61619580355d37c1ef817c98995dfce8a6556fc0 Mon Sep 17 00:00:00 2001
    From: wenboyang 
    Date: Fri, 3 Mar 2017 15:56:43 +0800
    Subject: [PATCH 116/186] update __init__.py
    
    I use pre-commit check all file and report is the passed.
    But it is not passed in Travis, so I update __init__.py
    ---
     python/paddle/v2/dataset/__init__.py | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py
    index fba76b202e..82f11a7c41 100644
    --- a/python/paddle/v2/dataset/__init__.py
    +++ b/python/paddle/v2/dataset/__init__.py
    @@ -24,4 +24,4 @@ import sentiment
     __all__ = [
         'mnist', 'imikolov', 'imdb', 'cifar', 'movielens', 'conll05', 'sentiment'
         'uci_housing'
    -]
    \ No newline at end of file
    +]
    
    From a6364f9e6a84f3d29876c5ad286acc1e86f7fe1f Mon Sep 17 00:00:00 2001
    From: qiaolongfei 
    Date: Fri, 3 Mar 2017 16:27:29 +0800
    Subject: [PATCH 117/186] change batch_size to 5
    
    ---
     demo/seqToseq/api_train_v2.py | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py
    index bdcf3a5af0..74ae1cf9ec 100644
    --- a/demo/seqToseq/api_train_v2.py
    +++ b/demo/seqToseq/api_train_v2.py
    @@ -93,12 +93,12 @@ def main():
         trn_reader = paddle.reader.batched(
             paddle.reader.shuffle(
                 train_reader("data/pre-wmt14/train/train"), buf_size=8192),
    -        batch_size=10000)
    +        batch_size=5)
     
         trainer.train(
             reader=trn_reader,
             event_handler=event_handler,
    -        num_passes=10,
    +        num_passes=10000,
             reader_dict=reader_dict)
     
     
    
    From 1d2025c99cd7b21f3c6657244b7cdce8b8465380 Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Fri, 3 Mar 2017 18:00:26 +0800
    Subject: [PATCH 118/186] Use the sequence_conv_pool define inside the
     networks.py
    
    ---
     demo/sentiment/train_v2.py      | 195 ++++++++++----------------------
     python/paddle/v2/config_base.py |   2 +
     2 files changed, 59 insertions(+), 138 deletions(-)
    
    diff --git a/demo/sentiment/train_v2.py b/demo/sentiment/train_v2.py
    index 0fa7494853..3a266e74ea 100644
    --- a/demo/sentiment/train_v2.py
    +++ b/demo/sentiment/train_v2.py
    @@ -1,126 +1,40 @@
    +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
    +#
    +# Licensed under the Apache License, Version 2.0 (the "License");
    +# you may not use this file except in compliance with the License.
    +# You may obtain a copy of the License at
    +#
    +#     http://www.apache.org/licenses/LICENSE-2.0
    +#
    +# Unless required by applicable law or agreed to in writing, software
    +# distributed under the License is distributed on an "AS IS" BASIS,
    +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +# See the License for the specific language governing permissions and
    +# limitations under the License.
    +
     import sys
    -from os.path import join as join_path
     import paddle.trainer_config_helpers.attrs as attrs
     from paddle.trainer_config_helpers.poolings import MaxPooling
    -import paddle.v2.layer as layer
    -import paddle.v2.activation as activation
    -import paddle.v2.data_type as data_type
    -import paddle.v2.dataset.imdb as imdb
     import paddle.v2 as paddle
     
     
    -def sequence_conv_pool(input,
    -                       input_size,
    -                       context_len,
    -                       hidden_size,
    -                       name=None,
    -                       context_start=None,
    -                       pool_type=None,
    -                       context_proj_layer_name=None,
    -                       context_proj_param_attr=False,
    -                       fc_layer_name=None,
    -                       fc_param_attr=None,
    -                       fc_bias_attr=None,
    -                       fc_act=None,
    -                       pool_bias_attr=None,
    -                       fc_attr=None,
    -                       context_attr=None,
    -                       pool_attr=None):
    -    """
    -    Text convolution pooling layers helper.
    -
    -    Text input => Context Projection => FC Layer => Pooling => Output.
    -
    -    :param name: name of output layer(pooling layer name)
    -    :type name: basestring
    -    :param input: name of input layer
    -    :type input: LayerOutput
    -    :param context_len: context projection length. See
    -                        context_projection's document.
    -    :type context_len: int
    -    :param hidden_size: FC Layer size.
    -    :type hidden_size: int
    -    :param context_start: context projection length. See
    -                          context_projection's context_start.
    -    :type context_start: int or None
    -    :param pool_type: pooling layer type. See pooling_layer's document.
    -    :type pool_type: BasePoolingType.
    -    :param context_proj_layer_name: context projection layer name.
    -                                    None if user don't care.
    -    :type context_proj_layer_name: basestring
    -    :param context_proj_param_attr: context projection parameter attribute.
    -                                    None if user don't care.
    -    :type context_proj_param_attr: ParameterAttribute or None.
    -    :param fc_layer_name: fc layer name. None if user don't care.
    -    :type fc_layer_name: basestring
    -    :param fc_param_attr: fc layer parameter attribute. None if user don't care.
    -    :type fc_param_attr: ParameterAttribute or None
    -    :param fc_bias_attr: fc bias parameter attribute. False if no bias,
    -                         None if user don't care.
    -    :type fc_bias_attr: ParameterAttribute or None
    -    :param fc_act: fc layer activation type. None means tanh
    -    :type fc_act: BaseActivation
    -    :param pool_bias_attr: pooling layer bias attr. None if don't care.
    -                           False if no bias.
    -    :type pool_bias_attr: ParameterAttribute or None.
    -    :param fc_attr: fc layer extra attribute.
    -    :type fc_attr: ExtraLayerAttribute
    -    :param context_attr: context projection layer extra attribute.
    -    :type context_attr: ExtraLayerAttribute
    -    :param pool_attr: pooling layer extra attribute.
    -    :type pool_attr: ExtraLayerAttribute
    -    :return: output layer name.
    -    :rtype: LayerOutput
    -    """
    -    # Set Default Value to param
    -    context_proj_layer_name = "%s_conv_proj" % name \
    -        if context_proj_layer_name is None else context_proj_layer_name
    -
    -    with layer.mixed(
    -            name=context_proj_layer_name,
    -            size=input_size * context_len,
    -            act=activation.Linear(),
    -            layer_attr=context_attr) as m:
    -        m += layer.context_projection(
    -            input=input,
    -            context_len=context_len,
    -            context_start=context_start,
    -            padding_attr=context_proj_param_attr)
    -
    -    fc_layer_name = "%s_conv_fc" % name \
    -        if fc_layer_name is None else fc_layer_name
    -    fl = layer.fc(name=fc_layer_name,
    -                  input=m,
    -                  size=hidden_size,
    -                  act=fc_act,
    -                  layer_attr=fc_attr,
    -                  param_attr=fc_param_attr,
    -                  bias_attr=fc_bias_attr)
    -
    -    return layer.pooling(
    -        name=name,
    -        input=fl,
    -        pooling_type=pool_type,
    -        bias_attr=pool_bias_attr,
    -        layer_attr=pool_attr)
    -
    -
     def convolution_net(input_dim,
                         class_dim=2,
                         emb_dim=128,
                         hid_dim=128,
                         is_predict=False):
    -    data = layer.data("word", data_type.integer_value_sequence(input_dim))
    -    emb = layer.embedding(input=data, size=emb_dim)
    -    conv_3 = sequence_conv_pool(
    -        input=emb, input_size=emb_dim, context_len=3, hidden_size=hid_dim)
    -    conv_4 = sequence_conv_pool(
    -        input=emb, input_size=emb_dim, context_len=4, hidden_size=hid_dim)
    -    output = layer.fc(input=[conv_3, conv_4],
    -                      size=class_dim,
    -                      act=activation.Softmax())
    -    lbl = layer.data("label", data_type.integer_value(2))
    -    cost = layer.classification_cost(input=output, label=lbl)
    +    data = paddle.layer.data("word",
    +                             paddle.data_type.integer_value_sequence(input_dim))
    +    emb = paddle.layer.embedding(input=data, size=emb_dim)
    +    conv_3 = paddle.networks.sequence_conv_pool(
    +        input=emb, context_len=3, hidden_size=hid_dim)
    +    conv_4 = paddle.networks.sequence_conv_pool(
    +        input=emb, context_len=4, hidden_size=hid_dim)
    +    output = paddle.layer.fc(input=[conv_3, conv_4],
    +                             size=class_dim,
    +                             act=paddle.activation.Softmax())
    +    lbl = paddle.layer.data("label", paddle.data_type.integer_value(2))
    +    cost = paddle.layer.classification_cost(input=output, label=lbl)
         return cost
     
     
    @@ -152,24 +66,28 @@ def stacked_lstm_net(input_dim,
         lstm_para_attr = attrs.ParameterAttribute(initial_std=0., learning_rate=1.)
         para_attr = [fc_para_attr, lstm_para_attr]
         bias_attr = attrs.ParameterAttribute(initial_std=0., l2_rate=0.)
    -    relu = activation.Relu()
    -    linear = activation.Linear()
    -
    -    data = layer.data("word", data_type.integer_value_sequence(input_dim))
    -    emb = layer.embedding(input=data, size=emb_dim)
    -
    -    fc1 = layer.fc(input=emb, size=hid_dim, act=linear, bias_attr=bias_attr)
    -    lstm1 = layer.lstmemory(
    +    relu = paddle.activation.Relu()
    +    linear = paddle.activation.Linear()
    +
    +    data = paddle.layer.data("word",
    +                             paddle.data_type.integer_value_sequence(input_dim))
    +    emb = paddle.layer.embedding(input=data, size=emb_dim)
    +
    +    fc1 = paddle.layer.fc(input=emb,
    +                          size=hid_dim,
    +                          act=linear,
    +                          bias_attr=bias_attr)
    +    lstm1 = paddle.layer.lstmemory(
             input=fc1, act=relu, bias_attr=bias_attr, layer_attr=layer_attr)
     
         inputs = [fc1, lstm1]
         for i in range(2, stacked_num + 1):
    -        fc = layer.fc(input=inputs,
    -                      size=hid_dim,
    -                      act=linear,
    -                      param_attr=para_attr,
    -                      bias_attr=bias_attr)
    -        lstm = layer.lstmemory(
    +        fc = paddle.layer.fc(input=inputs,
    +                             size=hid_dim,
    +                             act=linear,
    +                             param_attr=para_attr,
    +                             bias_attr=bias_attr)
    +        lstm = paddle.layer.lstmemory(
                 input=fc,
                 reverse=(i % 2) == 0,
                 act=relu,
    @@ -177,16 +95,16 @@ def stacked_lstm_net(input_dim,
                 layer_attr=layer_attr)
             inputs = [fc, lstm]
     
    -    fc_last = layer.pooling(input=inputs[0], pooling_type=MaxPooling())
    -    lstm_last = layer.pooling(input=inputs[1], pooling_type=MaxPooling())
    -    output = layer.fc(input=[fc_last, lstm_last],
    -                      size=class_dim,
    -                      act=activation.Softmax(),
    -                      bias_attr=bias_attr,
    -                      param_attr=para_attr)
    +    fc_last = paddle.layer.pooling(input=inputs[0], pooling_type=MaxPooling())
    +    lstm_last = paddle.layer.pooling(input=inputs[1], pooling_type=MaxPooling())
    +    output = paddle.layer.fc(input=[fc_last, lstm_last],
    +                             size=class_dim,
    +                             act=paddle.activation.Softmax(),
    +                             bias_attr=bias_attr,
    +                             param_attr=para_attr)
     
    -    lbl = layer.data("label", data_type.integer_value(2))
    -    cost = layer.classification_cost(input=output, label=lbl)
    +    lbl = paddle.layer.data("label", paddle.data_type.integer_value(2))
    +    cost = paddle.layer.classification_cost(input=output, label=lbl)
         return cost
     
     
    @@ -196,7 +114,7 @@ if __name__ == '__main__':
     
         # network config
         print 'load dictionary...'
    -    word_dict = imdb.word_dict()
    +    word_dict = paddle.dataset.imdb.word_dict()
         dict_dim = len(word_dict)
         class_dim = 2
     
    @@ -226,7 +144,8 @@ if __name__ == '__main__':
             if isinstance(event, paddle.event.EndPass):
                 result = trainer.test(
                     reader=paddle.reader.batched(
    -                    lambda: imdb.test(word_dict), batch_size=128),
    +                    lambda: paddle.dataset.imdb.test(word_dict),
    +                    batch_size=128),
                     reader_dict={'word': 0,
                                  'label': 1})
                 print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)
    @@ -239,7 +158,7 @@ if __name__ == '__main__':
         trainer.train(
             reader=paddle.reader.batched(
                 paddle.reader.shuffle(
    -                lambda: imdb.train(word_dict), buf_size=1000),
    +                lambda: paddle.dataset.imdb.train(word_dict), buf_size=1000),
                 batch_size=100),
             event_handler=event_handler,
             reader_dict={'word': 0,
    diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py
    index fa2ccec6c3..0fc711e99a 100644
    --- a/python/paddle/v2/config_base.py
    +++ b/python/paddle/v2/config_base.py
    @@ -93,6 +93,8 @@ def __convert_to_v2__(method_name, parent_names, is_default_name=True):
     
                 name = kwargs.get('name', None)
                 super(V2LayerImpl, self).__init__(name, parent_layers)
    +            if kwargs.has_key('size'):
    +                self.size = kwargs['size']
                 self.__other_kwargs__ = other_kwargs
     
             if wrapper is not None:
    
    From 84ce706750ba4e75e55fe75cb13467c5545ad945 Mon Sep 17 00:00:00 2001
    From: hedaoyuan 
    Date: Fri, 3 Mar 2017 18:14:11 +0800
    Subject: [PATCH 119/186] Restore config_base.py
    
    ---
     python/paddle/v2/config_base.py | 2 --
     1 file changed, 2 deletions(-)
    
    diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py
    index 0fc711e99a..fa2ccec6c3 100644
    --- a/python/paddle/v2/config_base.py
    +++ b/python/paddle/v2/config_base.py
    @@ -93,8 +93,6 @@ def __convert_to_v2__(method_name, parent_names, is_default_name=True):
     
                 name = kwargs.get('name', None)
                 super(V2LayerImpl, self).__init__(name, parent_layers)
    -            if kwargs.has_key('size'):
    -                self.size = kwargs['size']
                 self.__other_kwargs__ = other_kwargs
     
             if wrapper is not None:
    
    From 6b0961a3c17f3f9a32a7faf063731e05732f23a1 Mon Sep 17 00:00:00 2001
    From: Yu Yang 
    Date: Fri, 3 Mar 2017 14:41:45 +0800
    Subject: [PATCH 120/186] auto deployment paddle documentation
    
    * Change build process to generate v2 documentation
    * Add directory for v2 api
    * Correct sphinx index soft-link
    ---
     cmake/FindSphinx.cmake                        |  2 +-
     doc/api/index_cn.rst                          | 39 +----------
     doc/api/index_en.rst                          | 29 +-------
     .../data_provider/dataprovider_cn.rst         |  0
     .../data_provider/dataprovider_en.rst         |  0
     .../data_provider/pydataprovider2_cn.rst      |  0
     .../data_provider/pydataprovider2_en.rst      |  0
     .../data_provider/src/mnist_config.py         |  0
     .../data_provider/src/mnist_provider.dict.py  |  0
     .../data_provider/src/mnist_train.txt         |  0
     .../data_provider/src/sentimental_config.py   |  0
     .../data_provider/src/sentimental_provider.py |  0
     .../data_provider/src/sentimental_train.txt   |  0
     doc/api/{ => v1}/data_provider/src/train.list |  0
     doc/api/v1/index_cn.rst                       | 37 ++++++++++
     doc/api/v1/index_en.rst                       | 37 ++++++++++
     .../{ => v1}/predict/src/predict_sample.py    |  0
     .../{ => v1}/predict/swig_py_paddle_cn.rst    |  0
     .../{ => v1}/predict/swig_py_paddle_en.rst    |  0
     .../trainer_config_helpers/activations.rst    |  0
     .../{ => v1}/trainer_config_helpers/attrs.rst |  0
     .../trainer_config_helpers/data_sources.rst   |  0
     .../trainer_config_helpers/evaluators.rst     |  0
     .../trainer_config_helpers/layers.rst         |  0
     .../trainer_config_helpers/networks.rst       |  0
     .../trainer_config_helpers/optimizers.rst     |  0
     .../trainer_config_helpers/poolings.rst       |  0
     doc/api/v2/model_configs.rst                  |  6 ++
     doc/templates/conf.py.cn.in                   |  8 ++-
     doc/templates/conf.py.en.in                   | 10 ++-
     doc/tutorials/quick_start/index_en.md         |  8 +--
     paddle/scripts/travis/docs.sh                 | 46 +++++++++----
     python/paddle/v2/layer.py                     | 69 +++++--------------
     33 files changed, 152 insertions(+), 139 deletions(-)
     rename doc/api/{ => v1}/data_provider/dataprovider_cn.rst (100%)
     rename doc/api/{ => v1}/data_provider/dataprovider_en.rst (100%)
     rename doc/api/{ => v1}/data_provider/pydataprovider2_cn.rst (100%)
     rename doc/api/{ => v1}/data_provider/pydataprovider2_en.rst (100%)
     rename doc/api/{ => v1}/data_provider/src/mnist_config.py (100%)
     rename doc/api/{ => v1}/data_provider/src/mnist_provider.dict.py (100%)
     rename doc/api/{ => v1}/data_provider/src/mnist_train.txt (100%)
     rename doc/api/{ => v1}/data_provider/src/sentimental_config.py (100%)
     rename doc/api/{ => v1}/data_provider/src/sentimental_provider.py (100%)
     rename doc/api/{ => v1}/data_provider/src/sentimental_train.txt (100%)
     rename doc/api/{ => v1}/data_provider/src/train.list (100%)
     create mode 100644 doc/api/v1/index_cn.rst
     create mode 100644 doc/api/v1/index_en.rst
     rename doc/api/{ => v1}/predict/src/predict_sample.py (100%)
     rename doc/api/{ => v1}/predict/swig_py_paddle_cn.rst (100%)
     rename doc/api/{ => v1}/predict/swig_py_paddle_en.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/activations.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/attrs.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/data_sources.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/evaluators.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/layers.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/networks.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/optimizers.rst (100%)
     rename doc/api/{ => v1}/trainer_config_helpers/poolings.rst (100%)
     create mode 100644 doc/api/v2/model_configs.rst
    
    diff --git a/cmake/FindSphinx.cmake b/cmake/FindSphinx.cmake
    index d319442ef1..1c29cb22a3 100644
    --- a/cmake/FindSphinx.cmake
    +++ b/cmake/FindSphinx.cmake
    @@ -72,7 +72,7 @@ function( Sphinx_add_target target_name builder conf cache source destination )
         ${source}
         ${destination}
         COMMENT "Generating sphinx documentation: ${builder}"
    -    COMMAND ln -sf ${destination}/index_*.html ${destination}/index.html
    +    COMMAND cd ${destination} && ln -s ./index_*.html index.html
         )
     
       set_property(
    diff --git a/doc/api/index_cn.rst b/doc/api/index_cn.rst
    index 3718cd73a2..874dd9cb22 100644
    --- a/doc/api/index_cn.rst
    +++ b/doc/api/index_cn.rst
    @@ -1,37 +1,2 @@
    -API中文手册
    -============
    -
    -DataProvider API
    -----------------
    -
    -..  toctree::
    -    :maxdepth: 1
    -
    -    data_provider/dataprovider_cn.rst
    -    data_provider/pydataprovider2_cn.rst
    -
    -..  _api_trainer_config:
    -
    -Model Config API
    -----------------
    -
    -..  toctree::
    -    :maxdepth: 1
    -
    -    trainer_config_helpers/optimizers.rst
    -    trainer_config_helpers/data_sources.rst
    -    trainer_config_helpers/layers.rst
    -    trainer_config_helpers/activations.rst 
    -    trainer_config_helpers/poolings.rst
    -    trainer_config_helpers/networks.rst
    -    trainer_config_helpers/evaluators.rst
    -    trainer_config_helpers/attrs.rst
    -
    -
    -Applications API
    -----------------
    -
    -..  toctree::
    -    :maxdepth: 1
    -
    -    predict/swig_py_paddle_cn.rst
    +API
    +===
    \ No newline at end of file
    diff --git a/doc/api/index_en.rst b/doc/api/index_en.rst
    index 10c297a71d..b7f470e1f8 100644
    --- a/doc/api/index_en.rst
    +++ b/doc/api/index_en.rst
    @@ -1,37 +1,10 @@
     API
     ===
     
    -DataProvider API
    -----------------
    -
    -..  toctree::
    -    :maxdepth: 1
    -
    -    data_provider/dataprovider_en.rst
    -    data_provider/pydataprovider2_en.rst
    -
    -..  _api_trainer_config:
    -
     Model Config API
     ----------------
     
     ..  toctree::
         :maxdepth: 1
     
    -    trainer_config_helpers/optimizers.rst
    -    trainer_config_helpers/data_sources.rst
    -    trainer_config_helpers/layers.rst
    -    trainer_config_helpers/activations.rst 
    -    trainer_config_helpers/poolings.rst
    -    trainer_config_helpers/networks.rst
    -    trainer_config_helpers/evaluators.rst
    -    trainer_config_helpers/attrs.rst
    -
    -
    -Applications API
    -----------------
    -
    -..  toctree::
    -    :maxdepth: 1
    -
    -    predict/swig_py_paddle_en.rst
    +    v2/model_configs.rst
    \ No newline at end of file
    diff --git a/doc/api/data_provider/dataprovider_cn.rst b/doc/api/v1/data_provider/dataprovider_cn.rst
    similarity index 100%
    rename from doc/api/data_provider/dataprovider_cn.rst
    rename to doc/api/v1/data_provider/dataprovider_cn.rst
    diff --git a/doc/api/data_provider/dataprovider_en.rst b/doc/api/v1/data_provider/dataprovider_en.rst
    similarity index 100%
    rename from doc/api/data_provider/dataprovider_en.rst
    rename to doc/api/v1/data_provider/dataprovider_en.rst
    diff --git a/doc/api/data_provider/pydataprovider2_cn.rst b/doc/api/v1/data_provider/pydataprovider2_cn.rst
    similarity index 100%
    rename from doc/api/data_provider/pydataprovider2_cn.rst
    rename to doc/api/v1/data_provider/pydataprovider2_cn.rst
    diff --git a/doc/api/data_provider/pydataprovider2_en.rst b/doc/api/v1/data_provider/pydataprovider2_en.rst
    similarity index 100%
    rename from doc/api/data_provider/pydataprovider2_en.rst
    rename to doc/api/v1/data_provider/pydataprovider2_en.rst
    diff --git a/doc/api/data_provider/src/mnist_config.py b/doc/api/v1/data_provider/src/mnist_config.py
    similarity index 100%
    rename from doc/api/data_provider/src/mnist_config.py
    rename to doc/api/v1/data_provider/src/mnist_config.py
    diff --git a/doc/api/data_provider/src/mnist_provider.dict.py b/doc/api/v1/data_provider/src/mnist_provider.dict.py
    similarity index 100%
    rename from doc/api/data_provider/src/mnist_provider.dict.py
    rename to doc/api/v1/data_provider/src/mnist_provider.dict.py
    diff --git a/doc/api/data_provider/src/mnist_train.txt b/doc/api/v1/data_provider/src/mnist_train.txt
    similarity index 100%
    rename from doc/api/data_provider/src/mnist_train.txt
    rename to doc/api/v1/data_provider/src/mnist_train.txt
    diff --git a/doc/api/data_provider/src/sentimental_config.py b/doc/api/v1/data_provider/src/sentimental_config.py
    similarity index 100%
    rename from doc/api/data_provider/src/sentimental_config.py
    rename to doc/api/v1/data_provider/src/sentimental_config.py
    diff --git a/doc/api/data_provider/src/sentimental_provider.py b/doc/api/v1/data_provider/src/sentimental_provider.py
    similarity index 100%
    rename from doc/api/data_provider/src/sentimental_provider.py
    rename to doc/api/v1/data_provider/src/sentimental_provider.py
    diff --git a/doc/api/data_provider/src/sentimental_train.txt b/doc/api/v1/data_provider/src/sentimental_train.txt
    similarity index 100%
    rename from doc/api/data_provider/src/sentimental_train.txt
    rename to doc/api/v1/data_provider/src/sentimental_train.txt
    diff --git a/doc/api/data_provider/src/train.list b/doc/api/v1/data_provider/src/train.list
    similarity index 100%
    rename from doc/api/data_provider/src/train.list
    rename to doc/api/v1/data_provider/src/train.list
    diff --git a/doc/api/v1/index_cn.rst b/doc/api/v1/index_cn.rst
    new file mode 100644
    index 0000000000..3718cd73a2
    --- /dev/null
    +++ b/doc/api/v1/index_cn.rst
    @@ -0,0 +1,37 @@
    +API中文手册
    +============
    +
    +DataProvider API
    +----------------
    +
    +..  toctree::
    +    :maxdepth: 1
    +
    +    data_provider/dataprovider_cn.rst
    +    data_provider/pydataprovider2_cn.rst
    +
    +..  _api_trainer_config:
    +
    +Model Config API
    +----------------
    +
    +..  toctree::
    +    :maxdepth: 1
    +
    +    trainer_config_helpers/optimizers.rst
    +    trainer_config_helpers/data_sources.rst
    +    trainer_config_helpers/layers.rst
    +    trainer_config_helpers/activations.rst 
    +    trainer_config_helpers/poolings.rst
    +    trainer_config_helpers/networks.rst
    +    trainer_config_helpers/evaluators.rst
    +    trainer_config_helpers/attrs.rst
    +
    +
    +Applications API
    +----------------
    +
    +..  toctree::
    +    :maxdepth: 1
    +
    +    predict/swig_py_paddle_cn.rst
    diff --git a/doc/api/v1/index_en.rst b/doc/api/v1/index_en.rst
    new file mode 100644
    index 0000000000..10c297a71d
    --- /dev/null
    +++ b/doc/api/v1/index_en.rst
    @@ -0,0 +1,37 @@
    +API
    +===
    +
    +DataProvider API
    +----------------
    +
    +..  toctree::
    +    :maxdepth: 1
    +
    +    data_provider/dataprovider_en.rst
    +    data_provider/pydataprovider2_en.rst
    +
    +..  _api_trainer_config:
    +
    +Model Config API
    +----------------
    +
    +..  toctree::
    +    :maxdepth: 1
    +
    +    trainer_config_helpers/optimizers.rst
    +    trainer_config_helpers/data_sources.rst
    +    trainer_config_helpers/layers.rst
    +    trainer_config_helpers/activations.rst 
    +    trainer_config_helpers/poolings.rst
    +    trainer_config_helpers/networks.rst
    +    trainer_config_helpers/evaluators.rst
    +    trainer_config_helpers/attrs.rst
    +
    +
    +Applications API
    +----------------
    +
    +..  toctree::
    +    :maxdepth: 1
    +
    +    predict/swig_py_paddle_en.rst
    diff --git a/doc/api/predict/src/predict_sample.py b/doc/api/v1/predict/src/predict_sample.py
    similarity index 100%
    rename from doc/api/predict/src/predict_sample.py
    rename to doc/api/v1/predict/src/predict_sample.py
    diff --git a/doc/api/predict/swig_py_paddle_cn.rst b/doc/api/v1/predict/swig_py_paddle_cn.rst
    similarity index 100%
    rename from doc/api/predict/swig_py_paddle_cn.rst
    rename to doc/api/v1/predict/swig_py_paddle_cn.rst
    diff --git a/doc/api/predict/swig_py_paddle_en.rst b/doc/api/v1/predict/swig_py_paddle_en.rst
    similarity index 100%
    rename from doc/api/predict/swig_py_paddle_en.rst
    rename to doc/api/v1/predict/swig_py_paddle_en.rst
    diff --git a/doc/api/trainer_config_helpers/activations.rst b/doc/api/v1/trainer_config_helpers/activations.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/activations.rst
    rename to doc/api/v1/trainer_config_helpers/activations.rst
    diff --git a/doc/api/trainer_config_helpers/attrs.rst b/doc/api/v1/trainer_config_helpers/attrs.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/attrs.rst
    rename to doc/api/v1/trainer_config_helpers/attrs.rst
    diff --git a/doc/api/trainer_config_helpers/data_sources.rst b/doc/api/v1/trainer_config_helpers/data_sources.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/data_sources.rst
    rename to doc/api/v1/trainer_config_helpers/data_sources.rst
    diff --git a/doc/api/trainer_config_helpers/evaluators.rst b/doc/api/v1/trainer_config_helpers/evaluators.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/evaluators.rst
    rename to doc/api/v1/trainer_config_helpers/evaluators.rst
    diff --git a/doc/api/trainer_config_helpers/layers.rst b/doc/api/v1/trainer_config_helpers/layers.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/layers.rst
    rename to doc/api/v1/trainer_config_helpers/layers.rst
    diff --git a/doc/api/trainer_config_helpers/networks.rst b/doc/api/v1/trainer_config_helpers/networks.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/networks.rst
    rename to doc/api/v1/trainer_config_helpers/networks.rst
    diff --git a/doc/api/trainer_config_helpers/optimizers.rst b/doc/api/v1/trainer_config_helpers/optimizers.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/optimizers.rst
    rename to doc/api/v1/trainer_config_helpers/optimizers.rst
    diff --git a/doc/api/trainer_config_helpers/poolings.rst b/doc/api/v1/trainer_config_helpers/poolings.rst
    similarity index 100%
    rename from doc/api/trainer_config_helpers/poolings.rst
    rename to doc/api/v1/trainer_config_helpers/poolings.rst
    diff --git a/doc/api/v2/model_configs.rst b/doc/api/v2/model_configs.rst
    new file mode 100644
    index 0000000000..a9f33b33ef
    --- /dev/null
    +++ b/doc/api/v2/model_configs.rst
    @@ -0,0 +1,6 @@
    +======
    +Layers
    +======
    +
    +..  automodule:: paddle.v2.layer
    +    :members:
    diff --git a/doc/templates/conf.py.cn.in b/doc/templates/conf.py.cn.in
    index 418d718fbd..6dc48704bc 100644
    --- a/doc/templates/conf.py.cn.in
    +++ b/doc/templates/conf.py.cn.in
    @@ -15,13 +15,19 @@ import sys
     import os, subprocess
     import shlex
     from recommonmark import parser, transform
    +try:
    +   import py_paddle
    +   import paddle
    +   import paddle.v2
    +except ImportError:
    +   print("Must install paddle python package before generating documentation")
    +   sys.exit(1)
     
     MarkdownParser = parser.CommonMarkParser
     AutoStructify = transform.AutoStructify
     # If extensions (or modules to document with autodoc) are in another directory,
     # add these directories to sys.path here. If the directory is relative to the
     # documentation root, use os.path.abspath to make it absolute, like shown here.
    -sys.path.insert(0, '@PROJ_ROOT@/python')
     templates_path = ["@PROJ_ROOT@/doc_theme/templates"]
     
     # -- General configuration ------------------------------------------------
    diff --git a/doc/templates/conf.py.en.in b/doc/templates/conf.py.en.in
    index e96c25cb75..b477f0120c 100644
    --- a/doc/templates/conf.py.en.in
    +++ b/doc/templates/conf.py.en.in
    @@ -15,14 +15,20 @@ import sys
     import os, subprocess
     import shlex
     from recommonmark import parser, transform
    +try:
    +   import py_paddle
    +   import paddle
    +   import paddle.v2
    +except ImportError:
    +   print("Must install paddle python package before generating documentation")
    +   sys.exit(1)
    +
     
     MarkdownParser = parser.CommonMarkParser
     AutoStructify = transform.AutoStructify
     # If extensions (or modules to document with autodoc) are in another directory,
     # add these directories to sys.path here. If the directory is relative to the
     # documentation root, use os.path.abspath to make it absolute, like shown here.
    -sys.path.insert(0, '@PROJ_ROOT@/python')
    -
     templates_path = ["@PROJ_ROOT@/doc_theme/templates"]
     
     # -- General configuration ------------------------------------------------
    diff --git a/doc/tutorials/quick_start/index_en.md b/doc/tutorials/quick_start/index_en.md
    index 70dec2eb2a..ca110431cf 100644
    --- a/doc/tutorials/quick_start/index_en.md
    +++ b/doc/tutorials/quick_start/index_en.md
    @@ -156,14 +156,14 @@ define_py_data_sources2(train_list='data/train.list',
                             obj="process",
                             args={"dictionary": word_dict})
     ```
    -You can refer to the following link for more detailed examples and data formats: PyDataProvider2.
    +You can refer to the following link for more detailed examples and data formats: PyDataProvider2.
     
     ## Network Architecture
     We will describe four kinds of network architectures in this section.
     
    ![](./src/PipelineNetwork_en.jpg)
    First, you will build a logistic regression model. Later, you will also get chance to build other more powerful network architectures. -For more detailed documentation, you could refer to: layer documentation. All configuration files are in `demo/quick_start` directory. +For more detailed documentation, you could refer to: layer documentation. All configuration files are in `demo/quick_start` directory. ### Logistic Regression The architecture is illustrated in the following picture: @@ -366,7 +366,7 @@ You can use single layer LSTM model with Dropout for our text classification pro
    ## Optimization Algorithm -Optimization algorithms include Momentum, RMSProp, AdaDelta, AdaGrad, Adam, and Adamax. You can use Adam optimization method here, with L2 regularization and gradient clipping, because Adam has been proved to work very well for training recurrent neural network. +Optimization algorithms include Momentum, RMSProp, AdaDelta, AdaGrad, Adam, and Adamax. You can use Adam optimization method here, with L2 regularization and gradient clipping, because Adam has been proved to work very well for training recurrent neural network. ```python settings(batch_size=128, @@ -407,7 +407,7 @@ paddle train \ --init_model_path=./output/pass-0000x ``` -We will give an example of performing prediction using Recurrent model on a dataset with no labels. You can refer to Python Prediction API tutorial,or other demo for the prediction process using Python. You can also use the following script for inference or evaluation. +We will give an example of performing prediction using Recurrent model on a dataset with no labels. You can refer to Python Prediction API tutorial,or other demo for the prediction process using Python. You can also use the following script for inference or evaluation. inference script (predict.sh): diff --git a/paddle/scripts/travis/docs.sh b/paddle/scripts/travis/docs.sh index 6b43cad20b..53e998ef6c 100755 --- a/paddle/scripts/travis/docs.sh +++ b/paddle/scripts/travis/docs.sh @@ -2,8 +2,12 @@ # Add set -e, cd to directory. source ./common.sh - # Compile Documentation only. +cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran-4.8 -DWITH_GPU=OFF -DWITH_DOC=OFF -DWITH_STYLE_CHECK=OFF ${EXTRA_CMAKE_OPTS} +mkdir output +make DESTDIR=./output install -j `nproc` +pip install ./output/usr/local/opt/paddle/share/wheels/* +rm -rf * cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_Fortran_COMPILER=/usr/bin/gfortran-4.8 -DWITH_GPU=OFF -DWITH_DOC=ON ${EXTRA_CMAKE_OPTS} make paddle_docs paddle_docs_cn @@ -25,26 +29,41 @@ TARGET_BRANCH="gh-pages" # Only deploy master branch to build latest documentation. SOURCE_BRANCH="master" -# If is not a Github pull request, and in master branch. -if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then - exit 0 -fi - # Clone the repo to output directory git clone $REPO output cd output -# checkout github page branch -git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH +function deploy_docs() { + SOURCE_BRANCH=$1 + DIR=$2 + # If is not a Github pull request + if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then + exit 0 + fi + # If it is not watched branch. + if [ "$TRAVIS_BRANCH" != "$SOURCE_BRANCH" ]; then + return + fi -# remove old docs. mv new docs. -rm -rf doc doc_cn -mv ../doc/cn/html doc_cn -mv ../doc/en/html doc + # checkout github page branch + git checkout $TARGET_BRANCH || git checkout --orphan $TARGET_BRANCH + + mkdir -p ${DIR} + # remove old docs. mv new docs. + set +e + rm -rf ${DIR}/doc ${DIR}/doc_cn + set -e + mv ../doc/cn/html ${DIR}/doc_cn + mv ../doc/en/html ${DIR}/doc + git add . +} + +deploy_docs "master" "." +deploy_docs "develop" "./develop/" # Check is there anything changed. set +e -git diff --exit-code >/dev/null +git diff --cached --exit-code >/dev/null if [ $? -eq 0 ]; then echo "No changes to the output on this push; exiting." exit 0 @@ -57,7 +76,6 @@ if [ -n $SSL_KEY ]; then # Only push updated docs for github.com/PaddlePaddle/P git config user.name "Travis CI" git config user.email "paddle-dev@baidu.com" git commit -m "Deploy to GitHub Pages: ${SHA}" - # Set ssh private key openssl aes-256-cbc -K $SSL_KEY -iv $SSL_IV -in ../../paddle/scripts/travis/deploy_key.enc -out deploy_key -d chmod 600 deploy_key diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 67111f1315..0aa5391910 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -12,58 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -Before this new package paddle.v2.layer, users would need to use functions -in paddle.trainer_config_helpers.layers to configure networks. - -The Old Way: -========= -This old way requires that the creation of a network be defined in a Python -function, say network_config, and that this Python function being passed to -paddle.trainer_config_helpers.parse_network_config for the creation of -protobuf message description of this network. - -```python -def network_config(): - img = paddle.trainer_config_helpers.data_layer(name="pixel", size=784) - inference = paddle.trainer_config_helpers.fc_layer( - input=img, - size=10, - act=paddle.trainer_config_helpers.SoftmaxActivation()) - cost = paddle.trainer_config_helpers.classification_cost( - input=inference, - label=paddle.trainer_config_helpers.data_layer(name="label", size=10)) - -proto_desc = parse_network_config(network_config) -``` - -When parse_network_config executes network_config, those layer definition -functions like data_layer and fc_layer would change some Python global variables, -so that after the execution, parse_network_config could collect information from -these global variables and generates the protobuf message. - - - -The New Way: -========= -In this PR, we define a function in paddle.v2.layer which creates a Python -class for each layer creation function in paddle.trainer_config_helpers.layers. -Users can use create a network as follows: - -```python -img = paddle.v2.layer.data(name="pixel", size=784) -inference = paddle.v2.layer.fc(input=img, size=10, act=paddle.v2.layer.Softmax()) -cost = paddle.v2.layer.classification( - input=inference, - label=paddle.v2.layer.data(name="label", size=10)) - -parameters = paddle.v2.parameters.create(cost) -``` - -This new way doesn't require those invocations to layer definition functions -to be in a Python function but could be anywhere. - -Also, the creation of a protobuf message is hidden in the invocation of -paddle.v2.parameters.create, no longer exposed to users. +`paddle.v2.layer` is a part of model config packages in paddle.v2. In API v2, +we want to make Paddle a plain Python package. The model config package defined +the way how to configure a neural network topology in Paddle Python code. + +The primary usage shows below. + +.. code-block:: python + + import paddle.v2 as paddle + + img = paddle.layer.data(name='img', type=paddle.data_type.dense_vector(784)) + hidden = paddle.layer.fc(input=img, size=200) + prediction = paddle.layer.fc(input=hidden, size=10, + act=paddle.activation.Softmax()) + + # use prediction instance where needed. + parameters = paddle.v2.parameters.create(cost) """ from config_base import Layer, __convert_to_v2__ import paddle.trainer_config_helpers as conf_helps From 0f7126f2cf939de7d30550a695aa279fad6d34f5 Mon Sep 17 00:00:00 2001 From: Yancey1989 Date: Fri, 3 Mar 2017 20:11:16 +0800 Subject: [PATCH 121/186] Add prepare training data and efk paddle logs --- doc/howto/usage/k8s/k8s_distributed_cn.md | 82 ++++++++++++++------ doc/howto/usage/k8s/src/efk-paddle-logs.png | Bin 0 -> 215352 bytes 2 files changed, 60 insertions(+), 22 deletions(-) create mode 100644 doc/howto/usage/k8s/src/efk-paddle-logs.png diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md index 7213a977b8..8ca158e608 100644 --- a/doc/howto/usage/k8s/k8s_distributed_cn.md +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md @@ -43,22 +43,55 @@ docker push [YOUR_REPO]/paddle:mypaddle 注意上述命令中`[YOUR_REPO]`表示读者所使用的Docker镜像仓库地址,读者需要替换成自己使用的仓库地址。下文使用`[YOUR_REPO]/paddle:mypaddle`这个地址来表示此步骤所构建出的镜像。 -### 上传训练文件 +### 准备训练数据 -本文使用PaddlePaddle官方的[recommendation demo](http://www.paddlepaddle.org/doc/demo/index.html#recommendation)作为这次训练的内容,我们将训练文件与数据放在一个job name命名的目录中,上传到volume所在的共享存储(使用不同分布式存储会有不同的挂载方式,需要要先挂载这个目录,然后拷贝数据)。完成后volume中的文件内容大致如下: +这里我们通过在Kubernetes集群上启动一个Job来下载并切割数据,也可以通过修改[k8s_train](./k8s_train)的内容来定制image. -```bash -[root@paddle-kubernetes-node0 mfs]# tree -d +在启动Job之前,需要根据不同的分布式存储来绑定一个[persistentVolumeClaim](https://kubernetes.io/docs/user-guide/persistent-volumes/),生成的数据将会存储在这个volume下. + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: paddle-data +spec: + template: + metadata: + name: pi + spec: + hostNetwork: true + containers: + - name: paddle-data + image: paddledev/paddle-tutorial:k8s_data + imagePullPolicy: Always + volumeMounts: + - mountPath: "/mnt" + name: nfs + env: + - name: OUT_DIR + value: /mnt/paddle-cluster-job + - name: SPLIT_COUNT + value: "3" + volumes: + - name: nfs + persistentVolumeClaim: + claimName: mfs + restartPolicy: Never +``` + +完成后volume中的文件内容大致如下: +```base +[root@paddle-kubernetes-node0 nfsdir]$ tree -d . -└── paddle-cluster-job - ├── data - │   ├── 0 - │   │ - │   ├── 1 - │   │ - │   └── 2 - ├── output - └── recommendation +`-- paddle-cluster-job + |-- 0 + | `-- data + |-- 1 + | `-- data + |-- 2 + | `-- data + |-- output + |-- quick_start ``` 目录中paddle-cluster-job是本次训练对应的job name,本次训练要求有3个PaddlePaddle节点,在paddle-cluster-job/data目录中存放切分好的数据,文件夹0,1,2分别代表3个节点的trainer_id。recommendation文件夹内存放训练文件,output文件夹存放训练结果与日志。 @@ -118,15 +151,16 @@ spec: `env`字段表示容器的环境变量,我们将`paddle`运行的一些参数通过这种方式传递到容器内。 -`JOB_PATH`表示共享存储挂载的路径,`JOB_NAME`表示job名字,`TRAIN_CONFIG_DIR`表示本次训练文件所在目录,这三个变量组合就可以找到本次训练需要的文件路径。 - -`CONF_PADDLE_NIC`表示`paddle pserver`进程需要的`--nics`参数,即网卡名 - -`CONF_PADDLE_PORT`表示`paddle pserver`的`--port`参数,`CONF_PADDLE_PORTS_NUM`则表示稠密更新的端口数量,也就是`--ports_num`参数。 - -`CONF_PADDLE_PORTS_NUM_SPARSE`表示稀疏更新的端口数量,也就是`--ports_num_for_sparse`参数。 - -`CONF_PADDLE_GRADIENT_NUM`表示训练节点数量,即`--num_gradient_servers`参数 +环境变量 | 说明 +--- | --- +JOB_PATH | 共享存储挂在的路径 +JOB_NAME | Job的名字 +TRAIN_CONFIG_DIR | 本次训练文件所在目录,与JOB_PATH,JOB_NAME组合可以找到本次训练需要的文件路径 +CONF_PADDLE_NIC | `paddle pserver`进程需要的`--nics`参数,即网卡名 +CONF_PADDLE_PORT | `paddle paserver`的`--port`参数 +CONF_PADDLE_PORTS_NUM | 稠密更新的端口数量,即`--ports_num`参数 +CONF_PADDLE_PORTS_NUM_SPARSE | 稀疏更新的端口数量,即`--ports_num_for_sparse`参数 +CONF_PADDLE_GRADIENT_NUM | 训练节点数量,即`--num_gradient_servers参数` 这些参数的具体描述,读者可以查看[这里](http://www.paddlepaddle.org/doc/ui/cmd_argument/detail_introduction.html#parameter-server-and-distributed-communication)。 @@ -279,3 +313,7 @@ def getIdMap(podlist): args += " " + args_ext + " --trainer_id=" + \ str(trainerId) + " --save_dir=" + JOB_PATH_OUTPUT ``` + +### 使用EFK查询训练日志 +首先需要在集群中[部署EFK(Elasticsearch+Fluentd+Kibana)](https://github.com/k8sp/efk)套件,在Kibana中根据POD或者Container名字来搜索相应日志 +![EFK下的Paddle训练日志](./src/efk-paddle-logs.png) diff --git a/doc/howto/usage/k8s/src/efk-paddle-logs.png b/doc/howto/usage/k8s/src/efk-paddle-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..e78ec689efb3e2077ba7850ad722878952dcdad3 GIT binary patch literal 215352 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 mB<)xv-wXjIrezx@@c#qFV-fVk&Z?gP0000 Date: Fri, 3 Mar 2017 20:21:58 +0800 Subject: [PATCH 122/186] update efk logs png --- doc/howto/usage/k8s/src/efk-paddle-logs.png | Bin 215352 -> 276278 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/howto/usage/k8s/src/efk-paddle-logs.png b/doc/howto/usage/k8s/src/efk-paddle-logs.png index e78ec689efb3e2077ba7850ad722878952dcdad3..e88d85dcecee090f2597c8f719ad2a1837de0cc2 100644 GIT binary patch literal 276278 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%0ALhxM{3*fCUTuBVPNEDY07Tv6nS@`{orauL# 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 mB<)xv-wXjIrezx@@c#qFV-fVk&Z?gP0000 Date: Fri, 3 Mar 2017 20:47:49 +0800 Subject: [PATCH 123/186] fix invalid url --- doc/howto/usage/k8s/k8s_distributed_cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md index 8ca158e608..97595db9dd 100644 --- a/doc/howto/usage/k8s/k8s_distributed_cn.md +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md @@ -45,7 +45,7 @@ docker push [YOUR_REPO]/paddle:mypaddle ### 准备训练数据 -这里我们通过在Kubernetes集群上启动一个Job来下载并切割数据,也可以通过修改[k8s_train](./k8s_train)的内容来定制image. +这里我们通过在Kubernetes集群上启动一个Job来下载并切割数据,也可以通过修改[k8s_train](./src/k8s_train)的内容来定制image. 在启动Job之前,需要根据不同的分布式存储来绑定一个[persistentVolumeClaim](https://kubernetes.io/docs/user-guide/persistent-volumes/),生成的数据将会存储在这个volume下. From af9e221d67924258c24d7c29b86e63174a2ebbe0 Mon Sep 17 00:00:00 2001 From: Yancey1989 Date: Fri, 3 Mar 2017 21:00:08 +0800 Subject: [PATCH 124/186] fix invalid url --- doc/howto/usage/k8s/k8s_distributed_cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md index 97595db9dd..9a30b3ed5c 100644 --- a/doc/howto/usage/k8s/k8s_distributed_cn.md +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md @@ -45,7 +45,7 @@ docker push [YOUR_REPO]/paddle:mypaddle ### 准备训练数据 -这里我们通过在Kubernetes集群上启动一个Job来下载并切割数据,也可以通过修改[k8s_train](./src/k8s_train)的内容来定制image. +这里我们通过在Kubernetes集群上启动一个Job来下载并切割数据,也可以通过修改[k8s_train](./src/k8s_train/README.md)的内容来定制image. 在启动Job之前,需要根据不同的分布式存储来绑定一个[persistentVolumeClaim](https://kubernetes.io/docs/user-guide/persistent-volumes/),生成的数据将会存储在这个volume下. From d498174c9aa6439207c9789a140f8d610352be74 Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Fri, 3 Mar 2017 00:18:00 +0000 Subject: [PATCH 125/186] move paddle.reader.batch to paddle.batch --- demo/image_classification/api_v2_train.py | 4 +-- demo/mnist/api_train_v2.py | 4 +-- python/paddle/v2/__init__.py | 2 ++ python/paddle/v2/batch.py | 35 +++++++++++++++++++++++ python/paddle/v2/reader/decorator.py | 24 +--------------- 5 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 python/paddle/v2/batch.py diff --git a/demo/image_classification/api_v2_train.py b/demo/image_classification/api_v2_train.py index 585f61c6fa..e0fc0e04bb 100644 --- a/demo/image_classification/api_v2_train.py +++ b/demo/image_classification/api_v2_train.py @@ -66,7 +66,7 @@ def main(): sys.stdout.flush() if isinstance(event, paddle.event.EndPass): result = trainer.test( - reader=paddle.reader.batched( + reader=paddle.batch( paddle.dataset.cifar.test10(), batch_size=128), reader_dict={'image': 0, 'label': 1}) @@ -77,7 +77,7 @@ def main(): parameters=parameters, update_equation=momentum_optimizer) trainer.train( - reader=paddle.reader.batched( + reader=paddle.batch( paddle.reader.shuffle( paddle.dataset.cifar.train10(), buf_size=50000), batch_size=128), diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 9b7ebde500..4fb1808ca1 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -98,7 +98,7 @@ def main(): result.metrics['classification_error_evaluator'])) trainer.train( - reader=paddle.reader.batched( + reader=paddle.batch( paddle.reader.shuffle( paddle.dataset.mnist.train(), buf_size=8192), batch_size=128), @@ -115,7 +115,7 @@ def main(): probs = paddle.infer( output=predict, parameters=parameters, - reader=paddle.reader.batched( + reader=paddle.batch( paddle.reader.firstn( paddle.reader.map_readers(lambda item: (item[0], ), paddle.dataset.mnist.test()), diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py index 8ab8cd2f85..a023e3ea06 100644 --- a/python/paddle/v2/__init__.py +++ b/python/paddle/v2/__init__.py @@ -28,6 +28,7 @@ import pooling import inferencer import networks import py_paddle.swig_paddle as api +import batch __all__ = [ 'optimizer', 'layer', 'activation', 'parameters', 'init', 'trainer', @@ -45,3 +46,4 @@ def init(**kwargs): infer = inferencer.infer +batch = batch.batch diff --git a/python/paddle/v2/batch.py b/python/paddle/v2/batch.py new file mode 100644 index 0000000000..f01815a0ce --- /dev/null +++ b/python/paddle/v2/batch.py @@ -0,0 +1,35 @@ +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +def batch(reader, batch_size): + """ + Create a batch reader. + :param reader: the data reader to read from. + :param batch_size: batch_size + :return: the batch reader. + """ + + def batch_reader(): + r = reader() + batch = [] + for instance in r: + batch.append(instance) + if len(batch) == batch_size: + yield batch + batch = [] + if batch: + yield batch + + return batch_reader diff --git a/python/paddle/v2/reader/decorator.py b/python/paddle/v2/reader/decorator.py index b7657e2776..c4ba110205 100644 --- a/python/paddle/v2/reader/decorator.py +++ b/python/paddle/v2/reader/decorator.py @@ -14,7 +14,7 @@ __all__ = [ 'map_readers', 'buffered', 'compose', 'chain', 'shuffle', - 'ComposeNotAligned', 'batched', 'firstn' + 'ComposeNotAligned', 'firstn' ] import itertools @@ -193,28 +193,6 @@ def buffered(reader, size): return data_reader -def batched(reader, batch_size): - """ - Create a batched reader. - :param reader: the data reader to read from. - :param batch_size: batch_size - :return: the batched reader. - """ - - def batched_reader(): - r = reader() - batch = [] - for instance in r: - batch.append(instance) - if len(batch) == batch_size: - yield batch - batch = [] - if batch: - yield batch - - return batched_reader - - def firstn(reader, n): """ Limit the max number of samples that reader could return. From 24e1c536dab60164eaecadabcf64fbebcde20cf6 Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Fri, 3 Mar 2017 01:06:58 +0000 Subject: [PATCH 126/186] fix according to comment --- python/paddle/v2/__init__.py | 4 ++-- python/paddle/v2/{batch.py => minibatch.py} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename python/paddle/v2/{batch.py => minibatch.py} (100%) diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py index a023e3ea06..05227ca334 100644 --- a/python/paddle/v2/__init__.py +++ b/python/paddle/v2/__init__.py @@ -28,7 +28,7 @@ import pooling import inferencer import networks import py_paddle.swig_paddle as api -import batch +import minibatch __all__ = [ 'optimizer', 'layer', 'activation', 'parameters', 'init', 'trainer', @@ -46,4 +46,4 @@ def init(**kwargs): infer = inferencer.infer -batch = batch.batch +batch = minibatch.batch diff --git a/python/paddle/v2/batch.py b/python/paddle/v2/minibatch.py similarity index 100% rename from python/paddle/v2/batch.py rename to python/paddle/v2/minibatch.py From 3219c831a140303e7e03de70e38ae7ebda2f2c26 Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Thu, 2 Mar 2017 22:27:46 +0000 Subject: [PATCH 127/186] Rename Argument::sumCost to Argument::cost since Argument should not know about cost. cost is Argument, but argument does not have to be cost. --- paddle/api/Arguments.cpp | 4 +--- paddle/api/PaddleAPI.h | 2 +- paddle/api/test/testArguments.py | 2 +- paddle/gserver/tests/LayerGradUtil.cpp | 6 +++--- paddle/parameter/Argument.h | 2 +- paddle/trainer/Tester.cpp | 2 +- paddle/trainer/Trainer.cpp | 8 ++++---- paddle/trainer/TrainerInternal.cpp | 2 +- 8 files changed, 13 insertions(+), 15 deletions(-) diff --git a/paddle/api/Arguments.cpp b/paddle/api/Arguments.cpp index a3f4bfffc9..d49b189e25 100644 --- a/paddle/api/Arguments.cpp +++ b/paddle/api/Arguments.cpp @@ -144,9 +144,7 @@ void Arguments::setSlotSequenceDim(size_t idx, IVector* vec) throw(RangeError) { a.cpuSequenceDims = m->cast(vec->getSharedPtr()); } -float Arguments::sumCosts() const { - return paddle::Argument::sumCosts(m->outputs); -} +float Arguments::sum() const { return paddle::Argument::sum(m->outputs); } int64_t Arguments::getBatchSize(size_t idx) const throw(RangeError) { auto& a = m->getArg(idx); diff --git a/paddle/api/PaddleAPI.h b/paddle/api/PaddleAPI.h index 762f86ac79..c4f5dca26c 100644 --- a/paddle/api/PaddleAPI.h +++ b/paddle/api/PaddleAPI.h @@ -453,7 +453,7 @@ public: IVector* vec) throw(RangeError); void setSlotSequenceDim(size_t idx, IVector* vec) throw(RangeError); - float sumCosts() const; + float sum() const; private: static Arguments* createByPaddleArgumentVector(void* ptr); diff --git a/paddle/api/test/testArguments.py b/paddle/api/test/testArguments.py index a04a805d7a..9fe44de94e 100644 --- a/paddle/api/test/testArguments.py +++ b/paddle/api/test/testArguments.py @@ -22,7 +22,7 @@ class TestArguments(unittest.TestCase): args = swig_paddle.Arguments.createArguments(1) args.setSlotValue(0, m) - self.assertAlmostEqual(27.0, args.sumCosts()) + self.assertAlmostEqual(27.0, args.sum()) mat = args.getSlotValue(0) assert isinstance(mat, swig_paddle.Matrix) diff --git a/paddle/gserver/tests/LayerGradUtil.cpp b/paddle/gserver/tests/LayerGradUtil.cpp index ae016e74ea..7617af10ba 100644 --- a/paddle/gserver/tests/LayerGradUtil.cpp +++ b/paddle/gserver/tests/LayerGradUtil.cpp @@ -24,7 +24,7 @@ real getCostSum(LayerPtr& testLayer, MatrixPtr weights) { if (weights) { outArgs[0].value->dotMul(*outArgs[0].value, *weights); } - return Argument::sumCosts(outArgs); + return Argument::sum(outArgs); } real getDiffAndPrint(real newCost1, @@ -241,7 +241,7 @@ void testBatchState(LayerPtr testLayer, std::vector args; args.push_back(out); - EXPECT_EQ(0, Argument::sumCosts(args)) << "testBatchState failed"; + EXPECT_EQ(0, Argument::sum(args)) << "testBatchState failed"; for (size_t seqId = 0; seqId < numSequences; ++seqId) { start[seqId] += seqLens[seqId]; } @@ -672,7 +672,7 @@ void testLayerGradKernel(TestConfig testConf, outArgs[0].value->dotMul(*testLayer->getOutput().value, *weights); } - real cost = Argument::sumCosts(outArgs); + real cost = Argument::sum(outArgs); LOG(INFO) << " cost " << cost; EXPECT_FALSE(std::isnan(cost)); diff --git a/paddle/parameter/Argument.h b/paddle/parameter/Argument.h index 178c068b93..9ef44be0cb 100644 --- a/paddle/parameter/Argument.h +++ b/paddle/parameter/Argument.h @@ -163,7 +163,7 @@ struct Argument { : sequenceStartPositions->getData(false); } - static inline real sumCosts(const std::vector& arguments) { + static inline real sum(const std::vector& arguments) { real cost = 0; for (auto& arg : arguments) { if (arg.value) { diff --git a/paddle/trainer/Tester.cpp b/paddle/trainer/Tester.cpp index 13aa28ae5d..80664fa877 100644 --- a/paddle/trainer/Tester.cpp +++ b/paddle/trainer/Tester.cpp @@ -208,7 +208,7 @@ real Tester::forwardOneBatch(const DataBatch& dataBatch, return 0.0; // In this case, there is no meaning to calculate cost } - return Argument::sumCosts(outArgs); + return Argument::sum(outArgs); } void Tester::testOnePassBatch(int passId) { diff --git a/paddle/trainer/Trainer.cpp b/paddle/trainer/Trainer.cpp index bd84545375..b68e29cd5e 100644 --- a/paddle/trainer/Trainer.cpp +++ b/paddle/trainer/Trainer.cpp @@ -310,7 +310,7 @@ real Trainer::checkGradient() { std::vector outArgs; trainerInternal_.getGradientMachine()->forward(inArgs, &outArgs, PASS_GC); - real cost = Argument::sumCosts(outArgs); + real cost = Argument::sum(outArgs); LOG(INFO) << "original cost=" << cost; trainerInternal_.getGradientMachine()->backward(); @@ -340,7 +340,7 @@ real Trainer::checkGradient() { parameter->getBuf(PARAMETER_VALUE)->copyFrom(newPara); parameter->setValueUpdated(); trainerInternal_.getGradientMachine()->forward(inArgs, &outArgs, PASS_GC); - real newCost1 = Argument::sumCosts(outArgs); + real newCost1 = Argument::sum(outArgs); for (size_t i = 0; i < dim; ++i) { newp[i] = oldp[i] - step * d[i]; @@ -349,7 +349,7 @@ real Trainer::checkGradient() { parameter->getBuf(PARAMETER_VALUE)->copyFrom(newPara); parameter->setValueUpdated(); trainerInternal_.getGradientMachine()->forward(inArgs, &outArgs, PASS_GC); - real newCost2 = Argument::sumCosts(outArgs); + real newCost2 = Argument::sum(outArgs); real trueDelta = 0.5 * (newCost1 - newCost2); real diff = (1e-20 + trueDelta) / (1e-20 + delta) - 1; @@ -575,7 +575,7 @@ real Trainer::calcGradient(const DataBatch& dataBatch, trainerInternal_.getGradientMachine()->forwardBackward( inArgs, &outArgs, PASS_TRAIN); - real cost = Argument::sumCosts(outArgs); + real cost = Argument::sum(outArgs); offset = 0; for (auto& para : parameters) { diff --git a/paddle/trainer/TrainerInternal.cpp b/paddle/trainer/TrainerInternal.cpp index f3b465b444..4c5d4a0913 100644 --- a/paddle/trainer/TrainerInternal.cpp +++ b/paddle/trainer/TrainerInternal.cpp @@ -134,7 +134,7 @@ void TrainerInternal::trainOneBatch(int64_t batchId, real cost = 0; { REGISTER_TIMER("sumCost"); - cost = Argument::sumCosts(*outArgs); + cost = Argument::sum(*outArgs); } if (batchId % intconfig_->log_period == 0) { From 61b4c7170a7f55bdd2c6db57b58e9d797fc3522f Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Thu, 2 Mar 2017 22:01:42 +0000 Subject: [PATCH 128/186] remove inferencer and Inference from __All__, since infer is sufficent, they are implementation detail. rename inferencer.py to inference.py --- python/paddle/v2/__init__.py | 6 +++--- python/paddle/v2/{inferencer.py => inference.py} | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) rename python/paddle/v2/{inferencer.py => inference.py} (98%) diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py index 8ab8cd2f85..f663ef735d 100644 --- a/python/paddle/v2/__init__.py +++ b/python/paddle/v2/__init__.py @@ -25,14 +25,14 @@ from . import dataset from . import reader import attr import pooling -import inferencer +import inference import networks import py_paddle.swig_paddle as api __all__ = [ 'optimizer', 'layer', 'activation', 'parameters', 'init', 'trainer', 'event', 'data_type', 'attr', 'pooling', 'data_feeder', 'dataset', 'reader', - 'topology', 'networks', 'inferencer', 'infer' + 'topology', 'networks', 'infer' ] @@ -44,4 +44,4 @@ def init(**kwargs): api.initPaddle(*args) -infer = inferencer.infer +infer = inference.infer diff --git a/python/paddle/v2/inferencer.py b/python/paddle/v2/inference.py similarity index 98% rename from python/paddle/v2/inferencer.py rename to python/paddle/v2/inference.py index ac03b016c9..476fd3fa45 100644 --- a/python/paddle/v2/inferencer.py +++ b/python/paddle/v2/inference.py @@ -5,7 +5,7 @@ from data_feeder import DataFeeder import itertools import numpy -__all__ = ['Inference', 'infer'] +__all__ = ['infer'] class Inference(object): From d6c6a996b1d872a4ee845ee662364a7974635f73 Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Sat, 4 Mar 2017 02:28:53 +0000 Subject: [PATCH 129/186] dataset reader for wmt14 example usage: import paddle.v2 as paddle if __name__ == '__main__': dict_en, dict_fr = paddle.dataset.wmt14.build_dict() train = paddle.dataset.wmt14.train(dict_en, dict_fr) test = paddle.dataset.wmt14.test(dict_en, dict_fr) total_train = 0 for i in train(): total_train += 1 total_test = 0 for i in test(): total_test += 1 print total_train, total_test --- python/paddle/v2/dataset/__init__.py | 3 +- python/paddle/v2/dataset/wmt14.py | 142 +++++++++++++++++++++++++++ 2 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 python/paddle/v2/dataset/wmt14.py diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py index 82f11a7c41..6c371d3c9b 100644 --- a/python/paddle/v2/dataset/__init__.py +++ b/python/paddle/v2/dataset/__init__.py @@ -20,8 +20,9 @@ import movielens import conll05 import uci_housing import sentiment +import wmt14 __all__ = [ 'mnist', 'imikolov', 'imdb', 'cifar', 'movielens', 'conll05', 'sentiment' - 'uci_housing' + 'uci_housing', 'wmt14' ] diff --git a/python/paddle/v2/dataset/wmt14.py b/python/paddle/v2/dataset/wmt14.py new file mode 100644 index 0000000000..9904848b5d --- /dev/null +++ b/python/paddle/v2/dataset/wmt14.py @@ -0,0 +1,142 @@ +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +wmt14 dataset +""" +import paddle.v2.dataset.common +import tarfile +import os.path +import itertools + +__all__ = ['train', 'test', 'build_dict'] + +URL_DEV_TEST = 'http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/data/dev+test.tgz' +MD5_DEV_TEST = '7d7897317ddd8ba0ae5c5fa7248d3ff5' +URL_TRAIN = 'http://localhost:8000/train.tgz' +MD5_TRAIN = '72de99da2830ea5a3a2c4eb36092bbc7' + + +def word_count(f, word_freq=None): + add = paddle.v2.dataset.common.dict_add + if word_freq == None: + word_freq = {} + + for l in f: + for w in l.strip().split(): + add(word_freq, w) + add(word_freq, '') + add(word_freq, '') + + return word_freq + + +def get_word_dix(word_freq): + TYPO_FREQ = 50 + word_freq = filter(lambda x: x[1] > TYPO_FREQ, word_freq.items()) + word_freq_sorted = sorted(word_freq, key=lambda x: (-x[1], x[0])) + words, _ = list(zip(*word_freq_sorted)) + word_idx = dict(zip(words, xrange(len(words)))) + word_idx[''] = len(words) + return word_idx + + +def get_word_freq(train, dev): + word_freq = word_count(train, word_count(dev)) + if '' in word_freq: + # remove for now, since we will set it as last index + del word_freq[''] + return word_freq + + +def build_dict(): + base_dir = './wmt14-data' + train_en_filename = base_dir + '/train/train.en' + train_fr_filename = base_dir + '/train/train.fr' + dev_en_filename = base_dir + '/dev/ntst1213.en' + dev_fr_filename = base_dir + '/dev/ntst1213.fr' + + if not os.path.exists(train_en_filename) or not os.path.exists( + train_fr_filename): + with tarfile.open( + paddle.v2.dataset.common.download(URL_TRAIN, 'wmt14', + MD5_TRAIN)) as tf: + tf.extractall(base_dir) + + if not os.path.exists(dev_en_filename) or not os.path.exists( + dev_fr_filename): + with tarfile.open( + paddle.v2.dataset.common.download(URL_DEV_TEST, 'wmt14', + MD5_DEV_TEST)) as tf: + tf.extractall(base_dir) + + f_en = open(train_en_filename) + f_fr = open(train_fr_filename) + f_en_dev = open(dev_en_filename) + f_fr_dev = open(dev_fr_filename) + + word_freq_en = get_word_freq(f_en, f_en_dev) + word_freq_fr = get_word_freq(f_fr, f_fr_dev) + + f_en.close() + f_fr.close() + f_en_dev.close() + f_fr_dev.close() + + return get_word_dix(word_freq_en), get_word_dix(word_freq_fr) + + +def reader_creator(directory, path_en, path_fr, URL, MD5, dict_en, dict_fr): + def reader(): + if not os.path.exists(path_en) or not os.path.exists(path_fr): + with tarfile.open( + paddle.v2.dataset.common.download(URL, 'wmt14', MD5)) as tf: + tf.extractall(directory) + + f_en = open(path_en) + f_fr = open(path_fr) + UNK_en = dict_en[''] + UNK_fr = dict_fr[''] + + for en, fr in itertools.izip(f_en, f_fr): + src_ids = [dict_en.get(w, UNK_en) for w in en.strip().split()] + tar_ids = [ + dict_fr.get(w, UNK_fr) + for w in [''] + fr.strip().split() + [''] + ] + + # remove sequence whose length > 80 in training mode + if len(src_ids) == 0 or len(tar_ids) <= 1 or len( + src_ids) > 80 or len(tar_ids) > 80: + continue + + yield src_ids, tar_ids[:-1], tar_ids[1:] + + f_en.close() + f_fr.close() + + return reader + + +def train(dict_en, dict_fr): + directory = './wmt14-data' + return reader_creator(directory, directory + '/train/train.en', + directory + '/train/train.fr', URL_TRAIN, MD5_TRAIN, + dict_en, dict_fr) + + +def test(dict_en, dict_fr): + directory = './wmt14-data' + return reader_creator(directory, directory + '/dev/ntst1213.en', + directory + '/dev/ntst1213.fr', URL_DEV_TEST, + MD5_DEV_TEST, dict_en, dict_fr) From c28b812edfc7b3b158665fa9d63d35dd83f4b474 Mon Sep 17 00:00:00 2001 From: Yancey1989 Date: Sat, 4 Mar 2017 10:36:41 +0800 Subject: [PATCH 130/186] cancel efk; correct hostpath --- doc/howto/usage/k8s/k8s_distributed_cn.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md index 9a30b3ed5c..2a7a6c8c17 100644 --- a/doc/howto/usage/k8s/k8s_distributed_cn.md +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md @@ -69,7 +69,7 @@ spec: name: nfs env: - name: OUT_DIR - value: /mnt/paddle-cluster-job + value: /home/work/mfs/paddle-cluster-job - name: SPLIT_COUNT value: "3" volumes: @@ -313,7 +313,3 @@ def getIdMap(podlist): args += " " + args_ext + " --trainer_id=" + \ str(trainerId) + " --save_dir=" + JOB_PATH_OUTPUT ``` - -### 使用EFK查询训练日志 -首先需要在集群中[部署EFK(Elasticsearch+Fluentd+Kibana)](https://github.com/k8sp/efk)套件,在Kibana中根据POD或者Container名字来搜索相应日志 -![EFK下的Paddle训练日志](./src/efk-paddle-logs.png) From 8ed74636040498a33a733b0f979479f2f76ae060 Mon Sep 17 00:00:00 2001 From: Yancey1989 Date: Sat, 4 Mar 2017 11:58:34 +0800 Subject: [PATCH 131/186] delete unused png --- doc/howto/usage/k8s/src/efk-paddle-logs.png | Bin 276278 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/howto/usage/k8s/src/efk-paddle-logs.png diff --git a/doc/howto/usage/k8s/src/efk-paddle-logs.png b/doc/howto/usage/k8s/src/efk-paddle-logs.png deleted file mode 100644 index e88d85dcecee090f2597c8f719ad2a1837de0cc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276278 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%0ALhxM{3*fCUTuBVPNEDY07Tv6nS@`{orauL# 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 Date: Sat, 4 Mar 2017 15:55:35 +0800 Subject: [PATCH 132/186] Complete Layers documentation --- .../paddle/trainer_config_helpers/layers.py | 7 +- python/paddle/v2/config_base.py | 41 +++++++++- python/paddle/v2/layer.py | 82 +++++++++++++------ 3 files changed, 100 insertions(+), 30 deletions(-) diff --git a/python/paddle/trainer_config_helpers/layers.py b/python/paddle/trainer_config_helpers/layers.py index b68460b6a3..b94f8f9a78 100755 --- a/python/paddle/trainer_config_helpers/layers.py +++ b/python/paddle/trainer_config_helpers/layers.py @@ -795,17 +795,16 @@ def data_layer(name, size, height=None, width=None, layer_attr=None): .. code-block:: python - data = data_layer(name="input", - size=1000) + data = data_layer(name="input", size=1000) :param name: Name of this data layer. :type name: basestring :param size: Size of this data layer. :type size: int :param height: Height of this data layer, used for image - :type size: int|None + :type height: int|None :param width: Width of this data layer, used for image - :type size: int|None + :type width: int|None :param layer_attr: Extra Layer Attribute. :type layer_attr: ExtraLayerAttribute. :return: LayerOutput object. diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py index fa2ccec6c3..64de568fcc 100644 --- a/python/paddle/v2/config_base.py +++ b/python/paddle/v2/config_base.py @@ -13,12 +13,49 @@ # limitations under the License. import collections - +import re from paddle.trainer_config_helpers.default_decorators import wrap_name_default import paddle.trainer_config_helpers as conf_helps +class LayerType(type): + def __new__(cls, name, bases, attrs): + method_name = attrs.get('METHOD_NAME', None) + if method_name is not None: + method = getattr(conf_helps, method_name) + if method.__doc__ is not None: + mapper = attrs.get("__map_docstr__", None) + if mapper is not None: + attrs['__doc__'] = LayerType.__map_docstr__( + mapper(method.__doc__), + method_name=method_name, + name=name) + else: + attrs['__doc__'] = LayerType.__map_docstr__( + method.__doc__, method_name=method_name, name=name) + return super(LayerType, cls).__new__(cls, name, bases, attrs) + + @staticmethod + def __map_docstr__(doc, name, method_name): + assert isinstance(doc, basestring) + + # replace LayerOutput to paddle.v2.config_base.Layer + doc = doc.replace("LayerOutput", "paddle.v2.config_base.Layer") + + # xxx_layer to xxx + doc = re.sub(r"(?P[a-z]+)_layer", r"\g", doc) + + # XxxxActivation to paddle.v2.Activation.Xxxx + doc = re.sub(r"(?P[A-Z][a-zA-Z]+)Activation", + r"paddle.v2.Activation.\g", doc) + + # TODO(yuyang18): Add more rules if needed. + return doc + + class Layer(object): + __metaclass__ = LayerType + def __init__(self, name=None, parent_layers=None): assert isinstance(parent_layers, dict) self.name = name @@ -80,6 +117,8 @@ def __convert_to_v2__(method_name, parent_names, is_default_name=True): wrapper = None class V2LayerImpl(Layer): + METHOD_NAME = method_name + def __init__(self, **kwargs): parent_layers = dict() other_kwargs = dict() diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 711226d659..1608aa3f71 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -47,26 +47,32 @@ from paddle.trainer.config_parser import \ RecurrentLayerGroupEnd, model_type import activation +import re import data_type __all__ = ['parse_network', 'data'] -__projection_names__ = filter(lambda x: x.endswith('_projection'), - dir(conf_helps)) -__all__ += __projection_names__ - -__operator_names__ = filter(lambda x: x.endswith('_operator'), dir(conf_helps)) -__all__ += __operator_names__ - def parse_network(*outputs): """ - parse all output layers and then generate a model config proto. - :param outputs: - :return: + Parse all output layers and then generate a ModelConfig object. + + .. note:: + + This function is used internally in paddle.v2 module. User should never + invoke this method. + + :param outputs: Output layers. + :type outputs: Layer + :return: A ModelConfig object instance. + :rtype: ModelConfig """ def __real_func__(): + """ + __real_func__ is the function that config_parser.parse invoked. It is + the plain old paddle configuration function. + """ context = dict() real_output = [each.to_proto(context=context) for each in outputs] conf_helps.outputs(real_output) @@ -81,6 +87,8 @@ So we also need to implement some special LayerV2. class DataLayerV2(Layer): + METHOD_NAME = 'data_layer' + def __init__(self, name, type, **kwargs): assert isinstance(type, data_type.InputType) @@ -99,6 +107,17 @@ class DataLayerV2(Layer): args[each] = self.__kwargs__[each] return getattr(conf_helps, self.__method_name__)(name=self.name, **args) + def __map_docstr__(doc): + doc = re.sub(r'(data = [^\)]+)\).*', + "data = paddle.layer.data(name=\"input\", " + "type=paddle.data_type.dense_vector(1000))", doc) + + doc = re.sub(r':param size:.*', + ':param type: Data type of this data layer', doc) + doc = re.sub(r':type size:.*', + ":type size: paddle.v2.data_type.InputType", doc) + return doc + class WithExtraParent(Layer): def extra_parent(self): @@ -347,6 +366,7 @@ class RecurrentLayerOutput(Layer): LayerV2 = Layer data = DataLayerV2 +data.__name__ = 'data' AggregateLevel = conf_helps.layers.AggregateLevel ExpandLevel = conf_helps.layers.ExpandLevel memory = MemoryV2 @@ -386,6 +406,7 @@ def __convert_layer__(_new_name_, _old_name_, _parent_names_): global __all__ __all__.append(_new_name_) globals()[new_name] = __convert_to_v2__(_old_name_, _parent_names_) + globals()[new_name].__name__ = new_name for each_layer_name in dir(conf_helps): @@ -399,21 +420,6 @@ del parent_names del new_name del each_layer_name -# convert projection -for prj in __projection_names__: - globals()[prj] = __convert_to_v2__( - prj, parent_names=['input'], is_default_name=False) - -# convert operator -operator_list = [ - # [V1_method_name, parent_names], - ['dotmul_operator', ['a', 'b']], - ['conv_operator', ['img', 'filter']] -] -for op in operator_list: - globals()[op[0]] = __convert_to_v2__( - op[0], parent_names=op[1], is_default_name=False) - @wrap_name_default() def recurrent_group(step, input, name=None): @@ -464,3 +470,29 @@ def recurrent_group(step, input, name=None): return retv[0] else: return retv + + +__projection_names__ = filter(lambda x: x.endswith('_projection'), + dir(conf_helps)) + +__all__ += __projection_names__ + +__operator_names__ = filter(lambda x: x.endswith('_operator'), dir(conf_helps)) +__all__ += __operator_names__ + +# convert projection +for prj in __projection_names__: + globals()[prj] = __convert_to_v2__( + prj, parent_names=['input'], is_default_name=False) + globals()[prj].__name__ = prj + +# convert operator +operator_list = [ + # [V1_method_name, parent_names], + ['dotmul_operator', ['a', 'b']], + ['conv_operator', ['img', 'filter']] +] +for op in operator_list: + globals()[op[0]] = __convert_to_v2__( + op[0], parent_names=op[1], is_default_name=False) + globals()[op[0]].__name__ = op[0] From 38de3a6cab8d6a05d1a6e1c07ae415a229953de6 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 16:08:54 +0800 Subject: [PATCH 133/186] Complete docs of attr --- doc/api/v2/model_configs.rst | 8 ++++++++ python/paddle/v2/attr.py | 10 +++++++--- python/paddle/v2/config_base.py | 6 ++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/doc/api/v2/model_configs.rst b/doc/api/v2/model_configs.rst index a9f33b33ef..4ca28315d5 100644 --- a/doc/api/v2/model_configs.rst +++ b/doc/api/v2/model_configs.rst @@ -4,3 +4,11 @@ Layers .. automodule:: paddle.v2.layer :members: + + +========== +Attributes +========== + +.. automodule:: paddle.v2.attr + :members: diff --git a/python/paddle/v2/attr.py b/python/paddle/v2/attr.py index 40c64f621b..32f78614e7 100644 --- a/python/paddle/v2/attr.py +++ b/python/paddle/v2/attr.py @@ -12,12 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -from paddle.trainer_config_helpers.attrs import * +import paddle.trainer_config_helpers.attrs __all__ = [ "Param", "Extra", ] -Param = ParameterAttribute -Extra = ExtraLayerAttribute +Param = paddle.trainer_config_helpers.attrs.ParameterAttribute +Extra = paddle.trainer_config_helpers.attrs.ExtraLayerAttribute + +for each in paddle.trainer_config_helpers.attrs.__all__: + globals()[each] = getattr(paddle.trainer_config_helpers.attrs, each) + __all__.append(each) diff --git a/python/paddle/v2/config_base.py b/python/paddle/v2/config_base.py index 64de568fcc..1ec1d7bbdf 100644 --- a/python/paddle/v2/config_base.py +++ b/python/paddle/v2/config_base.py @@ -42,6 +42,12 @@ class LayerType(type): # replace LayerOutput to paddle.v2.config_base.Layer doc = doc.replace("LayerOutput", "paddle.v2.config_base.Layer") + doc = doc.replace('ParameterAttribute', + 'paddle.v2.attr.ParameterAttribute') + + doc = re.sub(r'ExtraLayerAttribute[^\s]?', + 'paddle.v2.attr.ExtraAttribute', doc) + # xxx_layer to xxx doc = re.sub(r"(?P[a-z]+)_layer", r"\g", doc) From 4ea3fa623d8411eb54635509c3a415ec1088d755 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 16:13:41 +0800 Subject: [PATCH 134/186] Complete doc of activations --- doc/api/v2/model_configs.rst | 7 +++++++ python/paddle/v2/activation.py | 31 ++++++++++--------------------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/doc/api/v2/model_configs.rst b/doc/api/v2/model_configs.rst index 4ca28315d5..26a1669d43 100644 --- a/doc/api/v2/model_configs.rst +++ b/doc/api/v2/model_configs.rst @@ -12,3 +12,10 @@ Attributes .. automodule:: paddle.v2.attr :members: + +=========== +Activations +=========== + +.. automodule:: paddle.v2.activation + :members: diff --git a/python/paddle/v2/activation.py b/python/paddle/v2/activation.py index 1f3aab9ef3..21261a1782 100644 --- a/python/paddle/v2/activation.py +++ b/python/paddle/v2/activation.py @@ -12,26 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -from paddle.trainer_config_helpers.activations import * +import paddle.trainer_config_helpers.activations +import copy -__all__ = [ - "Base", "Tanh", "Sigmoid", "Softmax", "Identity", "Linear", - 'SequenceSoftmax', "Exp", "Relu", "BRelu", "SoftRelu", "STanh", "Abs", - "Square", "Log" -] +__all__ = [] -Base = BaseActivation -Tanh = TanhActivation -Sigmoid = SigmoidActivation -Softmax = SoftmaxActivation -SequenceSoftmax = SequenceSoftmaxActivation -Identity = IdentityActivation -Linear = Identity -Relu = ReluActivation -BRelu = BReluActivation -SoftRelu = SoftReluActivation -STanh = STanhActivation -Abs = AbsActivation -Square = SquareActivation -Exp = ExpActivation -Log = LogActivation +suffix = 'Activation' +for act in paddle.trainer_config_helpers.activations.__all__: + new_name = act[:-len(suffix)] + globals()[new_name] = copy.copy( + getattr(paddle.trainer_config_helpers.activations, act)) + globals()[new_name].__name__ = new_name + __all__.append(new_name) From 91cc461aa5c20bc73f61b89b11220e098e27456c Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 16:24:19 +0800 Subject: [PATCH 135/186] Complete model_configs's docs --- doc/api/v2/model_configs.rst | 14 ++++++++++++++ python/paddle/v2/networks.py | 1 + python/paddle/v2/pooling.py | 18 ++++++++++-------- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/doc/api/v2/model_configs.rst b/doc/api/v2/model_configs.rst index 26a1669d43..b848bd7045 100644 --- a/doc/api/v2/model_configs.rst +++ b/doc/api/v2/model_configs.rst @@ -19,3 +19,17 @@ Activations .. automodule:: paddle.v2.activation :members: + +======== +Poolings +======== + +.. automodule:: paddle.v2.pooling + :members: + +======== +Networks +======== + +.. automodule:: paddle.v2.networks + :members: diff --git a/python/paddle/v2/networks.py b/python/paddle/v2/networks.py index 74d91593d8..9e6644196c 100644 --- a/python/paddle/v2/networks.py +++ b/python/paddle/v2/networks.py @@ -38,6 +38,7 @@ def __initialize__(): parent_names=parents, is_default_name='name' in argspec.args) globals()[each_subnetwork] = v2_subnet + globals()[each_subnetwork].__name__ = each_subnetwork global __all__ __all__.append(each_subnetwork) diff --git a/python/paddle/v2/pooling.py b/python/paddle/v2/pooling.py index 9076a159bb..4881c27d1d 100644 --- a/python/paddle/v2/pooling.py +++ b/python/paddle/v2/pooling.py @@ -12,13 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -from paddle.trainer_config_helpers.poolings import * +import paddle.trainer_config_helpers.poolings +import copy -__all__ = ["Max", "CudnnMax", "Avg", "CudnnAvg", "Sum", "SquareRootN"] +__all__ = [] +suffix = 'Pooling' -Max = MaxPooling -CudnnMax = CudnnMaxPooling -Avg = AvgPooling -CudnnAvg = CudnnAvgPooling -Sum = SumPooling -SquareRootN = SquareRootNPooling +for name in paddle.trainer_config_helpers.poolings.__all__: + new_name = name[:-len(suffix)] + globals()[new_name] = copy.copy( + getattr(paddle.trainer_config_helpers.poolings, name)) + globals()[new_name].__name__ = new_name + __all__.append(new_name) From fb74ae36d4b9ba21ccf98bd45b04c361029e7406 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 17:11:49 +0800 Subject: [PATCH 136/186] Refine serialize --- demo/mnist/.gitignore | 1 + demo/mnist/api_train_v2.py | 3 +++ python/paddle/v2/parameters.py | 40 +++++++++++++++++++++++++++++++++- python/paddle/v2/trainer.py | 4 ++-- 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/demo/mnist/.gitignore b/demo/mnist/.gitignore index 9c552159be..ed074b09e7 100644 --- a/demo/mnist/.gitignore +++ b/demo/mnist/.gitignore @@ -6,3 +6,4 @@ train.log *pyc .ipynb_checkpoints params.pkl +params.tar diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index a72ebfa980..7a1f661318 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -103,6 +103,9 @@ def main(): cPickle.dump( parameters, f, protocol=cPickle.HIGHEST_PROTOCOL) + with open('params.tar', 'w') as f: + parameters.serialize_to_tar(f) + elif isinstance(event, paddle.event.EndPass): result = trainer.test(reader=paddle.reader.batched( paddle.dataset.mnist.test(), batch_size=128)) diff --git a/python/paddle/v2/parameters.py b/python/paddle/v2/parameters.py index d8c3a73b0e..6a7b883500 100644 --- a/python/paddle/v2/parameters.py +++ b/python/paddle/v2/parameters.py @@ -1,7 +1,9 @@ import numpy as np import py_paddle.swig_paddle as api from paddle.proto.ParameterConfig_pb2 import ParameterConfig - +import struct +import tarfile +import cStringIO from topology import Topology __all__ = ['Parameters', 'create'] @@ -235,6 +237,42 @@ class Parameters(object): return {'conf': param_conf, 'params': params} + def serialize(self, name, f): + """ + + :param name: + :param f: + :type f: file + :return: + """ + param = self.get(name) + size = reduce(lambda a, b: a * b, param.shape) + f.write(struct.pack("IIQ", 0, 4, size)) + param = param.astype(np.float32) + f.write(param.tobytes()) + + def deserialize(self, name, f): + """ + + :param name: + :param f: + :type f: file + :return: + """ + f.read(16) # header + arr = np.fromfile(f, dtype=np.float32) + self.set(name, arr.reshape(self.get_shape(name))) + + def serialize_to_tar(self, f): + tar = tarfile.TarFile(fileobj=f, mode='w') + for nm in self.names(): + buf = cStringIO.StringIO() + self.serialize(nm, buf) + tarinfo = tarfile.TarInfo(name=nm) + buf.seek(0) + tarinfo.size = len(buf.getvalue()) + tar.addfile(tarinfo, buf) + def __setstate__(self, obj): Parameters.__init__(self) diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py index e878ea6e3b..7da97d79a8 100644 --- a/python/paddle/v2/trainer.py +++ b/python/paddle/v2/trainer.py @@ -101,7 +101,7 @@ class SGD(): for each_param in self.__gradient_machine__.getNonStaticParameters( ): updater.update(each_param) - cost_sum = out_args.sumCosts() + cost_sum = out_args.sum() cost = cost_sum / len(data_batch) updater.finishBatch(cost) batch_evaluator.finish() @@ -137,7 +137,7 @@ class SGD(): num_samples += len(data_batch) self.__gradient_machine__.forward( feeder(data_batch), out_args, api.PASS_TEST) - total_cost += out_args.sumCosts() + total_cost += out_args.sum() self.__gradient_machine__.eval(evaluator) evaluator.finish() From efe53811c569182df71b14c46aa5a7238038cba1 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 18:32:39 +0800 Subject: [PATCH 137/186] complete serialize * Test gzip --- demo/mnist/.gitignore | 1 + demo/mnist/api_train_v2.py | 14 ++++----- python/paddle/v2/parameters.py | 54 ++++++++++++++++------------------ 3 files changed, 32 insertions(+), 37 deletions(-) diff --git a/demo/mnist/.gitignore b/demo/mnist/.gitignore index ed074b09e7..7e61d5e3a0 100644 --- a/demo/mnist/.gitignore +++ b/demo/mnist/.gitignore @@ -7,3 +7,4 @@ train.log .ipynb_checkpoints params.pkl params.tar +params.tar.gz diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 7a1f661318..a11260d91b 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -1,5 +1,5 @@ import paddle.v2 as paddle -import cPickle +import gzip def softmax_regression(img): @@ -73,8 +73,8 @@ def main(): cost = paddle.layer.classification_cost(input=predict, label=label) try: - with open('params.pkl', 'r') as f: - parameters = cPickle.load(f) + with gzip.open('params.tar.gz', 'r') as f: + parameters = paddle.parameters.Parameters.from_tar(f) except IOError: parameters = paddle.parameters.create(cost) @@ -99,12 +99,8 @@ def main(): event.pass_id, event.batch_id, event.cost, event.metrics, result.metrics) - with open('params.pkl', 'w') as f: - cPickle.dump( - parameters, f, protocol=cPickle.HIGHEST_PROTOCOL) - - with open('params.tar', 'w') as f: - parameters.serialize_to_tar(f) + with gzip.open('params.tar.gz', 'w') as f: + parameters.to_tar(f) elif isinstance(event, paddle.event.EndPass): result = trainer.test(reader=paddle.reader.batched( diff --git a/python/paddle/v2/parameters.py b/python/paddle/v2/parameters.py index 6a7b883500..58be523407 100644 --- a/python/paddle/v2/parameters.py +++ b/python/paddle/v2/parameters.py @@ -224,19 +224,6 @@ class Parameters(object): self.__gradient_machines__.append(gradient_machine) - def __getstate__(self): - params = {} - for name in self.names(): - params[name] = self.get(name) - - param_conf = {} - for name in self.__param_conf__: - conf = self.__param_conf__[name] - assert isinstance(conf, ParameterConfig) - param_conf[name] = conf.SerializeToString() - - return {'conf': param_conf, 'params': params} - def serialize(self, name, f): """ @@ -260,10 +247,10 @@ class Parameters(object): :return: """ f.read(16) # header - arr = np.fromfile(f, dtype=np.float32) + arr = np.frombuffer(f.read(), dtype=np.float32) self.set(name, arr.reshape(self.get_shape(name))) - def serialize_to_tar(self, f): + def to_tar(self, f): tar = tarfile.TarFile(fileobj=f, mode='w') for nm in self.names(): buf = cStringIO.StringIO() @@ -273,19 +260,30 @@ class Parameters(object): tarinfo.size = len(buf.getvalue()) tar.addfile(tarinfo, buf) - def __setstate__(self, obj): - Parameters.__init__(self) - - def __impl__(conf, params): - for name in conf: - p = ParameterConfig() - p.ParseFromString(conf[name]) - self.__append_config__(p) - for name in params: - shape = self.get_shape(name) - self.set(name, params[name].reshape(shape)) - - __impl__(**obj) + conf = self.__param_conf__[nm] + confStr = conf.SerializeToString() + tarinfo = tarfile.TarInfo(name="%s.protobuf" % nm) + tarinfo.size = len(confStr) + buf = cStringIO.StringIO(confStr) + buf.seek(0) + tar.addfile(tarinfo, fileobj=buf) + + @staticmethod + def from_tar(f): + params = Parameters() + tar = tarfile.TarFile(fileobj=f, mode='r') + for finfo in tar: + assert isinstance(finfo, tarfile.TarInfo) + if finfo.name.endswith('.protobuf'): + f = tar.extractfile(finfo) + conf = ParameterConfig() + conf.ParseFromString(f.read()) + params.__append_config__(conf) + + for param_name in params.names(): + f = tar.extractfile(param_name) + params.deserialize(param_name, f) + return params def __get_parameter_in_gradient_machine__(gradient_machine, name): From 13d21d04a958c691cf2d66df56d7a3ac6fd889b7 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 18:38:10 +0800 Subject: [PATCH 138/186] Fix merged error --- python/paddle/v2/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py index 0ec7e8a454..0626429291 100644 --- a/python/paddle/v2/__init__.py +++ b/python/paddle/v2/__init__.py @@ -44,5 +44,5 @@ def init(**kwargs): api.initPaddle(*args) -infer = inferencer.infer -batch = minibatch.batch \ No newline at end of file +infer = inference.infer +batch = minibatch.batch From c5fb4fd4d0f0c3f4ac4322e3b038445a0b16ca7c Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Sat, 4 Mar 2017 18:50:00 +0800 Subject: [PATCH 139/186] optimize import of eqToseq_net_v2 for book --- demo/seqToseq/api_train_v2.py | 1 + demo/seqToseq/seqToseq_net_v2.py | 76 ++++++++++++++++---------------- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py index 74ae1cf9ec..8b9db4352d 100644 --- a/demo/seqToseq/api_train_v2.py +++ b/demo/seqToseq/api_train_v2.py @@ -72,6 +72,7 @@ def main(): # define network topology cost = seqToseq_net_v2(source_dict_dim, target_dict_dim) parameters = paddle.parameters.create(cost) + optimizer = paddle.optimizer.Adam(learning_rate=1e-4) def event_handler(event): diff --git a/demo/seqToseq/seqToseq_net_v2.py b/demo/seqToseq/seqToseq_net_v2.py index 1ac95686b4..058a6789d7 100644 --- a/demo/seqToseq/seqToseq_net_v2.py +++ b/demo/seqToseq/seqToseq_net_v2.py @@ -1,8 +1,4 @@ -import paddle.v2.activation as activation -import paddle.v2.attr as attr -import paddle.v2.data_type as data_type -import paddle.v2.layer as layer -import paddle.v2.networks as networks +import paddle.v2 as paddle def seqToseq_net_v2(source_dict_dim, target_dict_dim): @@ -12,64 +8,70 @@ def seqToseq_net_v2(source_dict_dim, target_dict_dim): encoder_size = 512 # dimension of hidden unit in GRU Encoder network #### Encoder - src_word_id = layer.data( + src_word_id = paddle.layer.data( name='source_language_word', - type=data_type.integer_value_sequence(source_dict_dim)) - src_embedding = layer.embedding( + type=paddle.data_type.integer_value_sequence(source_dict_dim)) + src_embedding = paddle.layer.embedding( input=src_word_id, size=word_vector_dim, - param_attr=attr.ParamAttr(name='_source_language_embedding')) - src_forward = networks.simple_gru(input=src_embedding, size=encoder_size) - src_backward = networks.simple_gru( + param_attr=paddle.attr.ParamAttr(name='_source_language_embedding')) + src_forward = paddle.networks.simple_gru( + input=src_embedding, size=encoder_size) + src_backward = paddle.networks.simple_gru( input=src_embedding, size=encoder_size, reverse=True) - encoded_vector = layer.concat(input=[src_forward, src_backward]) + encoded_vector = paddle.layer.concat(input=[src_forward, src_backward]) #### Decoder - with layer.mixed(size=decoder_size) as encoded_proj: - encoded_proj += layer.full_matrix_projection(input=encoded_vector) + with paddle.layer.mixed(size=decoder_size) as encoded_proj: + encoded_proj += paddle.layer.full_matrix_projection( + input=encoded_vector) - backward_first = layer.first_seq(input=src_backward) + backward_first = paddle.layer.first_seq(input=src_backward) - with layer.mixed(size=decoder_size, act=activation.Tanh()) as decoder_boot: - decoder_boot += layer.full_matrix_projection(input=backward_first) + with paddle.layer.mixed( + size=decoder_size, act=paddle.activation.Tanh()) as decoder_boot: + decoder_boot += paddle.layer.full_matrix_projection( + input=backward_first) def gru_decoder_with_attention(enc_vec, enc_proj, current_word): - decoder_mem = layer.memory( + decoder_mem = paddle.layer.memory( name='gru_decoder', size=decoder_size, boot_layer=decoder_boot) - context = networks.simple_attention( + context = paddle.networks.simple_attention( encoded_sequence=enc_vec, encoded_proj=enc_proj, decoder_state=decoder_mem) - with layer.mixed(size=decoder_size * 3) as decoder_inputs: - decoder_inputs += layer.full_matrix_projection(input=context) - decoder_inputs += layer.full_matrix_projection(input=current_word) + with paddle.layer.mixed(size=decoder_size * 3) as decoder_inputs: + decoder_inputs += paddle.layer.full_matrix_projection(input=context) + decoder_inputs += paddle.layer.full_matrix_projection( + input=current_word) - gru_step = layer.gru_step( + gru_step = paddle.layer.gru_step( name='gru_decoder', input=decoder_inputs, output_mem=decoder_mem, size=decoder_size) - with layer.mixed( - size=target_dict_dim, bias_attr=True, - act=activation.Softmax()) as out: - out += layer.full_matrix_projection(input=gru_step) + with paddle.layer.mixed( + size=target_dict_dim, + bias_attr=True, + act=paddle.activation.Softmax()) as out: + out += paddle.layer.full_matrix_projection(input=gru_step) return out decoder_group_name = "decoder_group" - group_input1 = layer.StaticInputV2(input=encoded_vector, is_seq=True) - group_input2 = layer.StaticInputV2(input=encoded_proj, is_seq=True) + group_input1 = paddle.layer.StaticInputV2(input=encoded_vector, is_seq=True) + group_input2 = paddle.layer.StaticInputV2(input=encoded_proj, is_seq=True) group_inputs = [group_input1, group_input2] - trg_embedding = layer.embedding( - input=layer.data( + trg_embedding = paddle.layer.embedding( + input=paddle.layer.data( name='target_language_word', - type=data_type.integer_value_sequence(target_dict_dim)), + type=paddle.data_type.integer_value_sequence(target_dict_dim)), size=word_vector_dim, - param_attr=attr.ParamAttr(name='_target_language_embedding')) + param_attr=paddle.attr.ParamAttr(name='_target_language_embedding')) group_inputs.append(trg_embedding) # For decoder equipped with attention mechanism, in training, @@ -77,14 +79,14 @@ def seqToseq_net_v2(source_dict_dim, target_dict_dim): # while encoded source sequence is accessed to as an unbounded memory. # Here, the StaticInput defines a read-only memory # for the recurrent_group. - decoder = layer.recurrent_group( + decoder = paddle.layer.recurrent_group( name=decoder_group_name, step=gru_decoder_with_attention, input=group_inputs) - lbl = layer.data( + lbl = paddle.layer.data( name='target_language_next_word', - type=data_type.integer_value_sequence(target_dict_dim)) - cost = layer.classification_cost(input=decoder, label=lbl) + type=paddle.data_type.integer_value_sequence(target_dict_dim)) + cost = paddle.layer.classification_cost(input=decoder, label=lbl) return cost From 3432b4cd2e02e540e73f74c25908c40166ce179a Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 18:39:35 +0800 Subject: [PATCH 140/186] Fix pre-commit style checker --- python/paddle/v2/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/paddle/v2/__init__.py b/python/paddle/v2/__init__.py index 0626429291..25526bf409 100644 --- a/python/paddle/v2/__init__.py +++ b/python/paddle/v2/__init__.py @@ -44,5 +44,6 @@ def init(**kwargs): api.initPaddle(*args) + infer = inference.infer batch = minibatch.batch From 3e398eaa8b147c4529cf1d678dec2e17ddab0c4e Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 21:10:42 +0800 Subject: [PATCH 141/186] Follow comments --- python/paddle/v2/layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 1608aa3f71..1e4efedde3 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -28,7 +28,7 @@ The primary usage shows below. act=paddle.activation.Softmax()) # use prediction instance where needed. - parameters = paddle.v2.parameters.create(cost) + parameters = paddle.parameters.create(cost) """ import collections From fd41a87a53d921ba2d5165022656fd99b5537dcb Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sat, 4 Mar 2017 21:50:00 +0800 Subject: [PATCH 142/186] complete data_type documentation --- doc/api/index_en.rst | 10 ++- doc/api/v2/data.rst | 6 ++ python/paddle/trainer/PyDataProvider2.py | 93 +++++++++++++++++++++++- python/paddle/v2/data_type.py | 16 ++-- 4 files changed, 114 insertions(+), 11 deletions(-) create mode 100644 doc/api/v2/data.rst diff --git a/doc/api/index_en.rst b/doc/api/index_en.rst index b7f470e1f8..deeeed26fa 100644 --- a/doc/api/index_en.rst +++ b/doc/api/index_en.rst @@ -7,4 +7,12 @@ Model Config API .. toctree:: :maxdepth: 1 - v2/model_configs.rst \ No newline at end of file + v2/model_configs.rst + +Data API +-------- + +.. toctree:: + :maxdepth: 1 + + v2/data.rst diff --git a/doc/api/v2/data.rst b/doc/api/v2/data.rst new file mode 100644 index 0000000000..65e57f2344 --- /dev/null +++ b/doc/api/v2/data.rst @@ -0,0 +1,6 @@ +######### +DataTypes +######### + +.. automodule:: paddle.v2.data_type + :members: diff --git a/python/paddle/trainer/PyDataProvider2.py b/python/paddle/trainer/PyDataProvider2.py index 4e3c4db853..0e752c117c 100644 --- a/python/paddle/trainer/PyDataProvider2.py +++ b/python/paddle/trainer/PyDataProvider2.py @@ -45,6 +45,23 @@ class CacheType(object): class InputType(object): + """ + InputType is the base class for paddle input types. + + .. note:: + + this is a base class, and should never be used by user. + + :param dim: dimension of input. If the input is an integer, it means the + value range. Otherwise, it means the size of layer. + :type dim: int + :param seq_type: sequence type of input. 0 means it is not a sequence. 1 + means it is a variable length sequence. 2 means it is a + nested sequence. + :type seq_type: int + :param type: data type of input. + :type type: int + """ __slots__ = ['dim', 'seq_type', 'type'] def __init__(self, dim, seq_type, tp): @@ -54,20 +71,61 @@ class InputType(object): def dense_slot(dim, seq_type=SequenceType.NO_SEQUENCE): + """ + Dense Vector. It means the input feature is dense float vector. For example, + if the input is an image with 28*28 pixels, the input of Paddle neural + network should be a dense vector with dimension 784. + + :param dim: dimension of this vector. + :type dim: int + :param seq_type: sequence type of input. + :type seq_type: int + :return: An input type object. + :rtype: InputType + """ return InputType(dim, seq_type, DataType.Dense) def sparse_non_value_slot(dim, seq_type=SequenceType.NO_SEQUENCE): + """ + Sparse binary vector. It means the input feature is a sparse vector and the + every element in this vector is either zero or one. + + :param dim: dimension of this vector. + :type dim: int + :param seq_type: sequence type of this input. + :type seq_type: int + :return: An input type object. + :rtype: InputType + """ return InputType(dim, seq_type, DataType.SparseNonValue) def sparse_value_slot(dim, seq_type=SequenceType.NO_SEQUENCE): + """ + Sparse vector. It means the input feature is a sparse vector. Most of the + elements in this vector are zero, others could be any float value. + + :param dim: dimension of this vector. + :type dim: int + :param seq_type: sequence type of this input. + :type seq_type: int + :return: An input type object. + :rtype: InputType + """ return InputType(dim, seq_type, DataType.SparseValue) def index_slot(value_range, seq_type=SequenceType.NO_SEQUENCE): - """Data type of integer. + """ + Data type of integer. + + :param seq_type: sequence type of this input. + :type seq_type: int :param value_range: range of this integer. + :type value_range: int + :return: An input type object + :rtype: InputType """ return InputType(value_range, seq_type, DataType.Index) @@ -76,10 +134,17 @@ dense_vector = dense_slot sparse_binary_vector = sparse_non_value_slot sparse_vector = sparse_value_slot integer_value = index_slot -integer_value.__doc__ = index_slot.__doc__ def dense_vector_sequence(dim): + """ + Data type of a sequence of dense vector. + + :param dim: dimension of dense vector. + :type dim: int + :return: An input type object + :rtype: InputType + """ return dense_vector(dim, seq_type=SequenceType.SEQUENCE) @@ -88,6 +153,15 @@ def dense_vector_sub_sequence(dim): def sparse_binary_vector_sequence(dim): + """ + Data type of a sequence of sparse vector, which every element is either zero + or one. + + :param dim: dimension of sparse vector. + :type dim: int + :return: An input type object + :rtype: InputType + """ return sparse_binary_vector(dim, seq_type=SequenceType.SEQUENCE) @@ -96,6 +170,15 @@ def sparse_binary_vector_sub_sequence(dim): def sparse_vector_sequence(dim): + """ + Data type of a sequence of sparse vector, which most elements are zero, + others could be any float value. + + :param dim: dimension of sparse vector. + :type dim: int + :return: An input type object + :rtype: InputType + """ return sparse_vector(dim, seq_type=SequenceType.SEQUENCE) @@ -104,8 +187,11 @@ def sparse_vector_sub_sequence(dim): def integer_value_sequence(value_range): - """Data type of a sequence of integer. + """ + Data type of a sequence of integer. + :param value_range: range of each element. + :type value_range: int """ return integer_value(value_range, seq_type=SequenceType.SEQUENCE) @@ -115,7 +201,6 @@ def integer_value_sub_sequence(dim): integer_sequence = integer_value_sequence -integer_sequence.__doc__ = integer_value_sequence.__doc__ class SingleSlotWrapper(object): diff --git a/python/paddle/v2/data_type.py b/python/paddle/v2/data_type.py index 522ddfdaac..d582f76ddf 100644 --- a/python/paddle/v2/data_type.py +++ b/python/paddle/v2/data_type.py @@ -12,11 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -from paddle.trainer.PyDataProvider2 import \ - InputType, DataType, dense_vector, sparse_binary_vector,\ - sparse_vector, integer_value, integer_value_sequence +import paddle.trainer.PyDataProvider2 as pydp2 -__all__ = [ - 'InputType', 'DataType', 'dense_vector', 'sparse_binary_vector', - 'sparse_vector', 'integer_value', 'integer_value_sequence' +import_list = [ + nm for nm in dir(pydp2) + if '_' in nm and nm[0] != '_' and ('value' in nm or 'vector' in nm) ] +import_list.extend(['InputType']) + +for nm in import_list: + globals()[nm] = getattr(pydp2, nm) + +__all__ = import_list From 8fa09b82f9c182b8bec4b538b7c7da9ace03b4eb Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Sat, 4 Mar 2017 21:50:56 +0800 Subject: [PATCH 143/186] add some comment for api_train_v2 of seqtoseq --- demo/seqToseq/api_train_v2.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py index 8b9db4352d..a5f59ec379 100644 --- a/demo/seqToseq/api_train_v2.py +++ b/demo/seqToseq/api_train_v2.py @@ -73,31 +73,34 @@ def main(): cost = seqToseq_net_v2(source_dict_dim, target_dict_dim) parameters = paddle.parameters.create(cost) + # define optimize method and trainer optimizer = paddle.optimizer.Adam(learning_rate=1e-4) - - def event_handler(event): - if isinstance(event, paddle.event.EndIteration): - if event.batch_id % 10 == 0: - print "Pass %d, Batch %d, Cost %f, %s" % ( - event.pass_id, event.batch_id, event.cost, event.metrics) - trainer = paddle.trainer.SGD(cost=cost, parameters=parameters, update_equation=optimizer) + # define data reader reader_dict = { 'source_language_word': 0, 'target_language_word': 1, 'target_language_next_word': 2 } - trn_reader = paddle.reader.batched( + wmt14_reader = paddle.reader.batched( paddle.reader.shuffle( train_reader("data/pre-wmt14/train/train"), buf_size=8192), batch_size=5) + # define event_handler callback + def event_handler(event): + if isinstance(event, paddle.event.EndIteration): + if event.batch_id % 10 == 0: + print "Pass %d, Batch %d, Cost %f, %s" % ( + event.pass_id, event.batch_id, event.cost, event.metrics) + + # start to train trainer.train( - reader=trn_reader, + reader=wmt14_reader, event_handler=event_handler, num_passes=10000, reader_dict=reader_dict) From 797da0695883372a911984b08d7f30ae6de2061f Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Mon, 27 Feb 2017 18:04:07 -0800 Subject: [PATCH 144/186] word2vec v2 api --- demo/word2vec/train_v2.py | 80 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 demo/word2vec/train_v2.py diff --git a/demo/word2vec/train_v2.py b/demo/word2vec/train_v2.py new file mode 100644 index 0000000000..60235c93ea --- /dev/null +++ b/demo/word2vec/train_v2.py @@ -0,0 +1,80 @@ +import math + +import paddle.v2 as paddle + +dictsize = 1953 +embsize = 32 +hiddensize = 256 +N = 5 + + +def wordemb(inlayer): + wordemb = paddle.layer.table_projection( + input=inlayer, + size=embsize, + param_attr=paddle.attr.Param( + name="_proj", + initial_std=0.001, + learning_rate=1, + l2_rate=0, )) + return wordemb + + +def main(): + paddle.init(use_gpu=False, trainer_count=1) + word_dict = paddle.dataset.imikolov.build_dict() + dict_size = len(word_dict) + firstword = paddle.layer.data( + name="firstw", type=paddle.data_type.integer_value(dict_size)) + secondword = paddle.layer.data( + name="secondw", type=paddle.data_type.integer_value(dict_size)) + thirdword = paddle.layer.data( + name="thirdw", type=paddle.data_type.integer_value(dict_size)) + fourthword = paddle.layer.data( + name="fourthw", type=paddle.data_type.integer_value(dict_size)) + nextword = paddle.layer.data( + name="fifthw", type=paddle.data_type.integer_value(dict_size)) + + Efirst = wordemb(firstword) + Esecond = wordemb(secondword) + Ethird = wordemb(thirdword) + Efourth = wordemb(fourthword) + + contextemb = paddle.layer.concat(input=[Efirst, Esecond, Ethird, Efourth]) + hidden1 = paddle.layer.fc(input=contextemb, + size=hiddensize, + act=paddle.activation.Sigmoid(), + layer_attr=paddle.attr.Extra(drop_rate=0.5), + bias_attr=paddle.attr.Param(learning_rate=2), + param_attr=paddle.attr.Param( + initial_std=1. / math.sqrt(embsize * 8), + learning_rate=1)) + predictword = paddle.layer.fc(input=hidden1, + size=dict_size, + bias_attr=paddle.attr.Param(learning_rate=2), + act=paddle.activation.Softmax()) + + def event_handler(event): + if isinstance(event, paddle.event.EndIteration): + if event.batch_id % 100 == 0: + result = trainer.test( + paddle.dataset.imikolov.test(word_dict, N), 128) + print "Pass %d, Batch %d, Cost %f, %s, Testing metrics %s" % ( + event.pass_id, event.batch_id, event.cost, event.metrics, + result.metrics) + + cost = paddle.layer.classification_cost(input=predictword, label=nextword) + parameters = paddle.parameters.create(cost) + adam_optimizer = paddle.optimizer.Adam( + learning_rate=3e-3, + regularization=paddle.optimizer.L2Regularization(8e-4)) + trainer = paddle.trainer.SGD(cost, parameters, adam_optimizer) + trainer.train( + paddle.dataset.imikolov.train(word_dict, N), + num_passes=30, + batch_size=128, + event_handler=event_handler, ) + + +if __name__ == '__main__': + main() From 97a1c0c7e116a4f2e1939ee3aee85eeb401312ab Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Sat, 4 Mar 2017 17:43:38 +0000 Subject: [PATCH 145/186] update word2vec to work with current train api --- demo/word2vec/train_v2.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/demo/word2vec/train_v2.py b/demo/word2vec/train_v2.py index 60235c93ea..7d952b446f 100644 --- a/demo/word2vec/train_v2.py +++ b/demo/word2vec/train_v2.py @@ -58,7 +58,8 @@ def main(): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: result = trainer.test( - paddle.dataset.imikolov.test(word_dict, N), 128) + paddle.batch( + paddle.dataset.imikolov.test(word_dict, N), 32)) print "Pass %d, Batch %d, Cost %f, %s, Testing metrics %s" % ( event.pass_id, event.batch_id, event.cost, event.metrics, result.metrics) @@ -70,10 +71,9 @@ def main(): regularization=paddle.optimizer.L2Regularization(8e-4)) trainer = paddle.trainer.SGD(cost, parameters, adam_optimizer) trainer.train( - paddle.dataset.imikolov.train(word_dict, N), + paddle.batch(paddle.dataset.imikolov.train(word_dict, N), 32), num_passes=30, - batch_size=128, - event_handler=event_handler, ) + event_handler=event_handler) if __name__ == '__main__': From dbffda2ff5e08c8675e5d9a5bd171d2bf62e067b Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Sat, 4 Mar 2017 17:44:24 +0000 Subject: [PATCH 146/186] change sumCost to sum --- python/paddle/v2/trainer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py index 8bcdd122b3..dd64f0565b 100644 --- a/python/paddle/v2/trainer.py +++ b/python/paddle/v2/trainer.py @@ -101,7 +101,7 @@ class SGD(): for each_param in self.__gradient_machine__.getNonStaticParameters( ): updater.update(each_param) - cost_sum = out_args.sumCosts() + cost_sum = out_args.sum() cost = cost_sum / len(data_batch) updater.finishBatch(cost) batch_evaluator.finish() @@ -137,7 +137,7 @@ class SGD(): num_samples += len(data_batch) self.__gradient_machine__.forward( feeder(data_batch), out_args, api.PASS_TEST) - total_cost += out_args.sumCosts() + total_cost += out_args.sum() self.__gradient_machine__.eval(evaluator) evaluator.finish() From 88cb8eeac4b62d32ef74708e7658effb5f96b53e Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Sun, 5 Mar 2017 12:07:39 +0800 Subject: [PATCH 147/186] Complete documentation for v2. --- doc/api/index_cn.rst | 26 +++++++- doc/api/index_en.rst | 8 +++ doc/api/v2/data.rst | 79 ++++++++++++++++++++++++- doc/api/v2/model_configs.rst | 7 +++ doc/api/v2/run_logic.rst | 22 +++++++ doc/design/reader/README.md | 74 +++++++++++------------ python/paddle/v2/data_feeder.py | 49 +++++++-------- python/paddle/v2/dataset/__init__.py | 3 + python/paddle/v2/dataset/cifar.py | 2 + python/paddle/v2/dataset/conll05.py | 6 +- python/paddle/v2/dataset/imdb.py | 2 + python/paddle/v2/dataset/imikolov.py | 2 + python/paddle/v2/dataset/mnist.py | 21 +++++++ python/paddle/v2/dataset/movielens.py | 5 ++ python/paddle/v2/dataset/sentiment.py | 11 ++-- python/paddle/v2/dataset/uci_housing.py | 5 ++ python/paddle/v2/event.py | 4 ++ python/paddle/v2/optimizer.py | 11 +++- python/paddle/v2/parameters.py | 6 ++ python/paddle/v2/reader/__init__.py | 65 +++++++++++++++++--- python/paddle/v2/reader/creator.py | 6 +- python/paddle/v2/reader/decorator.py | 50 +++++++++++----- python/paddle/v2/trainer.py | 26 +++++--- 23 files changed, 381 insertions(+), 109 deletions(-) create mode 100644 doc/api/v2/run_logic.rst diff --git a/doc/api/index_cn.rst b/doc/api/index_cn.rst index 874dd9cb22..fca981221e 100644 --- a/doc/api/index_cn.rst +++ b/doc/api/index_cn.rst @@ -1,2 +1,26 @@ API -=== \ No newline at end of file +=== + +模型配置 API +------------ + +.. toctree:: + :maxdepth: 1 + + v2/model_configs.rst + +数据 API +-------- + +.. toctree:: + :maxdepth: 1 + + v2/data.rst + +训练 API +-------- + +.. toctree:: + :maxdepth: 1 + + v2/run_logic.rst \ No newline at end of file diff --git a/doc/api/index_en.rst b/doc/api/index_en.rst index deeeed26fa..f0ad0fb2ae 100644 --- a/doc/api/index_en.rst +++ b/doc/api/index_en.rst @@ -16,3 +16,11 @@ Data API :maxdepth: 1 v2/data.rst + +Train API +--------- + +.. toctree:: + :maxdepth: 1 + + v2/run_logic.rst \ No newline at end of file diff --git a/doc/api/v2/data.rst b/doc/api/v2/data.rst index 65e57f2344..49f70b3671 100644 --- a/doc/api/v2/data.rst +++ b/doc/api/v2/data.rst @@ -2,5 +2,80 @@ DataTypes ######### -.. automodule:: paddle.v2.data_type - :members: +.. automodule:: paddle.v2.data_type + :members: + +########## +DataFeeder +########## + +.. automodule:: paddle.v2.data_feeder + :members: + +###### +Reader +###### + +.. automodule:: paddle.v2.reader + :members: + +.. automodule:: paddle.v2.reader.creator + :members: + +####### +Dataset +####### + +.. automodule:: paddle.v2.dataset + :members: + + +mnist ++++++ + +.. automodule:: paddle.v2.dataset.mnist + :members: + + +cifar ++++++ + +.. automodule:: paddle.v2.dataset.cifar + :members: + +conll05 ++++++++ + +.. automodule:: paddle.v2.dataset.conll05 + :members: + +imdb +++++ + +.. automodule:: paddle.v2.dataset.imdb + :members: + +imikolov +++++++++ + +.. automodule:: paddle.v2.dataset.imikolov + :members: + +movielens ++++++++++ + +.. automodule:: paddle.v2.dataset.movielens + :members: + +sentiment ++++++++++ + +.. automodule:: paddle.v2.dataset.sentiment + :members: + +uci_housing ++++++++++++ + +.. automodule:: paddle.v2.dataset.uci_housing + :members: + diff --git a/doc/api/v2/model_configs.rst b/doc/api/v2/model_configs.rst index b848bd7045..52e2dcd530 100644 --- a/doc/api/v2/model_configs.rst +++ b/doc/api/v2/model_configs.rst @@ -33,3 +33,10 @@ Networks .. automodule:: paddle.v2.networks :members: + +========== +Optimizers +========== + +.. automodule:: paddle.v2.optimizers + :members: diff --git a/doc/api/v2/run_logic.rst b/doc/api/v2/run_logic.rst new file mode 100644 index 0000000000..522093f8ae --- /dev/null +++ b/doc/api/v2/run_logic.rst @@ -0,0 +1,22 @@ +========== +Parameters +========== + +.. automodule:: paddle.v2.parameters + :members: + + +======= +Trainer +======= + +.. automodule:: paddle.v2.trainer + :members: + + +===== +Event +===== + +.. automodule:: paddle.v2.event + :members: diff --git a/doc/design/reader/README.md b/doc/design/reader/README.md index 03119fdd74..f21f7af520 100644 --- a/doc/design/reader/README.md +++ b/doc/design/reader/README.md @@ -23,19 +23,19 @@ An example implementation for single item data reader creator: ```python def reader_creator_random_image(width, height): - def reader(): - while True: - yield numpy.random.uniform(-1, 1, size=width*height) - return reader + def reader(): + while True: + yield numpy.random.uniform(-1, 1, size=width*height) + return reader ``` An example implementation for multiple item data reader creator: ```python -def reader_creator_random_imageand_label(widht, height, label): - def reader(): - while True: - yield numpy.random.uniform(-1, 1, size=width*height), label - return reader +def reader_creator_random_image_and_label(width, height, label): + def reader(): + while True: + yield numpy.random.uniform(-1, 1, size=width*height), label + return reader ``` ## Batch Reader Interface @@ -74,11 +74,11 @@ mnist_train_batch_reader = paddle.batch(mnist_train, 128) Also easy to create custom batch reader: ```python def custom_batch_reader(): - while True: - batch = [] - for i in xrange(128): - batch.append((numpy.random.uniform(-1, 1, 28*28),)) # note that it's a tuple being appended. - yield batch + while True: + batch = [] + for i in xrange(128): + batch.append((numpy.random.uniform(-1, 1, 28*28),)) # note that it's a tuple being appended. + yield batch mnist_random_image_batch_reader = custom_batch_reader ``` @@ -123,16 +123,16 @@ We can do: ```python def reader_creator_random_image(width, height): - def reader(): - while True: - yield numpy.random.uniform(-1, 1, size=width*height) - return reader + def reader(): + while True: + yield numpy.random.uniform(-1, 1, size=width*height) + return reader def reader_creator_bool(t): - def reader: - while True: - yield t - return reader + def reader: + while True: + yield t + return reader true_reader = reader_creator_bool(True) false_reader = reader_creator_bool(False) @@ -172,18 +172,18 @@ We decided to use dictionary (`{"image":0, "label":1}`) instead of list (`["imag ```python def image_reader_creator(image_path, label_path, n): - def reader(): - f = open(image_path) - l = open(label_path) - images = numpy.fromfile( - f, 'ubyte', count=n * 28 * 28).reshape((n, 28 * 28)).astype('float32') - images = images / 255.0 * 2.0 - 1.0 - labels = numpy.fromfile(l, 'ubyte', count=n).astype("int") - for i in xrange(n): - yield images[i, :], labels[i] # a single entry of data is created each time - f.close() - l.close() - return reader + def reader(): + f = open(image_path) + l = open(label_path) + images = numpy.fromfile( + f, 'ubyte', count=n * 28 * 28).reshape((n, 28 * 28)).astype('float32') + images = images / 255.0 * 2.0 - 1.0 + labels = numpy.fromfile(l, 'ubyte', count=n).astype("int") + for i in xrange(n): + yield images[i, :], labels[i] # a single entry of data is created each time + f.close() + l.close() + return reader # images_reader_creator creates a reader reader = image_reader_creator("/path/to/image_file", "/path/to/label_file", 1024) @@ -196,7 +196,7 @@ An example implementation of paddle.train could be: ```python def train(batch_reader, mapping, batch_size, total_pass): - for pass_idx in range(total_pass): - for mini_batch in batch_reader(): # this loop will never end in online learning. - do_forward_backward(mini_batch, mapping) + for pass_idx in range(total_pass): + for mini_batch in batch_reader(): # this loop will never end in online learning. + do_forward_backward(mini_batch, mapping) ``` diff --git a/python/paddle/v2/data_feeder.py b/python/paddle/v2/data_feeder.py index 3b106e100c..b7465238be 100644 --- a/python/paddle/v2/data_feeder.py +++ b/python/paddle/v2/data_feeder.py @@ -12,8 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from py_paddle import swig_paddle from py_paddle import DataProviderConverter + import data_type __all__ = ['DataFeeder'] @@ -29,7 +29,10 @@ class DataFeeder(DataProviderConverter): to feed it to C++ interface. The example usage: - + + + .. code-block:: python + data_types = [('image', paddle.data_type.dense_vector(784)), ('label', paddle.data_type.integer_value(10))] reader_dict = {'image':0, 'label':1} @@ -43,20 +46,24 @@ class DataFeeder(DataProviderConverter): # [ [1.0,2.0,3.0,4.0], 5, [6,7,8] ] # second sample # ] arg = feeder(minibatch_data) + + .. note:: + + This module is for internal use only. Users should use the `reader` + interface. + + + + :param data_types: A list to specify data name and type. Each item is + a tuple of (data_name, data_type). + + :type data_types: list + :param reader_dict: A dictionary to specify the position of each data + in the input data. + :type reader_dict: dict """ def __init__(self, data_types, reader_dict): - """ - :param data_types: A list to specify data name and type. Each item is - a tuple of (data_name, data_type). For example: - [('image', paddle.data_type.dense_vector(784)), - ('label', paddle.data_type.integer_value(10))] - - :type data_types: A list of tuple - :param reader_dict: A dictionary to specify the position of each data - in the input data. - :type reader_dict: dict() - """ self.input_names = [] input_types = [] self.reader_dict = reader_dict @@ -70,22 +77,12 @@ class DataFeeder(DataProviderConverter): """ :param dat: A list of mini-batch data. Each sample is a list or tuple one feature or multiple features. - for example: - [ - ([0.2, 0.2], ), # first sample - ([0.8, 0.3], ), # second sample - ] - or, - [ - [[0.2, 0.2], ], # first sample - [[0.8, 0.3], ], # second sample - ] - - :type dat: List + + :type dat: list :param argument: An Arguments object contains this mini-batch data with one or multiple features. The Arguments definition is in the API. - :type argument: swig_paddle.Arguments + :type argument: py_paddle.swig_paddle.Arguments """ def reorder_data(data): diff --git a/python/paddle/v2/dataset/__init__.py b/python/paddle/v2/dataset/__init__.py index 82f11a7c41..9ef0277609 100644 --- a/python/paddle/v2/dataset/__init__.py +++ b/python/paddle/v2/dataset/__init__.py @@ -11,6 +11,9 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +""" +Dataset package. +""" import mnist import imikolov diff --git a/python/paddle/v2/dataset/cifar.py b/python/paddle/v2/dataset/cifar.py index 5c6f5d8556..d9f7a830ee 100644 --- a/python/paddle/v2/dataset/cifar.py +++ b/python/paddle/v2/dataset/cifar.py @@ -13,6 +13,8 @@ # limitations under the License. """ CIFAR dataset: https://www.cs.toronto.edu/~kriz/cifar.html + +TODO(yuyang18): Complete the comments. """ import cPickle diff --git a/python/paddle/v2/dataset/conll05.py b/python/paddle/v2/dataset/conll05.py index e96a701c1a..9eab49ee39 100644 --- a/python/paddle/v2/dataset/conll05.py +++ b/python/paddle/v2/dataset/conll05.py @@ -16,15 +16,17 @@ import tarfile import gzip import itertools from common import download - -__all__ = ['test, get_dict', 'get_embedding'] """ Conll 2005 dataset. Paddle semantic role labeling Book and demo use this dataset as an example. Because Conll 2005 is not free in public, the default downloaded URL is test set of Conll 2005 (which is public). Users can change URL and MD5 to their Conll dataset. + +TODO(yuyang18): Complete comments. """ +__all__ = ['test, get_dict', 'get_embedding'] + DATA_URL = 'http://www.cs.upc.edu/~srlconll/conll05st-tests.tar.gz' DATA_MD5 = '387719152ae52d60422c016e92a742fc' WORDDICT_URL = 'http://paddlepaddle.bj.bcebos.com/demo/srl_dict_and_embedding/wordDict.txt' diff --git a/python/paddle/v2/dataset/imdb.py b/python/paddle/v2/dataset/imdb.py index f27756a38a..76019d9f54 100644 --- a/python/paddle/v2/dataset/imdb.py +++ b/python/paddle/v2/dataset/imdb.py @@ -13,6 +13,8 @@ # limitations under the License. """ IMDB dataset: http://ai.stanford.edu/%7Eamaas/data/sentiment/aclImdb_v1.tar.gz + +TODO(yuyang18): Complete comments. """ import paddle.v2.dataset.common diff --git a/python/paddle/v2/dataset/imikolov.py b/python/paddle/v2/dataset/imikolov.py index deb556942d..97c160f111 100644 --- a/python/paddle/v2/dataset/imikolov.py +++ b/python/paddle/v2/dataset/imikolov.py @@ -13,6 +13,8 @@ # limitations under the License. """ imikolov's simple dataset: http://www.fit.vutbr.cz/~imikolov/rnnlm/ + +Complete comments. """ import paddle.v2.dataset.common import tarfile diff --git a/python/paddle/v2/dataset/mnist.py b/python/paddle/v2/dataset/mnist.py index 6a621a2aaa..16f2fcb99d 100644 --- a/python/paddle/v2/dataset/mnist.py +++ b/python/paddle/v2/dataset/mnist.py @@ -13,6 +13,9 @@ # limitations under the License. """ MNIST dataset. + +This module will download dataset from http://yann.lecun.com/exdb/mnist/ and +parse train set and test set into paddle reader creators. """ import paddle.v2.dataset.common import subprocess @@ -72,6 +75,15 @@ def reader_creator(image_filename, label_filename, buffer_size): def train(): + """ + MNIST train set creator. + + It returns a reader creator, each sample in the reader is image pixels in + [0, 1] and label in [0, 9]. + + :return: Train reader creator + :rtype: callable + """ return reader_creator( paddle.v2.dataset.common.download(TRAIN_IMAGE_URL, 'mnist', TRAIN_IMAGE_MD5), @@ -80,6 +92,15 @@ def train(): def test(): + """ + MNIST test set cretor. + + It returns a reader creator, each sample in the reader is image pixels in + [0, 1] and label in [0, 9]. + + :return: Test reader creator. + :rtype: callable + """ return reader_creator( paddle.v2.dataset.common.download(TEST_IMAGE_URL, 'mnist', TEST_IMAGE_MD5), diff --git a/python/paddle/v2/dataset/movielens.py b/python/paddle/v2/dataset/movielens.py index c22bcfa38b..dc65e8f8b6 100644 --- a/python/paddle/v2/dataset/movielens.py +++ b/python/paddle/v2/dataset/movielens.py @@ -11,6 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +""" +Movielens 1-M dataset. + +TODO(yuyang18): Complete comments. +""" import zipfile from common import download diff --git a/python/paddle/v2/dataset/sentiment.py b/python/paddle/v2/dataset/sentiment.py index cbd08fa736..71689fd61b 100644 --- a/python/paddle/v2/dataset/sentiment.py +++ b/python/paddle/v2/dataset/sentiment.py @@ -15,18 +15,19 @@ # See the License for the specific language governing permissions and # limitations under the License. """ -The script fetch and preprocess movie_reviews data set +The script fetch and preprocess movie_reviews data set that provided by NLTK -that provided by NLTK +TODO(yuyang18): Complete dataset. """ -import common import collections -import nltk -import numpy as np from itertools import chain + +import nltk from nltk.corpus import movie_reviews +import common + __all__ = ['train', 'test', 'get_word_dict'] NUM_TRAINING_INSTANCES = 1600 NUM_TOTAL_INSTANCES = 2000 diff --git a/python/paddle/v2/dataset/uci_housing.py b/python/paddle/v2/dataset/uci_housing.py index b5a0537af6..27f454b137 100644 --- a/python/paddle/v2/dataset/uci_housing.py +++ b/python/paddle/v2/dataset/uci_housing.py @@ -11,6 +11,11 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +""" +UCI Housing dataset. + +TODO(yuyang18): Complete comments. +""" import numpy as np import os diff --git a/python/paddle/v2/event.py b/python/paddle/v2/event.py index a429e36b63..1ad52b8baa 100644 --- a/python/paddle/v2/event.py +++ b/python/paddle/v2/event.py @@ -34,6 +34,10 @@ class WithMetric(object): class TestResult(WithMetric): + """ + Result that trainer.test return. + """ + def __init__(self, evaluator, cost): super(TestResult, self).__init__(evaluator) self.cost = cost diff --git a/python/paddle/v2/optimizer.py b/python/paddle/v2/optimizer.py index 10e255dc94..1a01d95c20 100644 --- a/python/paddle/v2/optimizer.py +++ b/python/paddle/v2/optimizer.py @@ -1,7 +1,12 @@ import py_paddle.swig_paddle as swig_api -import paddle.trainer_config_helpers.optimizers as v1_optimizers + import paddle.trainer_config_helpers.config_parser_utils as config_parser_utils -import paddle.v2 +import paddle.trainer_config_helpers.optimizers as v1_optimizers +""" +Optimizers(update equation) for SGD method. + +TODO(yuyang18): Complete comments. +""" __all__ = [ 'Momentum', 'Adam', 'Adamax', 'AdaGrad', 'DecayedAdaGrad', 'AdaDelta', @@ -44,7 +49,7 @@ class Optimizer(object): class Momentum(Optimizer): def __init__(self, momentum=None, sparse=False, **kwargs): learning_method = v1_optimizers.MomentumOptimizer( - momentum=None, sparse=False) + momentum=momentum, sparse=sparse) super(Momentum, self).__init__( learning_method=learning_method, **kwargs) diff --git a/python/paddle/v2/parameters.py b/python/paddle/v2/parameters.py index 2a6026bcab..7ee388f067 100644 --- a/python/paddle/v2/parameters.py +++ b/python/paddle/v2/parameters.py @@ -10,6 +10,7 @@ __all__ = ['Parameters', 'create'] def create(layers): """ Create parameter pool by topology. + :param layers: :return: """ @@ -67,6 +68,7 @@ class Parameters(object): def keys(self): """ keys are the names of each parameter. + :return: list of parameter name :rtype: list """ @@ -75,6 +77,7 @@ class Parameters(object): def names(self): """ names of each parameter. + :return: list of parameter name :rtype: list """ @@ -83,6 +86,7 @@ class Parameters(object): def has_key(self, key): """ has_key return true if there are such parameter name == key + :param key: Parameter name :type key: basestring :return: True if contains such key @@ -136,6 +140,7 @@ class Parameters(object): def get_shape(self, key): """ get shape of the parameter. + :param key: parameter name :type key: basestring :return: parameter's shape @@ -190,6 +195,7 @@ class Parameters(object): def set(self, parameter_name, value): """ Set parameter by parameter name & matrix. + :param parameter_name: parameter name :type parameter_name: basestring :param value: parameter matrix diff --git a/python/paddle/v2/reader/__init__.py b/python/paddle/v2/reader/__init__.py index 7373dc461b..3b059735a9 100644 --- a/python/paddle/v2/reader/__init__.py +++ b/python/paddle/v2/reader/__init__.py @@ -11,15 +11,64 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +""" +At training and testing time, PaddlePaddle programs need to read data. To ease +the users' work to write data reading code, we define that -# It would be too lengthy to require our users to prefix decorators with `decorator`. -# For example, we want the following line -# -# r = paddle.reader.decorator.bufferd(paddle.reader.creator.text("hello.txt")) -# -# to be a shorter version: -# -# r = paddle.reader.buffered(paddle.reader.creator.text("hello.txt")) +- 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. + +##################### +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 :code:`for x in iterable`)\: + +.. code-block:: python + + 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 `_ (e.g., numpy 1d +array of float32, int, list of int) + +An example implementation for single item data reader creator: + +.. code-block:: python + + def reader_creator_random_image(width, height): + def reader(): + while True: + yield numpy.random.uniform(-1, 1, size=width*height) + return reader + +An example implementation for multiple item data reader creator: + +.. code-block:: python + + def reader_creator_random_image_and_label(width, height, label): + def reader(): + while True: + yield numpy.random.uniform(-1, 1, size=width*height), label + return reader + + +TODO(yuyang18): Should we add whole design doc here? +""" + +import decorator from decorator import * import creator + +__all__ = decorator.__all__ + ['creator'] diff --git a/python/paddle/v2/reader/creator.py b/python/paddle/v2/reader/creator.py index 5a91bb0b8e..07142056f8 100644 --- a/python/paddle/v2/reader/creator.py +++ b/python/paddle/v2/reader/creator.py @@ -11,6 +11,10 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +""" +Creator package contains some simple reader creator, which could be used in user +program. +""" __all__ = ['np_array', 'text_file'] @@ -38,7 +42,7 @@ def np_array(x): def text_file(path): """ Creates a data reader that outputs text line by line from given text file. - Trailing new line ('\n') of each line will be removed. + Trailing new line ('\\\\n') of each line will be removed. :path: path of the text file. :returns: data reader of text file diff --git a/python/paddle/v2/reader/decorator.py b/python/paddle/v2/reader/decorator.py index b7657e2776..4012499724 100644 --- a/python/paddle/v2/reader/decorator.py +++ b/python/paddle/v2/reader/decorator.py @@ -12,25 +12,27 @@ # See the License for the specific language governing permissions and # limitations under the License. -__all__ = [ - 'map_readers', 'buffered', 'compose', 'chain', 'shuffle', - 'ComposeNotAligned', 'batched', 'firstn' -] - import itertools import random from Queue import Queue from threading import Thread +__all__ = [ + 'map_readers', 'buffered', 'compose', 'chain', 'shuffle', + 'ComposeNotAligned', 'batched', 'firstn' +] + def map_readers(func, *readers): """ Creates a data reader that outputs return value of function using output of each data readers as arguments. - :param func: function to use. - :param *readers: readers whose outputs will be used as arguments of func. - :returns: the created data reader. + :param func: function to use. The type of func should be (Sample) => Sample + :type: callable + :param readers: readers whose outputs will be used as arguments of func. + :return: the created data reader. + :rtype: callable """ def reader(): @@ -45,16 +47,19 @@ def map_readers(func, *readers): def shuffle(reader, buf_size): """ - Creates a data reader whose data output is suffled. + Creates a data reader whose data output is shuffled. Output from the iterator that created by original reader will be buffered into shuffle buffer, and then shuffled. The size of shuffle buffer is determined by argument buf_size. :param reader: the original reader whose output will be shuffled. + :type reader: callable :param buf_size: shuffle buffer size. + :type buf_size: int - :returns:the new reader whose output is shuffled. + :return: the new reader whose output is shuffled. + :rtype: callable """ def data_reader(): @@ -88,7 +93,8 @@ def chain(*readers): [0, 0, 0, 1, 1, 1, 2, 2, 2] :param readers: input readers. - :returns: the new data reader. + :return: the new data reader. + :rtype: callable """ def reader(): @@ -115,12 +121,13 @@ def compose(*readers, **kwargs): The composed reader will output: (1, 2, 3, 4, 5) - :*readers: readers that will be composed together. - :check_alignment: if True, will check if input readers are aligned + :param readers: readers that will be composed together. + :param check_alignment: if True, will check if input readers are aligned correctly. If False, will not check alignment and trailing outputs will be discarded. Defaults to True. + :type check_alignment: bool - :returns: the new data reader. + :return: the new data reader. :raises ComposeNotAligned: outputs of readers are not aligned. Will not raise when check_alignment is set to False. @@ -161,7 +168,9 @@ def buffered(reader, size): as the buffer is not empty. :param reader: the data reader to read from. + :type reader: callable :param size: max buffer size. + :type size: int :returns: the buffered data reader. """ @@ -196,9 +205,13 @@ def buffered(reader, size): def batched(reader, batch_size): """ Create a batched reader. + :param reader: the data reader to read from. - :param batch_size: batch_size + :type reader: callable + :param batch_size: size of each mini-batch + :type batch_size: int :return: the batched reader. + :rtype: callable """ def batched_reader(): @@ -218,6 +231,13 @@ def batched(reader, batch_size): def firstn(reader, n): """ Limit the max number of samples that reader could return. + + :param reader: the data reader to read from. + :type reader: callable + :param n: the max number of samples that return. + :type n: int + :return: the decorated reader. + :rtype: callable """ # TODO(yuyang18): Check if just drop the reader, could clean the opened diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py index 8bcdd122b3..7b70672136 100644 --- a/python/paddle/v2/trainer.py +++ b/python/paddle/v2/trainer.py @@ -9,6 +9,10 @@ from . import optimizer as v2_optimizer from . import parameters as v2_parameters __all__ = ['SGD'] +""" +Trainer package +TODO(yuyang18): Complete comments. +""" def default_event_handler(event): @@ -22,14 +26,20 @@ def default_event_handler(event): pass -class SGD(): - def __init__(self, cost, parameters, update_equation): - """ - Simple SGD Trainer. +class SGD(object): + """ + Simple SGD Trainer. + TODO(yuyang18): Complete comments + + :param update_equation: The optimizer object. + :type update_equation: paddle.v2.optimizer.Optimizer + :param cost: Target cost that neural network should be optimized. + :type cost: paddle.v2.config_base.Layer + :param parameters: The parameters dictionary. + :type parameters: paddle.v2.parameters.Parameters + """ - :param update_equation: The optimizer object. - :type update_equation: v2_optimizer.Optimizer - """ + def __init__(self, cost, parameters, update_equation): if not isinstance(parameters, v2_parameters.Parameters): raise TypeError('parameters should be parameters') @@ -56,8 +66,6 @@ class SGD(): Training method. Will train num_passes of input data. :param reader: - :param topology: Network Topology, use one or more Layers to represent it. - :param parameters: The parameter pools. :param num_passes: The total train passes. :param event_handler: Event handler. A method will be invoked when event occurred. From 98522dcb3390ecbccc4c544e0c9c57b8d3e4b2c9 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Sun, 5 Mar 2017 21:26:44 +0800 Subject: [PATCH 148/186] optimizer wmt14 dataset --- demo/seqToseq/api_train_v2.py | 161 +++++++++++++++----------- demo/seqToseq/seqToseq_net_v2.py | 92 --------------- python/paddle/v2/dataset/wmt14.py | 185 +++++++++++++----------------- 3 files changed, 174 insertions(+), 264 deletions(-) delete mode 100644 demo/seqToseq/seqToseq_net_v2.py diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py index a5f59ec379..f100ef80cb 100644 --- a/demo/seqToseq/api_train_v2.py +++ b/demo/seqToseq/api_train_v2.py @@ -1,76 +1,106 @@ -import os - import paddle.v2 as paddle -from seqToseq_net_v2 import seqToseq_net_v2 - -# Data Definiation. -# TODO:This code should be merged to dataset package. -data_dir = "./data/pre-wmt14" -src_lang_dict = os.path.join(data_dir, 'src.dict') -trg_lang_dict = os.path.join(data_dir, 'trg.dict') - -source_dict_dim = len(open(src_lang_dict, "r").readlines()) -target_dict_dim = len(open(trg_lang_dict, "r").readlines()) - - -def read_to_dict(dict_path): - with open(dict_path, "r") as fin: - out_dict = { - line.strip(): line_count - for line_count, line in enumerate(fin) - } - return out_dict - - -src_dict = read_to_dict(src_lang_dict) -trg_dict = read_to_dict(trg_lang_dict) - -train_list = os.path.join(data_dir, 'train.list') -test_list = os.path.join(data_dir, 'test.list') - -UNK_IDX = 2 -START = "" -END = "" - -def _get_ids(s, dictionary): - words = s.strip().split() - return [dictionary[START]] + \ - [dictionary.get(w, UNK_IDX) for w in words] + \ - [dictionary[END]] - - -def train_reader(file_name): - def reader(): - with open(file_name, 'r') as f: - for line_count, line in enumerate(f): - line_split = line.strip().split('\t') - if len(line_split) != 2: - continue - src_seq = line_split[0] # one source sequence - src_ids = _get_ids(src_seq, src_dict) - - trg_seq = line_split[1] # one target sequence - trg_words = trg_seq.split() - trg_ids = [trg_dict.get(w, UNK_IDX) for w in trg_words] - - # remove sequence whose length > 80 in training mode - if len(src_ids) > 80 or len(trg_ids) > 80: - continue - trg_ids_next = trg_ids + [trg_dict[END]] - trg_ids = [trg_dict[START]] + trg_ids - - yield src_ids, trg_ids, trg_ids_next - - return reader +def seqToseq_net(source_dict_dim, target_dict_dim): + ### Network Architecture + word_vector_dim = 512 # dimension of word vector + decoder_size = 512 # dimension of hidden unit in GRU Decoder network + encoder_size = 512 # dimension of hidden unit in GRU Encoder network + + #### Encoder + src_word_id = paddle.layer.data( + name='source_language_word', + type=paddle.data_type.integer_value_sequence(source_dict_dim)) + src_embedding = paddle.layer.embedding( + input=src_word_id, + size=word_vector_dim, + param_attr=paddle.attr.ParamAttr(name='_source_language_embedding')) + src_forward = paddle.networks.simple_gru( + input=src_embedding, size=encoder_size) + src_backward = paddle.networks.simple_gru( + input=src_embedding, size=encoder_size, reverse=True) + encoded_vector = paddle.layer.concat(input=[src_forward, src_backward]) + + #### Decoder + with paddle.layer.mixed(size=decoder_size) as encoded_proj: + encoded_proj += paddle.layer.full_matrix_projection( + input=encoded_vector) + + backward_first = paddle.layer.first_seq(input=src_backward) + + with paddle.layer.mixed( + size=decoder_size, act=paddle.activation.Tanh()) as decoder_boot: + decoder_boot += paddle.layer.full_matrix_projection( + input=backward_first) + + def gru_decoder_with_attention(enc_vec, enc_proj, current_word): + + decoder_mem = paddle.layer.memory( + name='gru_decoder', size=decoder_size, boot_layer=decoder_boot) + + context = paddle.networks.simple_attention( + encoded_sequence=enc_vec, + encoded_proj=enc_proj, + decoder_state=decoder_mem) + + with paddle.layer.mixed(size=decoder_size * 3) as decoder_inputs: + decoder_inputs += paddle.layer.full_matrix_projection(input=context) + decoder_inputs += paddle.layer.full_matrix_projection( + input=current_word) + + gru_step = paddle.layer.gru_step( + name='gru_decoder', + input=decoder_inputs, + output_mem=decoder_mem, + size=decoder_size) + + with paddle.layer.mixed( + size=target_dict_dim, + bias_attr=True, + act=paddle.activation.Softmax()) as out: + out += paddle.layer.full_matrix_projection(input=gru_step) + return out + + decoder_group_name = "decoder_group" + group_input1 = paddle.layer.StaticInputV2(input=encoded_vector, is_seq=True) + group_input2 = paddle.layer.StaticInputV2(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) + + # For decoder equipped with attention mechanism, in training, + # target embeding (the groudtruth) is the data input, + # while encoded source sequence is accessed to as an unbounded memory. + # Here, the StaticInput defines a read-only memory + # for the recurrent_group. + decoder = paddle.layer.recurrent_group( + name=decoder_group_name, + step=gru_decoder_with_attention, + input=group_inputs) + + lbl = paddle.layer.data( + name='target_language_next_word', + type=paddle.data_type.integer_value_sequence(target_dict_dim)) + cost = paddle.layer.classification_cost(input=decoder, label=lbl) + + return cost def main(): paddle.init(use_gpu=False, trainer_count=1) + # source and target dict dim. + dict_size = 30000 + source_dict_dim = target_dict_dim = dict_size + # define network topology - cost = seqToseq_net_v2(source_dict_dim, target_dict_dim) + cost = seqToseq_net(source_dict_dim, target_dict_dim) parameters = paddle.parameters.create(cost) # define optimize method and trainer @@ -85,10 +115,9 @@ def main(): 'target_language_word': 1, 'target_language_next_word': 2 } - wmt14_reader = paddle.reader.batched( paddle.reader.shuffle( - train_reader("data/pre-wmt14/train/train"), buf_size=8192), + paddle.dataset.wmt14.train(dict_size=dict_size), buf_size=8192), batch_size=5) # define event_handler callback diff --git a/demo/seqToseq/seqToseq_net_v2.py b/demo/seqToseq/seqToseq_net_v2.py deleted file mode 100644 index 058a6789d7..0000000000 --- a/demo/seqToseq/seqToseq_net_v2.py +++ /dev/null @@ -1,92 +0,0 @@ -import paddle.v2 as paddle - - -def seqToseq_net_v2(source_dict_dim, target_dict_dim): - ### Network Architecture - word_vector_dim = 512 # dimension of word vector - decoder_size = 512 # dimension of hidden unit in GRU Decoder network - encoder_size = 512 # dimension of hidden unit in GRU Encoder network - - #### Encoder - src_word_id = paddle.layer.data( - name='source_language_word', - type=paddle.data_type.integer_value_sequence(source_dict_dim)) - src_embedding = paddle.layer.embedding( - input=src_word_id, - size=word_vector_dim, - param_attr=paddle.attr.ParamAttr(name='_source_language_embedding')) - src_forward = paddle.networks.simple_gru( - input=src_embedding, size=encoder_size) - src_backward = paddle.networks.simple_gru( - input=src_embedding, size=encoder_size, reverse=True) - encoded_vector = paddle.layer.concat(input=[src_forward, src_backward]) - - #### Decoder - with paddle.layer.mixed(size=decoder_size) as encoded_proj: - encoded_proj += paddle.layer.full_matrix_projection( - input=encoded_vector) - - backward_first = paddle.layer.first_seq(input=src_backward) - - with paddle.layer.mixed( - size=decoder_size, act=paddle.activation.Tanh()) as decoder_boot: - decoder_boot += paddle.layer.full_matrix_projection( - input=backward_first) - - def gru_decoder_with_attention(enc_vec, enc_proj, current_word): - - decoder_mem = paddle.layer.memory( - name='gru_decoder', size=decoder_size, boot_layer=decoder_boot) - - context = paddle.networks.simple_attention( - encoded_sequence=enc_vec, - encoded_proj=enc_proj, - decoder_state=decoder_mem) - - with paddle.layer.mixed(size=decoder_size * 3) as decoder_inputs: - decoder_inputs += paddle.layer.full_matrix_projection(input=context) - decoder_inputs += paddle.layer.full_matrix_projection( - input=current_word) - - gru_step = paddle.layer.gru_step( - name='gru_decoder', - input=decoder_inputs, - output_mem=decoder_mem, - size=decoder_size) - - with paddle.layer.mixed( - size=target_dict_dim, - bias_attr=True, - act=paddle.activation.Softmax()) as out: - out += paddle.layer.full_matrix_projection(input=gru_step) - return out - - decoder_group_name = "decoder_group" - group_input1 = paddle.layer.StaticInputV2(input=encoded_vector, is_seq=True) - group_input2 = paddle.layer.StaticInputV2(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) - - # For decoder equipped with attention mechanism, in training, - # target embeding (the groudtruth) is the data input, - # while encoded source sequence is accessed to as an unbounded memory. - # Here, the StaticInput defines a read-only memory - # for the recurrent_group. - decoder = paddle.layer.recurrent_group( - name=decoder_group_name, - step=gru_decoder_with_attention, - input=group_inputs) - - lbl = paddle.layer.data( - name='target_language_next_word', - type=paddle.data_type.integer_value_sequence(target_dict_dim)) - cost = paddle.layer.classification_cost(input=decoder, label=lbl) - - return cost diff --git a/python/paddle/v2/dataset/wmt14.py b/python/paddle/v2/dataset/wmt14.py index 9904848b5d..5a9dd4ca80 100644 --- a/python/paddle/v2/dataset/wmt14.py +++ b/python/paddle/v2/dataset/wmt14.py @@ -14,129 +14,102 @@ """ wmt14 dataset """ -import paddle.v2.dataset.common -import tarfile +import os import os.path -import itertools +import tarfile + +import paddle.v2.dataset.common +from wmt14_util import SeqToSeqDatasetCreater __all__ = ['train', 'test', 'build_dict'] URL_DEV_TEST = 'http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/data/dev+test.tgz' MD5_DEV_TEST = '7d7897317ddd8ba0ae5c5fa7248d3ff5' -URL_TRAIN = 'http://localhost:8000/train.tgz' -MD5_TRAIN = '72de99da2830ea5a3a2c4eb36092bbc7' - - -def word_count(f, word_freq=None): - add = paddle.v2.dataset.common.dict_add - if word_freq == None: - word_freq = {} - - for l in f: - for w in l.strip().split(): - add(word_freq, w) - add(word_freq, '') - add(word_freq, '') - - return word_freq - - -def get_word_dix(word_freq): - TYPO_FREQ = 50 - word_freq = filter(lambda x: x[1] > TYPO_FREQ, word_freq.items()) - word_freq_sorted = sorted(word_freq, key=lambda x: (-x[1], x[0])) - words, _ = list(zip(*word_freq_sorted)) - word_idx = dict(zip(words, xrange(len(words)))) - word_idx[''] = len(words) - return word_idx - - -def get_word_freq(train, dev): - word_freq = word_count(train, word_count(dev)) - if '' in word_freq: - # remove for now, since we will set it as last index - del word_freq[''] - return word_freq - - -def build_dict(): - base_dir = './wmt14-data' - train_en_filename = base_dir + '/train/train.en' - train_fr_filename = base_dir + '/train/train.fr' - dev_en_filename = base_dir + '/dev/ntst1213.en' - dev_fr_filename = base_dir + '/dev/ntst1213.fr' - - if not os.path.exists(train_en_filename) or not os.path.exists( - train_fr_filename): +URL_TRAIN = 'http://localhost:8989/wmt14.tgz' +MD5_TRAIN = '7373473f86016f1f48037c9c340a2d5b' + +START = "" +END = "" +UNK = "" +UNK_IDX = 2 + +DEFAULT_DATA_DIR = "./data" +ORIGIN_DATA_DIR = "wmt14" +INNER_DATA_DIR = "pre-wmt14" +SRC_DICT = INNER_DATA_DIR + "/src.dict" +TRG_DICT = INNER_DATA_DIR + "/trg.dict" +TRAIN_FILE = INNER_DATA_DIR + "/train/train" + + +def __process_data__(data_path, dict_size=None): + downloaded_data = os.path.join(data_path, ORIGIN_DATA_DIR) + if not os.path.exists(downloaded_data): + # 1. download and extract tgz. with tarfile.open( paddle.v2.dataset.common.download(URL_TRAIN, 'wmt14', MD5_TRAIN)) as tf: - tf.extractall(base_dir) - - if not os.path.exists(dev_en_filename) or not os.path.exists( - dev_fr_filename): - with tarfile.open( - paddle.v2.dataset.common.download(URL_DEV_TEST, 'wmt14', - MD5_DEV_TEST)) as tf: - tf.extractall(base_dir) - - f_en = open(train_en_filename) - f_fr = open(train_fr_filename) - f_en_dev = open(dev_en_filename) - f_fr_dev = open(dev_fr_filename) - - word_freq_en = get_word_freq(f_en, f_en_dev) - word_freq_fr = get_word_freq(f_fr, f_fr_dev) - - f_en.close() - f_fr.close() - f_en_dev.close() - f_fr_dev.close() - - return get_word_dix(word_freq_en), get_word_dix(word_freq_fr) - - -def reader_creator(directory, path_en, path_fr, URL, MD5, dict_en, dict_fr): - def reader(): - if not os.path.exists(path_en) or not os.path.exists(path_fr): - with tarfile.open( - paddle.v2.dataset.common.download(URL, 'wmt14', MD5)) as tf: - tf.extractall(directory) - - f_en = open(path_en) - f_fr = open(path_fr) - UNK_en = dict_en[''] - UNK_fr = dict_fr[''] - - for en, fr in itertools.izip(f_en, f_fr): - src_ids = [dict_en.get(w, UNK_en) for w in en.strip().split()] - tar_ids = [ - dict_fr.get(w, UNK_fr) - for w in [''] + fr.strip().split() + [''] + tf.extractall(data_path) + + # 2. process data file to intermediate format. + processed_data = os.path.join(data_path, INNER_DATA_DIR) + if not os.path.exists(processed_data): + dict_size = dict_size or -1 + data_creator = SeqToSeqDatasetCreater(downloaded_data, processed_data) + data_creator.create_dataset(dict_size, mergeDict=False) + + +def __read_to_dict__(dict_path, count): + with open(dict_path, "r") as fin: + out_dict = dict() + for line_count, line in enumerate(fin): + if line_count <= count: + out_dict[line.strip()] = line_count + else: + break + return out_dict + + +def __reader__(file_name, src_dict, trg_dict): + with open(file_name, 'r') as f: + for line_count, line in enumerate(f): + line_split = line.strip().split('\t') + if len(line_split) != 2: + continue + src_seq = line_split[0] # one source sequence + src_words = src_seq.split() + src_ids = [ + src_dict.get(w, UNK_IDX) for w in [START] + src_words + [END] ] + trg_seq = line_split[1] # one target sequence + trg_words = trg_seq.split() + trg_ids = [trg_dict.get(w, UNK_IDX) for w in trg_words] + # remove sequence whose length > 80 in training mode - if len(src_ids) == 0 or len(tar_ids) <= 1 or len( - src_ids) > 80 or len(tar_ids) > 80: + if len(src_ids) > 80 or len(trg_ids) > 80: continue + trg_ids_next = trg_ids + [trg_dict[END]] + trg_ids = [trg_dict[START]] + trg_ids + + yield src_ids, trg_ids, trg_ids_next - yield src_ids, tar_ids[:-1], tar_ids[1:] - f_en.close() - f_fr.close() +def train(data_dir=None, dict_size=None): + data_dir = data_dir or DEFAULT_DATA_DIR + __process_data__(data_dir, dict_size) + src_lang_dict = os.path.join(data_dir, SRC_DICT) + trg_lang_dict = os.path.join(data_dir, TRG_DICT) + train_file_name = os.path.join(data_dir, TRAIN_FILE) - return reader + default_dict_size = len(open(src_lang_dict, "r").readlines()) + if dict_size > default_dict_size: + raise ValueError("dict_dim should not be larger then the " + "length of word dict") -def train(dict_en, dict_fr): - directory = './wmt14-data' - return reader_creator(directory, directory + '/train/train.en', - directory + '/train/train.fr', URL_TRAIN, MD5_TRAIN, - dict_en, dict_fr) + real_dict_dim = dict_size or default_dict_size + src_dict = __read_to_dict__(src_lang_dict, real_dict_dim) + trg_dict = __read_to_dict__(trg_lang_dict, real_dict_dim) -def test(dict_en, dict_fr): - directory = './wmt14-data' - return reader_creator(directory, directory + '/dev/ntst1213.en', - directory + '/dev/ntst1213.fr', URL_DEV_TEST, - MD5_DEV_TEST, dict_en, dict_fr) + return lambda: __reader__(train_file_name, src_dict, trg_dict) From f6f444ff3da1ab16d4b770d9c98615095f842715 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Sun, 5 Mar 2017 21:55:46 +0800 Subject: [PATCH 149/186] optimize code --- demo/seqToseq/api_train_v2.py | 2 +- demo/seqToseq/preprocess.py | 160 +--------------------------------- 2 files changed, 2 insertions(+), 160 deletions(-) diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py index f100ef80cb..177fd26d68 100644 --- a/demo/seqToseq/api_train_v2.py +++ b/demo/seqToseq/api_train_v2.py @@ -115,7 +115,7 @@ def main(): 'target_language_word': 1, 'target_language_next_word': 2 } - wmt14_reader = paddle.reader.batched( + wmt14_reader = paddle.batch( paddle.reader.shuffle( paddle.dataset.wmt14.train(dict_size=dict_size), buf_size=8192), batch_size=5) diff --git a/demo/seqToseq/preprocess.py b/demo/seqToseq/preprocess.py index 03f371331a..afa7bd5e0f 100755 --- a/demo/seqToseq/preprocess.py +++ b/demo/seqToseq/preprocess.py @@ -23,167 +23,9 @@ Options: -m --mergeDict merge source and target dictionary """ import os -import sys - -import string from optparse import OptionParser -from paddle.utils.preprocess_util import save_list, DatasetCreater - - -class SeqToSeqDatasetCreater(DatasetCreater): - """ - A class to process data for sequence to sequence application. - """ - - def __init__(self, data_path, output_path): - """ - data_path: the path to store the train data, test data and gen data - output_path: the path to store the processed dataset - """ - DatasetCreater.__init__(self, data_path) - self.gen_dir_name = 'gen' - self.gen_list_name = 'gen.list' - self.output_path = output_path - - def concat_file(self, file_path, file1, file2, output_path, output): - """ - Concat file1 and file2 to be one output file - The i-th line of output = i-th line of file1 + '\t' + i-th line of file2 - file_path: the path to store file1 and file2 - output_path: the path to store output file - """ - file1 = os.path.join(file_path, file1) - file2 = os.path.join(file_path, file2) - output = os.path.join(output_path, output) - if not os.path.exists(output): - os.system('paste ' + file1 + ' ' + file2 + ' > ' + output) - - def cat_file(self, dir_path, suffix, output_path, output): - """ - Cat all the files in dir_path with suffix to be one output file - dir_path: the base directory to store input file - suffix: suffix of file name - output_path: the path to store output file - """ - cmd = 'cat ' - file_list = os.listdir(dir_path) - file_list.sort() - for file in file_list: - if file.endswith(suffix): - cmd += os.path.join(dir_path, file) + ' ' - output = os.path.join(output_path, output) - if not os.path.exists(output): - os.system(cmd + '> ' + output) - - def build_dict(self, file_path, dict_path, dict_size=-1): - """ - Create the dictionary for the file, Note that - 1. Valid characters include all printable characters - 2. There is distinction between uppercase and lowercase letters - 3. There is 3 special token: - : the start of a sequence - : the end of a sequence - : a word not included in dictionary - file_path: the path to store file - dict_path: the path to store dictionary - dict_size: word count of dictionary - if is -1, dictionary will contains all the words in file - """ - if not os.path.exists(dict_path): - dictory = dict() - with open(file_path, "r") as fdata: - for line in fdata: - line = line.split('\t') - for line_split in line: - words = line_split.strip().split() - for word in words: - if word not in dictory: - dictory[word] = 1 - else: - dictory[word] += 1 - output = open(dict_path, "w+") - output.write('\n\n\n') - count = 3 - for key, value in sorted( - dictory.items(), key=lambda d: d[1], reverse=True): - output.write(key + "\n") - count += 1 - if count == dict_size: - break - self.dict_size = count - - def create_dataset(self, - dict_size=-1, - mergeDict=False, - suffixes=['.src', '.trg']): - """ - Create seqToseq dataset - """ - # dataset_list and dir_list has one-to-one relationship - train_dataset = os.path.join(self.data_path, self.train_dir_name) - test_dataset = os.path.join(self.data_path, self.test_dir_name) - gen_dataset = os.path.join(self.data_path, self.gen_dir_name) - dataset_list = [train_dataset, test_dataset, gen_dataset] - - train_dir = os.path.join(self.output_path, self.train_dir_name) - test_dir = os.path.join(self.output_path, self.test_dir_name) - gen_dir = os.path.join(self.output_path, self.gen_dir_name) - dir_list = [train_dir, test_dir, gen_dir] - - # create directory - for dir in dir_list: - if not os.path.exists(dir): - os.mkdir(dir) - - # checkout dataset should be parallel corpora - suffix_len = len(suffixes[0]) - for dataset in dataset_list: - file_list = os.listdir(dataset) - if len(file_list) % 2 == 1: - raise RuntimeError("dataset should be parallel corpora") - file_list.sort() - for i in range(0, len(file_list), 2): - if file_list[i][:-suffix_len] != file_list[i + 1][:-suffix_len]: - raise RuntimeError( - "source and target file name should be equal") - - # cat all the files with the same suffix in dataset - for suffix in suffixes: - for dataset in dataset_list: - outname = os.path.basename(dataset) + suffix - self.cat_file(dataset, suffix, dataset, outname) - - # concat parallel corpora and create file.list - print 'concat parallel corpora for dataset' - id = 0 - list = ['train.list', 'test.list', 'gen.list'] - for dataset in dataset_list: - outname = os.path.basename(dataset) - self.concat_file(dataset, outname + suffixes[0], - outname + suffixes[1], dir_list[id], outname) - save_list([os.path.join(dir_list[id], outname)], - os.path.join(self.output_path, list[id])) - id += 1 - # build dictionary for train data - dict = ['src.dict', 'trg.dict'] - dict_path = [ - os.path.join(self.output_path, dict[0]), - os.path.join(self.output_path, dict[1]) - ] - if mergeDict: - outname = os.path.join(train_dir, train_dataset.split('/')[-1]) - print 'build src dictionary for train data' - self.build_dict(outname, dict_path[0], dict_size) - print 'build trg dictionary for train data' - os.system('cp ' + dict_path[0] + ' ' + dict_path[1]) - else: - outname = os.path.join(train_dataset, self.train_dir_name) - for id in range(0, 2): - suffix = suffixes[id] - print 'build ' + suffix[1:] + ' dictionary for train data' - self.build_dict(outname + suffix, dict_path[id], dict_size) - print 'dictionary size is', self.dict_size +from paddle.v2.dataset.wmt14_util import SeqToSeqDatasetCreater def main(): From 75f2e54c385a979252834bde293b6efd1c984f7c Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 6 Mar 2017 10:48:14 +0800 Subject: [PATCH 150/186] Refine API generation file. --- doc/api/v2/data.rst | 5 +++++ doc/api/v2/model_configs.rst | 6 +++++- doc/api/v2/run_logic.rst | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/doc/api/v2/data.rst b/doc/api/v2/data.rst index d2723a81e2..1c0a202a8c 100644 --- a/doc/api/v2/data.rst +++ b/doc/api/v2/data.rst @@ -1,3 +1,8 @@ +================ +Data Related API +================ + + ######### DataTypes ######### diff --git a/doc/api/v2/model_configs.rst b/doc/api/v2/model_configs.rst index 52e2dcd530..e9cd3d5bf7 100644 --- a/doc/api/v2/model_configs.rst +++ b/doc/api/v2/model_configs.rst @@ -1,3 +1,7 @@ +######################### +Configuration Related API +######################### + ====== Layers ====== @@ -38,5 +42,5 @@ Networks Optimizers ========== -.. automodule:: paddle.v2.optimizers +.. automodule:: paddle.v2.optimizer :members: diff --git a/doc/api/v2/run_logic.rst b/doc/api/v2/run_logic.rst index 522093f8ae..904d45966d 100644 --- a/doc/api/v2/run_logic.rst +++ b/doc/api/v2/run_logic.rst @@ -1,3 +1,7 @@ +########### +Trainer API +########### + ========== Parameters ========== From 06915d0a0507ba25e46917e4e622fcbbe3cd2668 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Mon, 6 Mar 2017 10:53:16 +0800 Subject: [PATCH 151/186] add wmt14_util.py and a small dataset on bos for test --- python/paddle/v2/dataset/wmt14.py | 3 +- python/paddle/v2/dataset/wmt14_util.py | 172 +++++++++++++++++++++++++ 2 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 python/paddle/v2/dataset/wmt14_util.py diff --git a/python/paddle/v2/dataset/wmt14.py b/python/paddle/v2/dataset/wmt14.py index 5a9dd4ca80..254f07c8dd 100644 --- a/python/paddle/v2/dataset/wmt14.py +++ b/python/paddle/v2/dataset/wmt14.py @@ -25,7 +25,8 @@ __all__ = ['train', 'test', 'build_dict'] URL_DEV_TEST = 'http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/data/dev+test.tgz' MD5_DEV_TEST = '7d7897317ddd8ba0ae5c5fa7248d3ff5' -URL_TRAIN = 'http://localhost:8989/wmt14.tgz' +# this is a small set of data for test. The original data is too large and will be add later. +URL_TRAIN = 'http://paddlepaddle.bj.bcebos.com/demo/wmt_shrinked_data/wmt14.tgz' MD5_TRAIN = '7373473f86016f1f48037c9c340a2d5b' START = "" diff --git a/python/paddle/v2/dataset/wmt14_util.py b/python/paddle/v2/dataset/wmt14_util.py new file mode 100644 index 0000000000..0d72389164 --- /dev/null +++ b/python/paddle/v2/dataset/wmt14_util.py @@ -0,0 +1,172 @@ +# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os + +from paddle.utils.preprocess_util import save_list, DatasetCreater + + +class SeqToSeqDatasetCreater(DatasetCreater): + """ + A class to process data for sequence to sequence application. + """ + + def __init__(self, data_path, output_path): + """ + data_path: the path to store the train data, test data and gen data + output_path: the path to store the processed dataset + """ + DatasetCreater.__init__(self, data_path) + self.gen_dir_name = 'gen' + self.gen_list_name = 'gen.list' + self.output_path = output_path + + def concat_file(self, file_path, file1, file2, output_path, output): + """ + Concat file1 and file2 to be one output file + The i-th line of output = i-th line of file1 + '\t' + i-th line of file2 + file_path: the path to store file1 and file2 + output_path: the path to store output file + """ + file1 = os.path.join(file_path, file1) + file2 = os.path.join(file_path, file2) + output = os.path.join(output_path, output) + if not os.path.exists(output): + os.system('paste ' + file1 + ' ' + file2 + ' > ' + output) + + def cat_file(self, dir_path, suffix, output_path, output): + """ + Cat all the files in dir_path with suffix to be one output file + dir_path: the base directory to store input file + suffix: suffix of file name + output_path: the path to store output file + """ + cmd = 'cat ' + file_list = os.listdir(dir_path) + file_list.sort() + for file in file_list: + if file.endswith(suffix): + cmd += os.path.join(dir_path, file) + ' ' + output = os.path.join(output_path, output) + if not os.path.exists(output): + os.system(cmd + '> ' + output) + + def build_dict(self, file_path, dict_path, dict_size=-1): + """ + Create the dictionary for the file, Note that + 1. Valid characters include all printable characters + 2. There is distinction between uppercase and lowercase letters + 3. There is 3 special token: + : the start of a sequence + : the end of a sequence + : a word not included in dictionary + file_path: the path to store file + dict_path: the path to store dictionary + dict_size: word count of dictionary + if is -1, dictionary will contains all the words in file + """ + if not os.path.exists(dict_path): + dictory = dict() + with open(file_path, "r") as fdata: + for line in fdata: + line = line.split('\t') + for line_split in line: + words = line_split.strip().split() + for word in words: + if word not in dictory: + dictory[word] = 1 + else: + dictory[word] += 1 + output = open(dict_path, "w+") + output.write('\n\n\n') + count = 3 + for key, value in sorted( + dictory.items(), key=lambda d: d[1], reverse=True): + output.write(key + "\n") + count += 1 + if count == dict_size: + break + self.dict_size = count + + def create_dataset(self, + dict_size=-1, + mergeDict=False, + suffixes=['.src', '.trg']): + """ + Create seqToseq dataset + """ + # dataset_list and dir_list has one-to-one relationship + train_dataset = os.path.join(self.data_path, self.train_dir_name) + test_dataset = os.path.join(self.data_path, self.test_dir_name) + gen_dataset = os.path.join(self.data_path, self.gen_dir_name) + dataset_list = [train_dataset, test_dataset, gen_dataset] + + train_dir = os.path.join(self.output_path, self.train_dir_name) + test_dir = os.path.join(self.output_path, self.test_dir_name) + gen_dir = os.path.join(self.output_path, self.gen_dir_name) + dir_list = [train_dir, test_dir, gen_dir] + + # create directory + for dir in dir_list: + if not os.path.exists(dir): + os.makedirs(dir) + + # checkout dataset should be parallel corpora + suffix_len = len(suffixes[0]) + for dataset in dataset_list: + file_list = os.listdir(dataset) + if len(file_list) % 2 == 1: + raise RuntimeError("dataset should be parallel corpora") + file_list.sort() + for i in range(0, len(file_list), 2): + if file_list[i][:-suffix_len] != file_list[i + 1][:-suffix_len]: + raise RuntimeError( + "source and target file name should be equal") + + # cat all the files with the same suffix in dataset + for suffix in suffixes: + for dataset in dataset_list: + outname = os.path.basename(dataset) + suffix + self.cat_file(dataset, suffix, dataset, outname) + + # concat parallel corpora and create file.list + print 'concat parallel corpora for dataset' + id = 0 + list = ['train.list', 'test.list', 'gen.list'] + for dataset in dataset_list: + outname = os.path.basename(dataset) + self.concat_file(dataset, outname + suffixes[0], + outname + suffixes[1], dir_list[id], outname) + save_list([os.path.join(dir_list[id], outname)], + os.path.join(self.output_path, list[id])) + id += 1 + + # build dictionary for train data + dict = ['src.dict', 'trg.dict'] + dict_path = [ + os.path.join(self.output_path, dict[0]), + os.path.join(self.output_path, dict[1]) + ] + if mergeDict: + outname = os.path.join(train_dir, train_dataset.split('/')[-1]) + print 'build src dictionary for train data' + self.build_dict(outname, dict_path[0], dict_size) + print 'build trg dictionary for train data' + os.system('cp ' + dict_path[0] + ' ' + dict_path[1]) + else: + outname = os.path.join(train_dataset, self.train_dir_name) + for id in range(0, 2): + suffix = suffixes[id] + print 'build ' + suffix[1:] + ' dictionary for train data' + self.build_dict(outname + suffix, dict_path[id], dict_size) + print 'dictionary size is', self.dict_size From 977fcef7b5c4985db61cd30a7a4c864de0bd1667 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 6 Mar 2017 11:22:33 +0800 Subject: [PATCH 152/186] Fix unittest --- python/paddle/v2/tests/test_topology.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/python/paddle/v2/tests/test_topology.py b/python/paddle/v2/tests/test_topology.py index 1bf55a5bc6..5c6dbcdb4f 100644 --- a/python/paddle/v2/tests/test_topology.py +++ b/python/paddle/v2/tests/test_topology.py @@ -16,6 +16,7 @@ import paddle.v2.layer as layer import paddle.v2.topology as topology import paddle.v2.data_type as data_type import paddle.trainer_config_helpers as conf_helps +import paddle.trainer.PyDataProvider2 as pydp2 class TestTopology(unittest.TestCase): @@ -35,13 +36,13 @@ class TestTopology(unittest.TestCase): pixel_data_type = filter(lambda type: type[0] == "pixel", data_types) self.assertEqual(len(pixel_data_type), 1) pixel_data_type = pixel_data_type[0] - self.assertEqual(pixel_data_type[1].type, data_type.DataType.Dense) + self.assertEqual(pixel_data_type[1].type, pydp2.DataType.Dense) self.assertEqual(pixel_data_type[1].dim, 784) label_data_type = filter(lambda type: type[0] == "label", data_types) self.assertEqual(len(label_data_type), 1) label_data_type = label_data_type[0] - self.assertEqual(label_data_type[1].type, data_type.DataType.Index) + self.assertEqual(label_data_type[1].type, pydp2.DataType.Index) self.assertEqual(label_data_type[1].dim, 10) def test_get_layer(self): From d5365bb715c4438d05bc3c80a750c3448e09b347 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 6 Mar 2017 11:19:17 +0800 Subject: [PATCH 153/186] Add input data interface for inference --- demo/mnist/api_train_v2.py | 19 ++++---- doc/api/v2/run_logic.rst | 8 ++++ python/paddle/v2/inference.py | 88 ++++++++++++++++++++++++++++++++--- 3 files changed, 99 insertions(+), 16 deletions(-) diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 4fb1808ca1..81b330a605 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -90,7 +90,7 @@ def main(): print "Pass %d, Batch %d, Cost %f, %s" % ( event.pass_id, event.batch_id, event.cost, event.metrics) if isinstance(event, paddle.event.EndPass): - result = trainer.test(reader=paddle.reader.batched( + result = trainer.test(reader=paddle.batch( paddle.dataset.mnist.test(), batch_size=128)) print "Test with Pass %d, Cost %f, %s\n" % ( event.pass_id, result.cost, result.metrics) @@ -110,17 +110,16 @@ def main(): print 'Best pass is %s, testing Avgcost is %s' % (best[0], best[1]) print 'The classification accuracy is %.2f%%' % (100 - float(best[2]) * 100) + test_creator = paddle.dataset.mnist.test() + test_data = [] + for item in test_creator(): + test_data.append(item[0]) + if len(test_data) == 100: + break + # output is a softmax layer. It returns probabilities. # Shape should be (100, 10) - probs = paddle.infer( - output=predict, - parameters=parameters, - reader=paddle.batch( - paddle.reader.firstn( - paddle.reader.map_readers(lambda item: (item[0], ), - paddle.dataset.mnist.test()), - n=100), - batch_size=32)) + probs = paddle.infer(output=predict, parameters=parameters, input=test_data) print probs.shape diff --git a/doc/api/v2/run_logic.rst b/doc/api/v2/run_logic.rst index 904d45966d..0f807873ff 100644 --- a/doc/api/v2/run_logic.rst +++ b/doc/api/v2/run_logic.rst @@ -2,6 +2,7 @@ Trainer API ########### + ========== Parameters ========== @@ -24,3 +25,10 @@ Event .. automodule:: paddle.v2.event :members: + + +========= +Inference +========= + +.. autofunction:: paddle.v2.infer \ No newline at end of file diff --git a/python/paddle/v2/inference.py b/python/paddle/v2/inference.py index 476fd3fa45..7c079a0d32 100644 --- a/python/paddle/v2/inference.py +++ b/python/paddle/v2/inference.py @@ -1,9 +1,9 @@ +import numpy import py_paddle.swig_paddle as api - +import collections import topology +import minibatch from data_feeder import DataFeeder -import itertools -import numpy __all__ = ['infer'] @@ -21,9 +21,39 @@ class Inference(object): self.__gradient_machine__ = gm self.__data_types__ = topo.data_type() - def iter_infer(self, reader, reader_dict=None): + def iter_infer(self, + input=None, + batch_size=None, + reader=None, + reader_dict=None): if reader_dict is None: reader_dict = self.default_reader_dict() + + if reader is None: + assert input is not None and isinstance(input, collections.Iterable) + if not isinstance(input, collections.Iterable): + raise TypeError("When reader is None, input should be whole " + "inference data and should be iterable") + + if batch_size is None: + if not hasattr(input, '__len__'): + raise ValueError("Should set batch size when input data " + "don't contain length.") + batch_size = len(input) + + def __reader_impl__(): + for each_sample in input: + if len(reader_dict) == 1: + yield [each_sample] + else: + yield each_sample + + reader = minibatch.batch(__reader_impl__, batch_size=batch_size) + else: + if input is not None: + raise ValueError("User should set either input or reader, " + "should not set them both.") + feeder = DataFeeder(self.__data_types__, reader_dict) self.__gradient_machine__.start() for data_batch in reader(): @@ -54,6 +84,52 @@ class Inference(object): return reader_dict -def infer(output, parameters, reader, reader_dict=None, field='value'): +def infer(output, + parameters, + input=None, + batch_size=None, + reader=None, + reader_dict=None, + field='value'): + """ + Infer a neural network by given neural network output and parameters. The + user should pass either a batch of input data or reader method. + + Example usages: + + .. code-block:: python + + result = paddle.infer(prediction, parameters, input=SomeData, + batch_size=32) + print result + + :param output: output of the neural network that would be inferred + :type output: paddle.v2.config_base.Layer + :param parameters: parameters of the neural network. + :type parameters: paddle.v2.parameters.Parameters + :param input: input data batch. Should be a python iterable object, and each + element is the data batch. + :type input: collections.Iterable + :param batch_size: the batch size when perform inference. Default is the + length of input. + :type batch_size: int + :param reader: input data reader creator in batch. If this field is set, the + `input` and `batch_size` will be ignored. + :type reader: callable + :param reader_dict: Reader dictionary. Default could generate from input + value. + :param field: The prediction field. It should in [`value`, `ids`]. `value` + means return the prediction probabilities, `ids` means return + the prediction labels. Default is `value` + :type field: str + :return: a numpy array + :rtype: numpy.ndarray + """ + inferer = Inference(output=output, parameters=parameters) - return inferer.infer(field=field, reader=reader, reader_dict=reader_dict) + return inferer.infer( + field=field, + input=input, + batch_size=batch_size, + reader=reader, + reader_dict=reader_dict) From c36a3f46070e8ef5102b6fb34362c50193d5f529 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 6 Mar 2017 14:51:15 +0800 Subject: [PATCH 154/186] Add unittest for serialize/deserialize. --- python/paddle/v2/parameters.py | 6 +++ python/paddle/v2/tests/run_tests.sh | 2 +- python/paddle/v2/tests/test_parameters.py | 60 +++++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 python/paddle/v2/tests/test_parameters.py diff --git a/python/paddle/v2/parameters.py b/python/paddle/v2/parameters.py index 1fed0b8a6a..05dc5c68dd 100644 --- a/python/paddle/v2/parameters.py +++ b/python/paddle/v2/parameters.py @@ -124,6 +124,12 @@ class Parameters(object): if len(self.__gradient_machines__) == 0: # create new parameter in python numpy. + if len(self.__tmp_params__) != 0: + ret_list = [ + mat for name, mat in self.__tmp_params__ if name == key + ] + if len(ret_list) == 1: + return ret_list[0] return np.ndarray(shape=shape, dtype=np.float32) else: for each_gradient_machine in self.__gradient_machines__: diff --git a/python/paddle/v2/tests/run_tests.sh b/python/paddle/v2/tests/run_tests.sh index b96f54fe9c..dda1b1bd22 100755 --- a/python/paddle/v2/tests/run_tests.sh +++ b/python/paddle/v2/tests/run_tests.sh @@ -22,7 +22,7 @@ cd $SCRIPTPATH $1 -m pip install ../../../../paddle/dist/*.whl -test_list="test_data_feeder.py" +test_list="test_data_feeder.py test_parameters.py" export PYTHONPATH=$PWD/../../../../python/ diff --git a/python/paddle/v2/tests/test_parameters.py b/python/paddle/v2/tests/test_parameters.py new file mode 100644 index 0000000000..ebb182caab --- /dev/null +++ b/python/paddle/v2/tests/test_parameters.py @@ -0,0 +1,60 @@ +import unittest +import sys + +try: + import py_paddle + + del py_paddle +except ImportError: + print >> sys.stderr, "It seems swig of Paddle is not installed, this " \ + "unittest will not be run." + sys.exit(0) + +import paddle.v2.parameters as parameters +from paddle.proto.ParameterConfig_pb2 import ParameterConfig +import random +import cStringIO +import numpy + + +def __rand_param_config__(name): + conf = ParameterConfig() + conf.name = name + size = 1 + for i in xrange(2): + dim = random.randint(1, 1000) + conf.dims.append(dim) + size *= dim + conf.size = size + assert conf.IsInitialized() + return conf + + +class TestParameters(unittest.TestCase): + def test_serialization(self): + params = parameters.Parameters() + params.__append_config__(__rand_param_config__("param_0")) + params.__append_config__(__rand_param_config__("param_1")) + + for name in params.names(): + param = params.get(name) + param[:] = numpy.random.uniform( + -1.0, 1.0, size=params.get_shape(name)) + params.set(name, param) + + tmp_file = cStringIO.StringIO() + params.to_tar(tmp_file) + tmp_file.seek(0) + params_dup = parameters.Parameters.from_tar(tmp_file) + + self.assertEqual(params_dup.names(), params.names()) + + for name in params.names(): + self.assertEqual(params.get_shape(name), params_dup.get_shape(name)) + p0 = params.get(name) + p1 = params_dup.get(name) + self.assertTrue(numpy.isclose(p0, p1).all()) + + +if __name__ == '__main__': + unittest.main() From 26445368a2fb2d95598d80b5fad0d880c04bd0da Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 6 Mar 2017 15:45:19 +0800 Subject: [PATCH 155/186] Rename reader_dict to feeding * Also fix some other bugs. * Fix #1495 --- demo/image_classification/api_v2_train.py | 13 ++++++----- demo/introduction/api_train_v2.py | 22 ++++++++--------- demo/mnist/api_train_v2.py | 4 ++-- demo/semantic_role_labeling/api_train_v2.py | 6 ++--- demo/sentiment/train_v2.py | 23 +++++++----------- demo/seqToseq/api_train_v2.py | 6 ++--- python/paddle/v2/data_feeder.py | 24 ++++++++++++++----- python/paddle/v2/inference.py | 16 ++++--------- python/paddle/v2/trainer.py | 26 ++++++--------------- 9 files changed, 64 insertions(+), 76 deletions(-) diff --git a/demo/image_classification/api_v2_train.py b/demo/image_classification/api_v2_train.py index e0fc0e04bb..7134fa61e8 100644 --- a/demo/image_classification/api_v2_train.py +++ b/demo/image_classification/api_v2_train.py @@ -13,8 +13,9 @@ # limitations under the License import sys + import paddle.v2 as paddle -from api_v2_vgg import vgg_bn_drop + from api_v2_resnet import resnet_cifar10 @@ -23,7 +24,7 @@ def main(): classdim = 10 # PaddlePaddle init - paddle.init(use_gpu=True, trainer_count=1) + paddle.init(use_gpu=False, trainer_count=1) image = paddle.layer.data( name="image", type=paddle.data_type.dense_vector(datadim)) @@ -68,8 +69,8 @@ def main(): result = trainer.test( reader=paddle.batch( paddle.dataset.cifar.test10(), batch_size=128), - reader_dict={'image': 0, - 'label': 1}) + feeding={'image': 0, + 'label': 1}) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) # Create trainer @@ -83,8 +84,8 @@ def main(): batch_size=128), num_passes=5, event_handler=event_handler, - reader_dict={'image': 0, - 'label': 1}) + feeding={'image': 0, + 'label': 1}) if __name__ == '__main__': diff --git a/demo/introduction/api_train_v2.py b/demo/introduction/api_train_v2.py index 75dd65f9fc..84125c3b4b 100644 --- a/demo/introduction/api_train_v2.py +++ b/demo/introduction/api_train_v2.py @@ -30,26 +30,26 @@ def main(): def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 100 == 0: - print "Pass %d, Batch %d, Cost %f, %s" % ( - event.pass_id, event.batch_id, event.cost, event.metrics) + print "Pass %d, Batch %d, Cost %f" % ( + event.pass_id, event.batch_id, event.cost) if isinstance(event, paddle.event.EndPass): - result = trainer.test( - reader=paddle.reader.batched( - uci_housing.test(), batch_size=2), - reader_dict={'x': 0, + if (event.pass_id + 1) % 10 == 0: + result = trainer.test( + reader=paddle.batch( + uci_housing.test(), batch_size=2), + feeding={'x': 0, 'y': 1}) - if event.pass_id % 10 == 0: - print "Test %d, %s" % (event.pass_id, result.metrics) + print "Test %d, %.2f" % (event.pass_id, result.cost) # training trainer.train( - reader=paddle.reader.batched( + reader=paddle.batch( paddle.reader.shuffle( uci_housing.train(), buf_size=500), batch_size=2), - reader_dict={'x': 0, - 'y': 1}, + feeding={'x': 0, + 'y': 1}, event_handler=event_handler, num_passes=30) diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 072b2a08da..68761be80f 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -92,7 +92,7 @@ def main(): def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 1000 == 0: - result = trainer.test(reader=paddle.reader.batched( + result = trainer.test(reader=paddle.batch( paddle.dataset.mnist.test(), batch_size=256)) print "Pass %d, Batch %d, Cost %f, %s, Testing metrics %s" % ( @@ -103,7 +103,7 @@ def main(): parameters.to_tar(f) elif isinstance(event, paddle.event.EndPass): - result = trainer.test(reader=paddle.reader.batched( + result = trainer.test(reader=paddle.batch( paddle.dataset.mnist.test(), batch_size=128)) print "Test with Pass %d, Cost %f, %s\n" % ( event.pass_id, result.cost, result.metrics) diff --git a/demo/semantic_role_labeling/api_train_v2.py b/demo/semantic_role_labeling/api_train_v2.py index 15db922b97..036cad4b0a 100644 --- a/demo/semantic_role_labeling/api_train_v2.py +++ b/demo/semantic_role_labeling/api_train_v2.py @@ -163,11 +163,11 @@ def main(): update_equation=optimizer) parameters.set('emb', load_parameter(conll05.get_embedding(), 44068, 32)) - trn_reader = paddle.reader.batched( + trn_reader = paddle.batch( paddle.reader.shuffle( conll05.test(), buf_size=8192), batch_size=10) - reader_dict = { + feeding = { 'word_data': 0, 'ctx_n2_data': 1, 'ctx_n1_data': 2, @@ -183,7 +183,7 @@ def main(): reader=trn_reader, event_handler=event_handler, num_passes=10000, - reader_dict=reader_dict) + feeding=feeding) if __name__ == '__main__': diff --git a/demo/sentiment/train_v2.py b/demo/sentiment/train_v2.py index 3a266e74ea..fd7243cbe6 100644 --- a/demo/sentiment/train_v2.py +++ b/demo/sentiment/train_v2.py @@ -18,11 +18,7 @@ from paddle.trainer_config_helpers.poolings import MaxPooling import paddle.v2 as paddle -def convolution_net(input_dim, - class_dim=2, - emb_dim=128, - hid_dim=128, - is_predict=False): +def convolution_net(input_dim, class_dim=2, emb_dim=128, hid_dim=128): data = paddle.layer.data("word", paddle.data_type.integer_value_sequence(input_dim)) emb = paddle.layer.embedding(input=data, size=emb_dim) @@ -42,8 +38,7 @@ def stacked_lstm_net(input_dim, class_dim=2, emb_dim=128, hid_dim=512, - stacked_num=3, - is_predict=False): + stacked_num=3): """ A Wrapper for sentiment classification task. This network uses bi-directional recurrent network, @@ -110,7 +105,7 @@ def stacked_lstm_net(input_dim, if __name__ == '__main__': # init - paddle.init(use_gpu=True, trainer_count=4) + paddle.init(use_gpu=False, trainer_count=4) # network config print 'load dictionary...' @@ -143,11 +138,11 @@ if __name__ == '__main__': sys.stdout.flush() if isinstance(event, paddle.event.EndPass): result = trainer.test( - reader=paddle.reader.batched( + reader=paddle.batch( lambda: paddle.dataset.imdb.test(word_dict), batch_size=128), - reader_dict={'word': 0, - 'label': 1}) + feeding={'word': 0, + 'label': 1}) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) # create trainer @@ -156,11 +151,11 @@ if __name__ == '__main__': update_equation=adam_optimizer) trainer.train( - reader=paddle.reader.batched( + reader=paddle.batch( paddle.reader.shuffle( lambda: paddle.dataset.imdb.train(word_dict), buf_size=1000), batch_size=100), event_handler=event_handler, - reader_dict={'word': 0, - 'label': 1}, + feeding={'word': 0, + 'label': 1}, num_passes=10) diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py index a5f59ec379..5b7506b152 100644 --- a/demo/seqToseq/api_train_v2.py +++ b/demo/seqToseq/api_train_v2.py @@ -80,13 +80,13 @@ def main(): update_equation=optimizer) # define data reader - reader_dict = { + feeding = { 'source_language_word': 0, 'target_language_word': 1, 'target_language_next_word': 2 } - wmt14_reader = paddle.reader.batched( + wmt14_reader = paddle.batch( paddle.reader.shuffle( train_reader("data/pre-wmt14/train/train"), buf_size=8192), batch_size=5) @@ -103,7 +103,7 @@ def main(): reader=wmt14_reader, event_handler=event_handler, num_passes=10000, - reader_dict=reader_dict) + feeding=feeding) if __name__ == '__main__': diff --git a/python/paddle/v2/data_feeder.py b/python/paddle/v2/data_feeder.py index b7465238be..ba77fecf21 100644 --- a/python/paddle/v2/data_feeder.py +++ b/python/paddle/v2/data_feeder.py @@ -14,11 +14,18 @@ from py_paddle import DataProviderConverter -import data_type +import paddle.trainer.PyDataProvider2 as pydp2 __all__ = ['DataFeeder'] +def default_feeding_map(data_types): + reader_dict = dict() + for i, tp in enumerate(data_types): + reader_dict[tp[0]] = i + return reader_dict + + class DataFeeder(DataProviderConverter): """ DataFeeder converts the data returned by paddle.reader into a data structure @@ -60,16 +67,21 @@ class DataFeeder(DataProviderConverter): :type data_types: list :param reader_dict: A dictionary to specify the position of each data in the input data. - :type reader_dict: dict + :type feeding: dict """ - def __init__(self, data_types, reader_dict): + def __init__(self, data_types, feeding=None): self.input_names = [] input_types = [] - self.reader_dict = reader_dict + if feeding is None: + feeding = default_feeding_map(data_types) + + self.feeding = feeding for each in data_types: self.input_names.append(each[0]) - assert isinstance(each[1], data_type.InputType) + if not isinstance(each[1], pydp2.InputType): + raise TypeError("second item in each data_type should be an " + "InputType") input_types.append(each[1]) DataProviderConverter.__init__(self, input_types) @@ -90,7 +102,7 @@ class DataFeeder(DataProviderConverter): for each in data: reorder = [] for name in self.input_names: - reorder.append(each[self.reader_dict[name]]) + reorder.append(each[self.feeding[name]]) retv.append(reorder) return retv diff --git a/python/paddle/v2/inference.py b/python/paddle/v2/inference.py index 476fd3fa45..7d889bce7f 100644 --- a/python/paddle/v2/inference.py +++ b/python/paddle/v2/inference.py @@ -21,10 +21,8 @@ class Inference(object): self.__gradient_machine__ = gm self.__data_types__ = topo.data_type() - def iter_infer(self, reader, reader_dict=None): - if reader_dict is None: - reader_dict = self.default_reader_dict() - feeder = DataFeeder(self.__data_types__, reader_dict) + def iter_infer(self, reader, feeding=None): + feeder = DataFeeder(self.__data_types__, feeding) self.__gradient_machine__.start() for data_batch in reader(): yield self.__gradient_machine__.forwardTest(feeder(data_batch)) @@ -47,13 +45,7 @@ class Inference(object): else: return retv - def default_reader_dict(self): - reader_dict = dict() - for i, tp in enumerate(self.__data_types__): - reader_dict[tp[0]] = i - return reader_dict - -def infer(output, parameters, reader, reader_dict=None, field='value'): +def infer(output, parameters, reader, feeding=None, field='value'): inferer = Inference(output=output, parameters=parameters) - return inferer.infer(field=field, reader=reader, reader_dict=reader_dict) + return inferer.infer(field=field, reader=reader, feeding=feeding) diff --git a/python/paddle/v2/trainer.py b/python/paddle/v2/trainer.py index 187abaf9a3..7bd3e2c565 100644 --- a/python/paddle/v2/trainer.py +++ b/python/paddle/v2/trainer.py @@ -61,7 +61,7 @@ class SGD(object): self.__gradient_machine__.randParameters() parameters.append_gradient_machine(gm) - def train(self, reader, num_passes=1, event_handler=None, reader_dict=None): + def train(self, reader, num_passes=1, event_handler=None, feeding=None): """ Training method. Will train num_passes of input data. @@ -70,14 +70,13 @@ class SGD(object): :param event_handler: Event handler. A method will be invoked when event occurred. :type event_handler: (BaseEvent) => None + :param feeding: Feeding is a map of neural network input name and array + index that reader returns. + :type feeding: dict :return: """ if event_handler is None: event_handler = default_event_handler - - if reader_dict is None: - reader_dict = self.default_reader_dict() - __check_train_args__(**locals()) updater = self.__optimizer__.create_local_updater() @@ -89,9 +88,7 @@ class SGD(object): pass_evaluator = self.__gradient_machine__.makeEvaluator() assert isinstance(pass_evaluator, api.Evaluator) out_args = api.Arguments.createArguments(0) - - feeder = DataFeeder(self.__data_types__, reader_dict) - + feeder = DataFeeder(self.__data_types__, feeding) for pass_id in xrange(num_passes): event_handler(v2_event.BeginPass(pass_id)) pass_evaluator.start() @@ -125,17 +122,8 @@ class SGD(object): event_handler(v2_event.EndPass(pass_id, evaluator=pass_evaluator)) self.__gradient_machine__.finish() - def default_reader_dict(self): - reader_dict = dict() - for i, tp in enumerate(self.__data_types__): - reader_dict[tp[0]] = i - return reader_dict - - def test(self, reader, reader_dict=None): - if reader_dict is None: - reader_dict = self.default_reader_dict() - - feeder = DataFeeder(self.__data_types__, reader_dict) + def test(self, reader, feeding=None): + feeder = DataFeeder(self.__data_types__, feeding) evaluator = self.__gradient_machine__.makeEvaluator() out_args = api.Arguments.createArguments(0) evaluator.start() From c7d259e1fe673bcb192b3180a3be1deaba8bd49f Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Mon, 6 Mar 2017 16:43:46 +0800 Subject: [PATCH 156/186] Merge develop --- demo/recommendation/api_train_v2.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/demo/recommendation/api_train_v2.py b/demo/recommendation/api_train_v2.py index a7cf137a79..9b254933a1 100644 --- a/demo/recommendation/api_train_v2.py +++ b/demo/recommendation/api_train_v2.py @@ -72,7 +72,7 @@ def main(): parameters=parameters, update_equation=paddle.optimizer.Adam( learning_rate=1e-4)) - reader_dict = { + feeding = { 'user_id': 0, 'gender_id': 1, 'age_id': 2, @@ -90,14 +90,12 @@ def main(): event.pass_id, event.batch_id, event.cost) trainer.train( - reader=paddle.reader.batched( - paddle.reader.firstn( - paddle.reader.shuffle( - paddle.dataset.movielens.train(), buf_size=8192), - n=1000), + reader=paddle.batch( + paddle.reader.shuffle( + paddle.dataset.movielens.train(), buf_size=8192), batch_size=256), event_handler=event_handler, - reader_dict=reader_dict, + feeding=feeding, num_passes=1) user_id = 234 @@ -111,17 +109,16 @@ def main(): def reader(): yield feature - infer_dict = copy.copy(reader_dict) + infer_dict = copy.copy(feeding) del infer_dict['score'] - print infer_dict prediction = paddle.infer( output=inference, parameters=parameters, - reader=paddle.reader.batched( + reader=paddle.batch( reader, batch_size=32), - reader_dict=infer_dict) - print prediction + feeding=infer_dict) + print(prediction + 5) / 2 if __name__ == '__main__': From 82437970594e331f63bed25c2f3ab42b413e68d9 Mon Sep 17 00:00:00 2001 From: Luo Tao Date: Mon, 6 Mar 2017 18:54:47 +0800 Subject: [PATCH 157/186] add relu in layer_math.py --- .../trainer_config_helpers/layer_math.py | 1 + .../tests/configs/math_ops.py | 3 +- .../tests/configs/protostr/math_ops.protostr | 32 ++++++++++++++----- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/python/paddle/trainer_config_helpers/layer_math.py b/python/paddle/trainer_config_helpers/layer_math.py index 2d9e36f2b0..544b443825 100644 --- a/python/paddle/trainer_config_helpers/layer_math.py +++ b/python/paddle/trainer_config_helpers/layer_math.py @@ -39,6 +39,7 @@ register_unary_math_op('abs', act.AbsActivation()) register_unary_math_op('sigmoid', act.SigmoidActivation()) register_unary_math_op('tanh', act.TanhActivation()) register_unary_math_op('square', act.SquareActivation()) +register_unary_math_op('relu', act.ReluActivation()) def add(layeroutput, other): diff --git a/python/paddle/trainer_config_helpers/tests/configs/math_ops.py b/python/paddle/trainer_config_helpers/tests/configs/math_ops.py index 3331c10d64..24c901c8ee 100644 --- a/python/paddle/trainer_config_helpers/tests/configs/math_ops.py +++ b/python/paddle/trainer_config_helpers/tests/configs/math_ops.py @@ -7,8 +7,9 @@ x = layer_math.exp(x) x = layer_math.log(x) x = layer_math.abs(x) x = layer_math.sigmoid(x) +x = layer_math.tanh(x) x = layer_math.square(x) -x = layer_math.square(x) +x = layer_math.relu(x) y = 1 + x y = y + 1 y = x + y diff --git a/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr b/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr index da8da1b541..9b8a2ad968 100644 --- a/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr +++ b/python/paddle/trainer_config_helpers/tests/configs/protostr/math_ops.protostr @@ -65,13 +65,28 @@ layers { } } } +layers { + name: "__tanh_0__" + type: "mixed" + size: 100 + active_type: "tanh" + inputs { + input_layer_name: "__sigmoid_0__" + proj_conf { + type: "identity" + name: "___tanh_0__.w0" + input_size: 100 + output_size: 100 + } + } +} layers { name: "__square_0__" type: "mixed" size: 100 active_type: "square" inputs { - input_layer_name: "__sigmoid_0__" + input_layer_name: "__tanh_0__" proj_conf { type: "identity" name: "___square_0__.w0" @@ -81,15 +96,15 @@ layers { } } layers { - name: "__square_1__" + name: "__relu_0__" type: "mixed" size: 100 - active_type: "square" + active_type: "relu" inputs { input_layer_name: "__square_0__" proj_conf { type: "identity" - name: "___square_1__.w0" + name: "___relu_0__.w0" input_size: 100 output_size: 100 } @@ -101,7 +116,7 @@ layers { size: 100 active_type: "" inputs { - input_layer_name: "__square_1__" + input_layer_name: "__relu_0__" } slope: 1.0 intercept: 1 @@ -123,7 +138,7 @@ layers { size: 100 active_type: "" inputs { - input_layer_name: "__square_1__" + input_layer_name: "__relu_0__" proj_conf { type: "identity" name: "___mixed_0__.w0" @@ -147,7 +162,7 @@ layers { size: 100 active_type: "" inputs { - input_layer_name: "__square_1__" + input_layer_name: "__relu_0__" } slope: -1.0 intercept: 0.0 @@ -339,8 +354,9 @@ sub_models { layer_names: "__log_0__" layer_names: "__abs_0__" layer_names: "__sigmoid_0__" + layer_names: "__tanh_0__" layer_names: "__square_0__" - layer_names: "__square_1__" + layer_names: "__relu_0__" layer_names: "__slope_intercept_layer_0__" layer_names: "__slope_intercept_layer_1__" layer_names: "__mixed_0__" From 96a2e44aa3d0e1c566c08bee01e284f59277ef3c Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Mon, 6 Mar 2017 20:46:25 +0800 Subject: [PATCH 158/186] optimize seq2seq-dataset --- demo/sentiment/preprocess.py | 166 +++++++++++++++++++++++- python/paddle/v2/dataset/wmt14.py | 149 ++++++++++----------- python/paddle/v2/dataset/wmt14_util.py | 172 ------------------------- 3 files changed, 229 insertions(+), 258 deletions(-) delete mode 100644 python/paddle/v2/dataset/wmt14_util.py diff --git a/demo/sentiment/preprocess.py b/demo/sentiment/preprocess.py index 29b3682b74..59c3b5febe 100755 --- a/demo/sentiment/preprocess.py +++ b/demo/sentiment/preprocess.py @@ -12,22 +12,176 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -import sys -import random import operator -import numpy as np -from subprocess import Popen, PIPE -from os.path import join as join_path from optparse import OptionParser +from os.path import join as join_path +from subprocess import Popen, PIPE +import numpy as np from paddle.utils.preprocess_util import * +from paddle.utils.preprocess_util import save_list, DatasetCreater """ Usage: run following command to show help message. python preprocess.py -h """ +class SeqToSeqDatasetCreater(DatasetCreater): + """ + A class to process data for sequence to sequence application. + """ + + def __init__(self, data_path, output_path): + """ + data_path: the path to store the train data, test data and gen data + output_path: the path to store the processed dataset + """ + DatasetCreater.__init__(self, data_path) + self.gen_dir_name = 'gen' + self.gen_list_name = 'gen.list' + self.output_path = output_path + + def concat_file(self, file_path, file1, file2, output_path, output): + """ + Concat file1 and file2 to be one output file + The i-th line of output = i-th line of file1 + '\t' + i-th line of file2 + file_path: the path to store file1 and file2 + output_path: the path to store output file + """ + file1 = os.path.join(file_path, file1) + file2 = os.path.join(file_path, file2) + output = os.path.join(output_path, output) + if not os.path.exists(output): + os.system('paste ' + file1 + ' ' + file2 + ' > ' + output) + + def cat_file(self, dir_path, suffix, output_path, output): + """ + Cat all the files in dir_path with suffix to be one output file + dir_path: the base directory to store input file + suffix: suffix of file name + output_path: the path to store output file + """ + cmd = 'cat ' + file_list = os.listdir(dir_path) + file_list.sort() + for file in file_list: + if file.endswith(suffix): + cmd += os.path.join(dir_path, file) + ' ' + output = os.path.join(output_path, output) + if not os.path.exists(output): + os.system(cmd + '> ' + output) + + def build_dict(self, file_path, dict_path, dict_size=-1): + """ + Create the dictionary for the file, Note that + 1. Valid characters include all printable characters + 2. There is distinction between uppercase and lowercase letters + 3. There is 3 special token: + : the start of a sequence + : the end of a sequence + : a word not included in dictionary + file_path: the path to store file + dict_path: the path to store dictionary + dict_size: word count of dictionary + if is -1, dictionary will contains all the words in file + """ + if not os.path.exists(dict_path): + dictory = dict() + with open(file_path, "r") as fdata: + for line in fdata: + line = line.split('\t') + for line_split in line: + words = line_split.strip().split() + for word in words: + if word not in dictory: + dictory[word] = 1 + else: + dictory[word] += 1 + output = open(dict_path, "w+") + output.write('\n\n\n') + count = 3 + for key, value in sorted( + dictory.items(), key=lambda d: d[1], reverse=True): + output.write(key + "\n") + count += 1 + if count == dict_size: + break + self.dict_size = count + + def create_dataset(self, + dict_size=-1, + mergeDict=False, + suffixes=['.src', '.trg']): + """ + Create seqToseq dataset + """ + # dataset_list and dir_list has one-to-one relationship + train_dataset = os.path.join(self.data_path, self.train_dir_name) + test_dataset = os.path.join(self.data_path, self.test_dir_name) + gen_dataset = os.path.join(self.data_path, self.gen_dir_name) + dataset_list = [train_dataset, test_dataset, gen_dataset] + + train_dir = os.path.join(self.output_path, self.train_dir_name) + test_dir = os.path.join(self.output_path, self.test_dir_name) + gen_dir = os.path.join(self.output_path, self.gen_dir_name) + dir_list = [train_dir, test_dir, gen_dir] + + # create directory + for dir in dir_list: + if not os.path.exists(dir): + os.makedirs(dir) + + # checkout dataset should be parallel corpora + suffix_len = len(suffixes[0]) + for dataset in dataset_list: + file_list = os.listdir(dataset) + if len(file_list) % 2 == 1: + raise RuntimeError("dataset should be parallel corpora") + file_list.sort() + for i in range(0, len(file_list), 2): + if file_list[i][:-suffix_len] != file_list[i + 1][:-suffix_len]: + raise RuntimeError( + "source and target file name should be equal") + + # cat all the files with the same suffix in dataset + for suffix in suffixes: + for dataset in dataset_list: + outname = os.path.basename(dataset) + suffix + self.cat_file(dataset, suffix, dataset, outname) + + # concat parallel corpora and create file.list + print 'concat parallel corpora for dataset' + id = 0 + list = ['train.list', 'test.list', 'gen.list'] + for dataset in dataset_list: + outname = os.path.basename(dataset) + self.concat_file(dataset, outname + suffixes[0], + outname + suffixes[1], dir_list[id], outname) + save_list([os.path.join(dir_list[id], outname)], + os.path.join(self.output_path, list[id])) + id += 1 + + # build dictionary for train data + dict = ['src.dict', 'trg.dict'] + dict_path = [ + os.path.join(self.output_path, dict[0]), + os.path.join(self.output_path, dict[1]) + ] + if mergeDict: + outname = os.path.join(train_dir, train_dataset.split('/')[-1]) + print 'build src dictionary for train data' + self.build_dict(outname, dict_path[0], dict_size) + print 'build trg dictionary for train data' + os.system('cp ' + dict_path[0] + ' ' + dict_path[1]) + else: + outname = os.path.join(train_dataset, self.train_dir_name) + for id in range(0, 2): + suffix = suffixes[id] + print 'build ' + suffix[1:] + ' dictionary for train data' + self.build_dict(outname + suffix, dict_path[id], dict_size) + print 'dictionary size is', self.dict_size + + def save_dict(dict, filename, is_reverse=True): """ Save dictionary into file. diff --git a/python/paddle/v2/dataset/wmt14.py b/python/paddle/v2/dataset/wmt14.py index 254f07c8dd..f8637c0a00 100644 --- a/python/paddle/v2/dataset/wmt14.py +++ b/python/paddle/v2/dataset/wmt14.py @@ -14,103 +14,92 @@ """ wmt14 dataset """ -import os -import os.path import tarfile import paddle.v2.dataset.common -from wmt14_util import SeqToSeqDatasetCreater __all__ = ['train', 'test', 'build_dict'] URL_DEV_TEST = 'http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/data/dev+test.tgz' MD5_DEV_TEST = '7d7897317ddd8ba0ae5c5fa7248d3ff5' # this is a small set of data for test. The original data is too large and will be add later. -URL_TRAIN = 'http://paddlepaddle.bj.bcebos.com/demo/wmt_shrinked_data/wmt14.tgz' -MD5_TRAIN = '7373473f86016f1f48037c9c340a2d5b' +URL_TRAIN = 'http://localhost:8989/wmt14.tgz' +MD5_TRAIN = 'a755315dd01c2c35bde29a744ede23a6' START = "" END = "" UNK = "" UNK_IDX = 2 -DEFAULT_DATA_DIR = "./data" -ORIGIN_DATA_DIR = "wmt14" -INNER_DATA_DIR = "pre-wmt14" -SRC_DICT = INNER_DATA_DIR + "/src.dict" -TRG_DICT = INNER_DATA_DIR + "/trg.dict" -TRAIN_FILE = INNER_DATA_DIR + "/train/train" - - -def __process_data__(data_path, dict_size=None): - downloaded_data = os.path.join(data_path, ORIGIN_DATA_DIR) - if not os.path.exists(downloaded_data): - # 1. download and extract tgz. - with tarfile.open( - paddle.v2.dataset.common.download(URL_TRAIN, 'wmt14', - MD5_TRAIN)) as tf: - tf.extractall(data_path) - - # 2. process data file to intermediate format. - processed_data = os.path.join(data_path, INNER_DATA_DIR) - if not os.path.exists(processed_data): - dict_size = dict_size or -1 - data_creator = SeqToSeqDatasetCreater(downloaded_data, processed_data) - data_creator.create_dataset(dict_size, mergeDict=False) - - -def __read_to_dict__(dict_path, count): - with open(dict_path, "r") as fin: + +def __read_to_dict__(tar_file, dict_size): + def __to_dict__(fd, size): out_dict = dict() - for line_count, line in enumerate(fin): - if line_count <= count: + for line_count, line in enumerate(fd): + if line_count < size: out_dict[line.strip()] = line_count else: break - return out_dict - - -def __reader__(file_name, src_dict, trg_dict): - with open(file_name, 'r') as f: - for line_count, line in enumerate(f): - line_split = line.strip().split('\t') - if len(line_split) != 2: - continue - src_seq = line_split[0] # one source sequence - src_words = src_seq.split() - src_ids = [ - src_dict.get(w, UNK_IDX) for w in [START] + src_words + [END] + return out_dict + + with tarfile.open(tar_file, mode='r') as f: + names = [ + each_item.name for each_item in f + if each_item.name.endswith("src.dict") + ] + assert len(names) == 1 + src_dict = __to_dict__(f.extractfile(names[0]), dict_size) + names = [ + each_item.name for each_item in f + if each_item.name.endswith("trg.dict") + ] + assert len(names) == 1 + trg_dict = __to_dict__(f.extractfile(names[0]), dict_size) + return src_dict, trg_dict + + +def reader_creator(tar_file, file_name, dict_size): + def reader(): + src_dict, trg_dict = __read_to_dict__(tar_file, dict_size) + with tarfile.open(tar_file, mode='r') as f: + names = [ + each_item.name for each_item in f + if each_item.name.endswith(file_name) ] - - trg_seq = line_split[1] # one target sequence - trg_words = trg_seq.split() - trg_ids = [trg_dict.get(w, UNK_IDX) for w in trg_words] - - # remove sequence whose length > 80 in training mode - if len(src_ids) > 80 or len(trg_ids) > 80: - continue - trg_ids_next = trg_ids + [trg_dict[END]] - trg_ids = [trg_dict[START]] + trg_ids - - yield src_ids, trg_ids, trg_ids_next - - -def train(data_dir=None, dict_size=None): - data_dir = data_dir or DEFAULT_DATA_DIR - __process_data__(data_dir, dict_size) - src_lang_dict = os.path.join(data_dir, SRC_DICT) - trg_lang_dict = os.path.join(data_dir, TRG_DICT) - train_file_name = os.path.join(data_dir, TRAIN_FILE) - - default_dict_size = len(open(src_lang_dict, "r").readlines()) - - if dict_size > default_dict_size: - raise ValueError("dict_dim should not be larger then the " - "length of word dict") - - real_dict_dim = dict_size or default_dict_size - - src_dict = __read_to_dict__(src_lang_dict, real_dict_dim) - trg_dict = __read_to_dict__(trg_lang_dict, real_dict_dim) - - return lambda: __reader__(train_file_name, src_dict, trg_dict) + for name in names: + for line in f.extractfile(name): + line_split = line.strip().split('\t') + if len(line_split) != 2: + continue + src_seq = line_split[0] # one source sequence + src_words = src_seq.split() + src_ids = [ + src_dict.get(w, UNK_IDX) + for w in [START] + src_words + [END] + ] + + trg_seq = line_split[1] # one target sequence + trg_words = trg_seq.split() + trg_ids = [trg_dict.get(w, UNK_IDX) for w in trg_words] + + # remove sequence whose length > 80 in training mode + if len(src_ids) > 80 or len(trg_ids) > 80: + continue + trg_ids_next = trg_ids + [trg_dict[END]] + trg_ids = [trg_dict[START]] + trg_ids + + yield src_ids, trg_ids, trg_ids_next + + return reader + + +def train(dict_size): + return reader_creator( + paddle.v2.dataset.common.download(URL_TRAIN, 'wmt14', MD5_TRAIN), + 'train/train', dict_size) + + +def test(dict_size): + return reader_creator( + paddle.v2.dataset.common.download(URL_TRAIN, 'wmt14', MD5_TRAIN), + 'test/test', dict_size) diff --git a/python/paddle/v2/dataset/wmt14_util.py b/python/paddle/v2/dataset/wmt14_util.py deleted file mode 100644 index 0d72389164..0000000000 --- a/python/paddle/v2/dataset/wmt14_util.py +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -import os - -from paddle.utils.preprocess_util import save_list, DatasetCreater - - -class SeqToSeqDatasetCreater(DatasetCreater): - """ - A class to process data for sequence to sequence application. - """ - - def __init__(self, data_path, output_path): - """ - data_path: the path to store the train data, test data and gen data - output_path: the path to store the processed dataset - """ - DatasetCreater.__init__(self, data_path) - self.gen_dir_name = 'gen' - self.gen_list_name = 'gen.list' - self.output_path = output_path - - def concat_file(self, file_path, file1, file2, output_path, output): - """ - Concat file1 and file2 to be one output file - The i-th line of output = i-th line of file1 + '\t' + i-th line of file2 - file_path: the path to store file1 and file2 - output_path: the path to store output file - """ - file1 = os.path.join(file_path, file1) - file2 = os.path.join(file_path, file2) - output = os.path.join(output_path, output) - if not os.path.exists(output): - os.system('paste ' + file1 + ' ' + file2 + ' > ' + output) - - def cat_file(self, dir_path, suffix, output_path, output): - """ - Cat all the files in dir_path with suffix to be one output file - dir_path: the base directory to store input file - suffix: suffix of file name - output_path: the path to store output file - """ - cmd = 'cat ' - file_list = os.listdir(dir_path) - file_list.sort() - for file in file_list: - if file.endswith(suffix): - cmd += os.path.join(dir_path, file) + ' ' - output = os.path.join(output_path, output) - if not os.path.exists(output): - os.system(cmd + '> ' + output) - - def build_dict(self, file_path, dict_path, dict_size=-1): - """ - Create the dictionary for the file, Note that - 1. Valid characters include all printable characters - 2. There is distinction between uppercase and lowercase letters - 3. There is 3 special token: - : the start of a sequence - : the end of a sequence - : a word not included in dictionary - file_path: the path to store file - dict_path: the path to store dictionary - dict_size: word count of dictionary - if is -1, dictionary will contains all the words in file - """ - if not os.path.exists(dict_path): - dictory = dict() - with open(file_path, "r") as fdata: - for line in fdata: - line = line.split('\t') - for line_split in line: - words = line_split.strip().split() - for word in words: - if word not in dictory: - dictory[word] = 1 - else: - dictory[word] += 1 - output = open(dict_path, "w+") - output.write('\n\n\n') - count = 3 - for key, value in sorted( - dictory.items(), key=lambda d: d[1], reverse=True): - output.write(key + "\n") - count += 1 - if count == dict_size: - break - self.dict_size = count - - def create_dataset(self, - dict_size=-1, - mergeDict=False, - suffixes=['.src', '.trg']): - """ - Create seqToseq dataset - """ - # dataset_list and dir_list has one-to-one relationship - train_dataset = os.path.join(self.data_path, self.train_dir_name) - test_dataset = os.path.join(self.data_path, self.test_dir_name) - gen_dataset = os.path.join(self.data_path, self.gen_dir_name) - dataset_list = [train_dataset, test_dataset, gen_dataset] - - train_dir = os.path.join(self.output_path, self.train_dir_name) - test_dir = os.path.join(self.output_path, self.test_dir_name) - gen_dir = os.path.join(self.output_path, self.gen_dir_name) - dir_list = [train_dir, test_dir, gen_dir] - - # create directory - for dir in dir_list: - if not os.path.exists(dir): - os.makedirs(dir) - - # checkout dataset should be parallel corpora - suffix_len = len(suffixes[0]) - for dataset in dataset_list: - file_list = os.listdir(dataset) - if len(file_list) % 2 == 1: - raise RuntimeError("dataset should be parallel corpora") - file_list.sort() - for i in range(0, len(file_list), 2): - if file_list[i][:-suffix_len] != file_list[i + 1][:-suffix_len]: - raise RuntimeError( - "source and target file name should be equal") - - # cat all the files with the same suffix in dataset - for suffix in suffixes: - for dataset in dataset_list: - outname = os.path.basename(dataset) + suffix - self.cat_file(dataset, suffix, dataset, outname) - - # concat parallel corpora and create file.list - print 'concat parallel corpora for dataset' - id = 0 - list = ['train.list', 'test.list', 'gen.list'] - for dataset in dataset_list: - outname = os.path.basename(dataset) - self.concat_file(dataset, outname + suffixes[0], - outname + suffixes[1], dir_list[id], outname) - save_list([os.path.join(dir_list[id], outname)], - os.path.join(self.output_path, list[id])) - id += 1 - - # build dictionary for train data - dict = ['src.dict', 'trg.dict'] - dict_path = [ - os.path.join(self.output_path, dict[0]), - os.path.join(self.output_path, dict[1]) - ] - if mergeDict: - outname = os.path.join(train_dir, train_dataset.split('/')[-1]) - print 'build src dictionary for train data' - self.build_dict(outname, dict_path[0], dict_size) - print 'build trg dictionary for train data' - os.system('cp ' + dict_path[0] + ' ' + dict_path[1]) - else: - outname = os.path.join(train_dataset, self.train_dir_name) - for id in range(0, 2): - suffix = suffixes[id] - print 'build ' + suffix[1:] + ' dictionary for train data' - self.build_dict(outname + suffix, dict_path[id], dict_size) - print 'dictionary size is', self.dict_size From 2ad9fd646f1cf612fb721d869f4b4c93e7aa5c2a Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Mon, 6 Mar 2017 20:52:18 +0800 Subject: [PATCH 159/186] revert preprocess.py --- demo/sentiment/preprocess.py | 166 ++--------------------------------- demo/seqToseq/preprocess.py | 160 ++++++++++++++++++++++++++++++++- 2 files changed, 165 insertions(+), 161 deletions(-) diff --git a/demo/sentiment/preprocess.py b/demo/sentiment/preprocess.py index 59c3b5febe..29b3682b74 100755 --- a/demo/sentiment/preprocess.py +++ b/demo/sentiment/preprocess.py @@ -12,176 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os +import sys +import random import operator -from optparse import OptionParser -from os.path import join as join_path +import numpy as np from subprocess import Popen, PIPE +from os.path import join as join_path +from optparse import OptionParser -import numpy as np from paddle.utils.preprocess_util import * -from paddle.utils.preprocess_util import save_list, DatasetCreater """ Usage: run following command to show help message. python preprocess.py -h """ -class SeqToSeqDatasetCreater(DatasetCreater): - """ - A class to process data for sequence to sequence application. - """ - - def __init__(self, data_path, output_path): - """ - data_path: the path to store the train data, test data and gen data - output_path: the path to store the processed dataset - """ - DatasetCreater.__init__(self, data_path) - self.gen_dir_name = 'gen' - self.gen_list_name = 'gen.list' - self.output_path = output_path - - def concat_file(self, file_path, file1, file2, output_path, output): - """ - Concat file1 and file2 to be one output file - The i-th line of output = i-th line of file1 + '\t' + i-th line of file2 - file_path: the path to store file1 and file2 - output_path: the path to store output file - """ - file1 = os.path.join(file_path, file1) - file2 = os.path.join(file_path, file2) - output = os.path.join(output_path, output) - if not os.path.exists(output): - os.system('paste ' + file1 + ' ' + file2 + ' > ' + output) - - def cat_file(self, dir_path, suffix, output_path, output): - """ - Cat all the files in dir_path with suffix to be one output file - dir_path: the base directory to store input file - suffix: suffix of file name - output_path: the path to store output file - """ - cmd = 'cat ' - file_list = os.listdir(dir_path) - file_list.sort() - for file in file_list: - if file.endswith(suffix): - cmd += os.path.join(dir_path, file) + ' ' - output = os.path.join(output_path, output) - if not os.path.exists(output): - os.system(cmd + '> ' + output) - - def build_dict(self, file_path, dict_path, dict_size=-1): - """ - Create the dictionary for the file, Note that - 1. Valid characters include all printable characters - 2. There is distinction between uppercase and lowercase letters - 3. There is 3 special token: - : the start of a sequence - : the end of a sequence - : a word not included in dictionary - file_path: the path to store file - dict_path: the path to store dictionary - dict_size: word count of dictionary - if is -1, dictionary will contains all the words in file - """ - if not os.path.exists(dict_path): - dictory = dict() - with open(file_path, "r") as fdata: - for line in fdata: - line = line.split('\t') - for line_split in line: - words = line_split.strip().split() - for word in words: - if word not in dictory: - dictory[word] = 1 - else: - dictory[word] += 1 - output = open(dict_path, "w+") - output.write('\n\n\n') - count = 3 - for key, value in sorted( - dictory.items(), key=lambda d: d[1], reverse=True): - output.write(key + "\n") - count += 1 - if count == dict_size: - break - self.dict_size = count - - def create_dataset(self, - dict_size=-1, - mergeDict=False, - suffixes=['.src', '.trg']): - """ - Create seqToseq dataset - """ - # dataset_list and dir_list has one-to-one relationship - train_dataset = os.path.join(self.data_path, self.train_dir_name) - test_dataset = os.path.join(self.data_path, self.test_dir_name) - gen_dataset = os.path.join(self.data_path, self.gen_dir_name) - dataset_list = [train_dataset, test_dataset, gen_dataset] - - train_dir = os.path.join(self.output_path, self.train_dir_name) - test_dir = os.path.join(self.output_path, self.test_dir_name) - gen_dir = os.path.join(self.output_path, self.gen_dir_name) - dir_list = [train_dir, test_dir, gen_dir] - - # create directory - for dir in dir_list: - if not os.path.exists(dir): - os.makedirs(dir) - - # checkout dataset should be parallel corpora - suffix_len = len(suffixes[0]) - for dataset in dataset_list: - file_list = os.listdir(dataset) - if len(file_list) % 2 == 1: - raise RuntimeError("dataset should be parallel corpora") - file_list.sort() - for i in range(0, len(file_list), 2): - if file_list[i][:-suffix_len] != file_list[i + 1][:-suffix_len]: - raise RuntimeError( - "source and target file name should be equal") - - # cat all the files with the same suffix in dataset - for suffix in suffixes: - for dataset in dataset_list: - outname = os.path.basename(dataset) + suffix - self.cat_file(dataset, suffix, dataset, outname) - - # concat parallel corpora and create file.list - print 'concat parallel corpora for dataset' - id = 0 - list = ['train.list', 'test.list', 'gen.list'] - for dataset in dataset_list: - outname = os.path.basename(dataset) - self.concat_file(dataset, outname + suffixes[0], - outname + suffixes[1], dir_list[id], outname) - save_list([os.path.join(dir_list[id], outname)], - os.path.join(self.output_path, list[id])) - id += 1 - - # build dictionary for train data - dict = ['src.dict', 'trg.dict'] - dict_path = [ - os.path.join(self.output_path, dict[0]), - os.path.join(self.output_path, dict[1]) - ] - if mergeDict: - outname = os.path.join(train_dir, train_dataset.split('/')[-1]) - print 'build src dictionary for train data' - self.build_dict(outname, dict_path[0], dict_size) - print 'build trg dictionary for train data' - os.system('cp ' + dict_path[0] + ' ' + dict_path[1]) - else: - outname = os.path.join(train_dataset, self.train_dir_name) - for id in range(0, 2): - suffix = suffixes[id] - print 'build ' + suffix[1:] + ' dictionary for train data' - self.build_dict(outname + suffix, dict_path[id], dict_size) - print 'dictionary size is', self.dict_size - - def save_dict(dict, filename, is_reverse=True): """ Save dictionary into file. diff --git a/demo/seqToseq/preprocess.py b/demo/seqToseq/preprocess.py index afa7bd5e0f..03f371331a 100755 --- a/demo/seqToseq/preprocess.py +++ b/demo/seqToseq/preprocess.py @@ -23,9 +23,167 @@ Options: -m --mergeDict merge source and target dictionary """ import os +import sys + +import string from optparse import OptionParser +from paddle.utils.preprocess_util import save_list, DatasetCreater + + +class SeqToSeqDatasetCreater(DatasetCreater): + """ + A class to process data for sequence to sequence application. + """ + + def __init__(self, data_path, output_path): + """ + data_path: the path to store the train data, test data and gen data + output_path: the path to store the processed dataset + """ + DatasetCreater.__init__(self, data_path) + self.gen_dir_name = 'gen' + self.gen_list_name = 'gen.list' + self.output_path = output_path + + def concat_file(self, file_path, file1, file2, output_path, output): + """ + Concat file1 and file2 to be one output file + The i-th line of output = i-th line of file1 + '\t' + i-th line of file2 + file_path: the path to store file1 and file2 + output_path: the path to store output file + """ + file1 = os.path.join(file_path, file1) + file2 = os.path.join(file_path, file2) + output = os.path.join(output_path, output) + if not os.path.exists(output): + os.system('paste ' + file1 + ' ' + file2 + ' > ' + output) + + def cat_file(self, dir_path, suffix, output_path, output): + """ + Cat all the files in dir_path with suffix to be one output file + dir_path: the base directory to store input file + suffix: suffix of file name + output_path: the path to store output file + """ + cmd = 'cat ' + file_list = os.listdir(dir_path) + file_list.sort() + for file in file_list: + if file.endswith(suffix): + cmd += os.path.join(dir_path, file) + ' ' + output = os.path.join(output_path, output) + if not os.path.exists(output): + os.system(cmd + '> ' + output) + + def build_dict(self, file_path, dict_path, dict_size=-1): + """ + Create the dictionary for the file, Note that + 1. Valid characters include all printable characters + 2. There is distinction between uppercase and lowercase letters + 3. There is 3 special token: + : the start of a sequence + : the end of a sequence + : a word not included in dictionary + file_path: the path to store file + dict_path: the path to store dictionary + dict_size: word count of dictionary + if is -1, dictionary will contains all the words in file + """ + if not os.path.exists(dict_path): + dictory = dict() + with open(file_path, "r") as fdata: + for line in fdata: + line = line.split('\t') + for line_split in line: + words = line_split.strip().split() + for word in words: + if word not in dictory: + dictory[word] = 1 + else: + dictory[word] += 1 + output = open(dict_path, "w+") + output.write('\n\n\n') + count = 3 + for key, value in sorted( + dictory.items(), key=lambda d: d[1], reverse=True): + output.write(key + "\n") + count += 1 + if count == dict_size: + break + self.dict_size = count + + def create_dataset(self, + dict_size=-1, + mergeDict=False, + suffixes=['.src', '.trg']): + """ + Create seqToseq dataset + """ + # dataset_list and dir_list has one-to-one relationship + train_dataset = os.path.join(self.data_path, self.train_dir_name) + test_dataset = os.path.join(self.data_path, self.test_dir_name) + gen_dataset = os.path.join(self.data_path, self.gen_dir_name) + dataset_list = [train_dataset, test_dataset, gen_dataset] + + train_dir = os.path.join(self.output_path, self.train_dir_name) + test_dir = os.path.join(self.output_path, self.test_dir_name) + gen_dir = os.path.join(self.output_path, self.gen_dir_name) + dir_list = [train_dir, test_dir, gen_dir] + + # create directory + for dir in dir_list: + if not os.path.exists(dir): + os.mkdir(dir) + + # checkout dataset should be parallel corpora + suffix_len = len(suffixes[0]) + for dataset in dataset_list: + file_list = os.listdir(dataset) + if len(file_list) % 2 == 1: + raise RuntimeError("dataset should be parallel corpora") + file_list.sort() + for i in range(0, len(file_list), 2): + if file_list[i][:-suffix_len] != file_list[i + 1][:-suffix_len]: + raise RuntimeError( + "source and target file name should be equal") + + # cat all the files with the same suffix in dataset + for suffix in suffixes: + for dataset in dataset_list: + outname = os.path.basename(dataset) + suffix + self.cat_file(dataset, suffix, dataset, outname) + + # concat parallel corpora and create file.list + print 'concat parallel corpora for dataset' + id = 0 + list = ['train.list', 'test.list', 'gen.list'] + for dataset in dataset_list: + outname = os.path.basename(dataset) + self.concat_file(dataset, outname + suffixes[0], + outname + suffixes[1], dir_list[id], outname) + save_list([os.path.join(dir_list[id], outname)], + os.path.join(self.output_path, list[id])) + id += 1 -from paddle.v2.dataset.wmt14_util import SeqToSeqDatasetCreater + # build dictionary for train data + dict = ['src.dict', 'trg.dict'] + dict_path = [ + os.path.join(self.output_path, dict[0]), + os.path.join(self.output_path, dict[1]) + ] + if mergeDict: + outname = os.path.join(train_dir, train_dataset.split('/')[-1]) + print 'build src dictionary for train data' + self.build_dict(outname, dict_path[0], dict_size) + print 'build trg dictionary for train data' + os.system('cp ' + dict_path[0] + ' ' + dict_path[1]) + else: + outname = os.path.join(train_dataset, self.train_dir_name) + for id in range(0, 2): + suffix = suffixes[id] + print 'build ' + suffix[1:] + ' dictionary for train data' + self.build_dict(outname + suffix, dict_path[id], dict_size) + print 'dictionary size is', self.dict_size def main(): From 1940f58f5393497c4fe7b58e66b695d272ab1e77 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Mon, 6 Mar 2017 20:59:29 +0800 Subject: [PATCH 160/186] add bos url --- python/paddle/v2/dataset/wmt14.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/paddle/v2/dataset/wmt14.py b/python/paddle/v2/dataset/wmt14.py index f8637c0a00..f5a16d5147 100644 --- a/python/paddle/v2/dataset/wmt14.py +++ b/python/paddle/v2/dataset/wmt14.py @@ -23,7 +23,7 @@ __all__ = ['train', 'test', 'build_dict'] URL_DEV_TEST = 'http://www-lium.univ-lemans.fr/~schwenk/cslm_joint_paper/data/dev+test.tgz' MD5_DEV_TEST = '7d7897317ddd8ba0ae5c5fa7248d3ff5' # this is a small set of data for test. The original data is too large and will be add later. -URL_TRAIN = 'http://localhost:8989/wmt14.tgz' +URL_TRAIN = 'http://paddlepaddle.bj.bcebos.com/demo/wmt_shrinked_data/wmt14.tgz' MD5_TRAIN = 'a755315dd01c2c35bde29a744ede23a6' START = "" From b1c22b67907dce137aafcfd42be33c992d74b1ca Mon Sep 17 00:00:00 2001 From: hedaoyuan Date: Tue, 7 Mar 2017 00:59:27 +0800 Subject: [PATCH 161/186] Fix MultiGradientMachine error --- .../gradientmachines/MultiGradientMachine.cpp | 36 ++++++++++++++----- .../gradientmachines/MultiGradientMachine.h | 7 +++- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/paddle/gserver/gradientmachines/MultiGradientMachine.cpp b/paddle/gserver/gradientmachines/MultiGradientMachine.cpp index 123273f916..e7db487e7e 100644 --- a/paddle/gserver/gradientmachines/MultiGradientMachine.cpp +++ b/paddle/gserver/gradientmachines/MultiGradientMachine.cpp @@ -346,7 +346,9 @@ Evaluator* MultiGradientMachine::makeEvaluator() const { void MultiGradientMachine::eval(Evaluator* evaluator) const { for (auto& thread : threads_) { SetDevice device(thread->getDeviceId()); - thread->getGradientMachine()->eval(evaluator); + if (thread->hasInputData()) { + thread->getGradientMachine()->eval(evaluator); + } } } @@ -356,14 +358,20 @@ void MultiGradientMachine::getOutArgs(std::vector* outArgs, REGISTER_TIMER("waitOutArgs"); thread->waitOutArgsReady(); } - outArgs_.resize(threads_[0]->getOutArgs().size()); + // outArgs_.size() only need to be calculated once. + static int size = threads_[threads_.size() - 1]->getOutArgs().size(); + outArgs_.resize(size); REGISTER_TIMER("copyOutArgs"); for (size_t i = 0; i < outArgs_.size(); ++i) { std::vector args; args.reserve(threads_.size()); for (auto& thread : threads_) { - args.push_back(thread->getOutArgs()[i]); + // If the thread input is empty, then the output is empty. + auto tmp = thread->getOutArgs(); + if (tmp.size() > 0) { + args.push_back(tmp[i]); + } } outArgs_[i].concat(args, useGpu_, outArgStream_, passType); } @@ -534,7 +542,7 @@ void TrainerThread::prefetch() { void TrainerThread::forward() { if (!inArgsCopied_) { REGISTER_TIMER("copyInArgs"); - copyInArgs(); + batchSize_ = copyInArgs(); } else { inArgsCopied_ = false; } @@ -564,7 +572,12 @@ void TrainerThread::forward() { { REGISTER_TIMER("thread_forward"); - gradientMachine_->forward(inArgs_, &outArgs_, multiMachine_->getPassType()); + if (batchSize_ > 0) { + gradientMachine_->forward( + inArgs_, &outArgs_, multiMachine_->getPassType()); + } else { + outArgs_.clear(); + } } outArgsReadySem_.post(); } @@ -574,7 +587,13 @@ void TrainerThread::backward() { if (multiMachine_->isPassGrad()) { copyOutputGrad(); } - gradientMachine_->backward(backwardCallback_); + if (batchSize_ > 0) { + gradientMachine_->backward(backwardCallback_); + } else { + for (size_t i = parameters_.size(); i > 0; i--) { + backwardCallback(parameters_[i - 1].get()); + } + } if (multiMachine_->hasNonstaticCpuParamters()) { mergeCpuGradients(); } @@ -732,7 +751,7 @@ void TrainerThread::notifyValueReady(int paramId) { notifyValueDispatch(paramId); } -void TrainerThread::copyInArgs() { +int TrainerThread::copyInArgs() { const std::vector& fullInArgs = multiMachine_->getInArgs(); int numThreads = multiMachine_->getAllThreads().size(); int32_t numSequences = fullInArgs[0].getNumSequences(); @@ -748,7 +767,7 @@ void TrainerThread::copyInArgs() { } if (copySize == 0) { - return; + return 0; } for (size_t i = 0; i < fullInArgs.size(); i++) { @@ -758,6 +777,7 @@ void TrainerThread::copyInArgs() { copySize, FLAGS_parallel_nn ? false : multiMachine_->useGpu()); } + return copySize; } void TrainerThread::mergeCpuGradients() { diff --git a/paddle/gserver/gradientmachines/MultiGradientMachine.h b/paddle/gserver/gradientmachines/MultiGradientMachine.h index 838a52b515..31bb28b6fe 100644 --- a/paddle/gserver/gradientmachines/MultiGradientMachine.h +++ b/paddle/gserver/gradientmachines/MultiGradientMachine.h @@ -387,6 +387,9 @@ public: /// copy the output gradient from the main GradientMachine. void copyOutputGrad(); + /// Whether the thread has input data. + bool hasInputData() { return batchSize_ != 0; } + protected: void mergeCpuGradients(); @@ -407,7 +410,7 @@ protected: void copyGradToBufferThread(); void gradCollectThread(); - void copyInArgs(); + int copyInArgs(); void forward(); void backward(); void backwardCallback(Parameter* para); @@ -467,6 +470,8 @@ protected: /// indicate whether inArgs is copied before forward() bool inArgsCopied_; + + int batchSize_; }; } // namespace paddle From 9322f8cbf51de19983bce257bff08078739a1224 Mon Sep 17 00:00:00 2001 From: hedaoyuan Date: Tue, 7 Mar 2017 10:16:40 +0800 Subject: [PATCH 162/186] Format --- paddle/gserver/gradientmachines/MultiGradientMachine.cpp | 5 +++-- paddle/gserver/gradientmachines/MultiGradientMachine.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/paddle/gserver/gradientmachines/MultiGradientMachine.cpp b/paddle/gserver/gradientmachines/MultiGradientMachine.cpp index e7db487e7e..faadca69ab 100644 --- a/paddle/gserver/gradientmachines/MultiGradientMachine.cpp +++ b/paddle/gserver/gradientmachines/MultiGradientMachine.cpp @@ -358,6 +358,7 @@ void MultiGradientMachine::getOutArgs(std::vector* outArgs, REGISTER_TIMER("waitOutArgs"); thread->waitOutArgsReady(); } + // outArgs_.size() only need to be calculated once. static int size = threads_[threads_.size() - 1]->getOutArgs().size(); outArgs_.resize(size); @@ -574,9 +575,9 @@ void TrainerThread::forward() { REGISTER_TIMER("thread_forward"); if (batchSize_ > 0) { gradientMachine_->forward( - inArgs_, &outArgs_, multiMachine_->getPassType()); + inArgs_, &outArgs_, multiMachine_->getPassType()); } else { - outArgs_.clear(); + outArgs_.clear(); } } outArgsReadySem_.post(); diff --git a/paddle/gserver/gradientmachines/MultiGradientMachine.h b/paddle/gserver/gradientmachines/MultiGradientMachine.h index 31bb28b6fe..70203bbb97 100644 --- a/paddle/gserver/gradientmachines/MultiGradientMachine.h +++ b/paddle/gserver/gradientmachines/MultiGradientMachine.h @@ -470,7 +470,6 @@ protected: /// indicate whether inArgs is copied before forward() bool inArgsCopied_; - int batchSize_; }; From 929a390f6c14821be9b4dafd5d150225a23b8cf6 Mon Sep 17 00:00:00 2001 From: gangliao Date: Tue, 7 Mar 2017 11:24:32 +0800 Subject: [PATCH 163/186] Set VGG in image classification demo --- demo/image_classification/api_v2_train.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/demo/image_classification/api_v2_train.py b/demo/image_classification/api_v2_train.py index 7134fa61e8..53cffa6fb4 100644 --- a/demo/image_classification/api_v2_train.py +++ b/demo/image_classification/api_v2_train.py @@ -16,7 +16,7 @@ import sys import paddle.v2 as paddle -from api_v2_resnet import resnet_cifar10 +from api_v2_vgg import vgg_bn_drop def main(): @@ -31,9 +31,9 @@ def main(): # Add neural network config # option 1. resnet - net = resnet_cifar10(image, depth=32) + # net = resnet_cifar10(image, depth=32) # option 2. vgg - # net = vgg_bn_drop(image) + net = vgg_bn_drop(image) out = paddle.layer.fc(input=net, size=classdim, From 0d2d419a598ceb9deb488e5e3d2f1384635ee9be Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Tue, 7 Mar 2017 16:25:09 +0800 Subject: [PATCH 164/186] Follow comments --- demo/mnist/api_train_v2.py | 2 +- python/paddle/v2/inference.py | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 81b330a605..d0aca5eb1d 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -113,7 +113,7 @@ def main(): test_creator = paddle.dataset.mnist.test() test_data = [] for item in test_creator(): - test_data.append(item[0]) + test_data.append((item[0], )) if len(test_data) == 100: break diff --git a/python/paddle/v2/inference.py b/python/paddle/v2/inference.py index 7c079a0d32..7d7dc82de9 100644 --- a/python/paddle/v2/inference.py +++ b/python/paddle/v2/inference.py @@ -43,10 +43,7 @@ class Inference(object): def __reader_impl__(): for each_sample in input: - if len(reader_dict) == 1: - yield [each_sample] - else: - yield each_sample + yield each_sample reader = minibatch.batch(__reader_impl__, batch_size=batch_size) else: From 714e9bb95a25e591d6cd6fef9ba047383079aa5b Mon Sep 17 00:00:00 2001 From: gangliao Date: Tue, 7 Mar 2017 17:33:03 +0800 Subject: [PATCH 165/186] Set Protobuf 3.1 in FIND_PACKAGE --- cmake/external/protobuf.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/external/protobuf.cmake b/cmake/external/protobuf.cmake index 26da7e8e38..1575d8e9f5 100644 --- a/cmake/external/protobuf.cmake +++ b/cmake/external/protobuf.cmake @@ -14,7 +14,7 @@ INCLUDE(ExternalProject) -FIND_PACKAGE(Protobuf) +FIND_PACKAGE(Protobuf 3.1) IF(NOT PROTOBUF_FOUND) SET(PROTOBUF_SOURCES_DIR ${THIRD_PARTY_PATH}/protobuf) From df8a5af96f13d5e857b60f08856f4cb369c1fedf Mon Sep 17 00:00:00 2001 From: hedaoyuan Date: Wed, 8 Mar 2017 00:19:15 +0800 Subject: [PATCH 166/186] Fix outArgs_.resize() --- paddle/gserver/gradientmachines/MultiGradientMachine.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/paddle/gserver/gradientmachines/MultiGradientMachine.cpp b/paddle/gserver/gradientmachines/MultiGradientMachine.cpp index faadca69ab..4654d02064 100644 --- a/paddle/gserver/gradientmachines/MultiGradientMachine.cpp +++ b/paddle/gserver/gradientmachines/MultiGradientMachine.cpp @@ -359,9 +359,7 @@ void MultiGradientMachine::getOutArgs(std::vector* outArgs, thread->waitOutArgsReady(); } - // outArgs_.size() only need to be calculated once. - static int size = threads_[threads_.size() - 1]->getOutArgs().size(); - outArgs_.resize(size); + outArgs_.resize(threads_[threads_.size() - 1]->getOutArgs().size()); REGISTER_TIMER("copyOutArgs"); for (size_t i = 0; i < outArgs_.size(); ++i) { From 71ab4df36625ea5ae6637afbee2b588a513db608 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Wed, 8 Mar 2017 13:26:28 +0800 Subject: [PATCH 167/186] Follow comments, remove reader/batch_size in interface. --- demo/mnist/api_train_v2.py | 3 ++- python/paddle/v2/inference.py | 31 +++++++------------------------ 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/demo/mnist/api_train_v2.py b/demo/mnist/api_train_v2.py index 75c2f08132..3aa2199bcb 100644 --- a/demo/mnist/api_train_v2.py +++ b/demo/mnist/api_train_v2.py @@ -132,7 +132,8 @@ def main(): # output is a softmax layer. It returns probabilities. # Shape should be (100, 10) - probs = paddle.infer(output=predict, parameters=parameters, input=test_data) + probs = paddle.infer( + output_layer=predict, parameters=parameters, input=test_data) print probs.shape diff --git a/python/paddle/v2/inference.py b/python/paddle/v2/inference.py index 2ad4d9d1ab..53510d80c9 100644 --- a/python/paddle/v2/inference.py +++ b/python/paddle/v2/inference.py @@ -9,8 +9,8 @@ __all__ = ['infer'] class Inference(object): - def __init__(self, output, parameters): - topo = topology.Topology(output) + def __init__(self, output_layer, parameters): + topo = topology.Topology(output_layer) gm = api.GradientMachine.createFromConfigProto( topo.proto(), api.CREATE_MODE_TESTING, [api.PARAMETER_VALUE]) for param in gm.getParameters(): @@ -70,13 +70,7 @@ class Inference(object): return retv -def infer(output, - parameters, - input=None, - batch_size=None, - reader=None, - feeding=None, - field='value'): +def infer(output_layer, parameters, input=None, feeding=None, field='value'): """ Infer a neural network by given neural network output and parameters. The user should pass either a batch of input data or reader method. @@ -89,19 +83,13 @@ def infer(output, batch_size=32) print result - :param output: output of the neural network that would be inferred - :type output: paddle.v2.config_base.Layer + :param output_layer: output of the neural network that would be inferred + :type output_layer: paddle.v2.config_base.Layer :param parameters: parameters of the neural network. :type parameters: paddle.v2.parameters.Parameters :param input: input data batch. Should be a python iterable object, and each element is the data batch. :type input: collections.Iterable - :param batch_size: the batch size when perform inference. Default is the - length of input. - :type batch_size: int - :param reader: input data reader creator in batch. If this field is set, the - `input` and `batch_size` will be ignored. - :type reader: callable :param feeding: Reader dictionary. Default could generate from input value. :param field: The prediction field. It should in [`value`, `ids`]. `value` @@ -112,10 +100,5 @@ def infer(output, :rtype: numpy.ndarray """ - inferer = Inference(output=output, parameters=parameters) - return inferer.infer( - field=field, - input=input, - batch_size=batch_size, - reader=reader, - feeding=feeding) + inferer = Inference(output_layer=output_layer, parameters=parameters) + return inferer.infer(field=field, input=input, feeding=feeding) From 05b45e1f86e04e16bb94ee2ea75ddfef6029f631 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Wed, 8 Mar 2017 13:33:36 +0800 Subject: [PATCH 168/186] Remove reader logic --- python/paddle/v2/inference.py | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/python/paddle/v2/inference.py b/python/paddle/v2/inference.py index 4065f7fe11..ec3c67d895 100644 --- a/python/paddle/v2/inference.py +++ b/python/paddle/v2/inference.py @@ -21,30 +21,16 @@ class Inference(object): self.__gradient_machine__ = gm self.__data_types__ = topo.data_type() - def iter_infer(self, input=None, batch_size=None, reader=None, - feeding=None): + def iter_infer(self, input, feeding=None): feeder = DataFeeder(self.__data_types__, feeding) - if reader is None: - assert input is not None and isinstance(input, collections.Iterable) - if not isinstance(input, collections.Iterable): - raise TypeError("When reader is None, input should be whole " - "inference data and should be iterable") - - if batch_size is None: - if not hasattr(input, '__len__'): - raise ValueError("Should set batch size when input data " - "don't contain length.") - batch_size = len(input) - - def __reader_impl__(): - for each_sample in input: - yield each_sample - - reader = minibatch.batch(__reader_impl__, batch_size=batch_size) - else: - if input is not None: - raise ValueError("User should set either input or reader, " - "should not set them both.") + batch_size = len(input) + + def __reader_impl__(): + for each_sample in input: + yield each_sample + + reader = minibatch.batch(__reader_impl__, batch_size=batch_size) + self.__gradient_machine__.start() for data_batch in reader(): yield self.__gradient_machine__.forwardTest(feeder(data_batch)) From f11cfbe947c5994625d79f88073b80cfda1ed95c Mon Sep 17 00:00:00 2001 From: liaogang Date: Wed, 8 Mar 2017 15:08:46 +0800 Subject: [PATCH 169/186] Add submodule for book --- .gitmodules | 3 +++ .pre-commit-config.yaml | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 .gitmodules diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..55dae027fe --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "book"] + path = book + url = https://github.com/PaddlePaddle/book.git \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a6e45028eb..3402223b04 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,12 +2,12 @@ sha: c25201a00e6b0514370501050cf2a8538ac12270 hooks: - id: remove-crlf - files: (?!.*third_party)^.*$ + files: (?!.*third_party)^.*$ | (?!.*book)^.*$ - repo: https://github.com/reyoung/mirrors-yapf.git sha: v0.13.2 hooks: - id: yapf - files: (.*\.(py|bzl)|BUILD|.*\.BUILD|WORKSPACE)$ # Bazel BUILD files follow Python syntax. + files: (.*\.(py|bzl)|BUILD|.*\.BUILD|WORKSPACE)$ - repo: https://github.com/pre-commit/pre-commit-hooks sha: 7539d8bd1a00a3c1bfd34cdb606d3a6372e83469 hooks: @@ -15,7 +15,7 @@ - id: check-merge-conflict - id: check-symlinks - id: detect-private-key - files: (?!.*third_party)^.*$ + files: (?!.*third_party)^.*$ | (?!.*book)^.*$ - id: end-of-file-fixer - repo: https://github.com/PaddlePaddle/clang-format-pre-commit-hook.git sha: 28c0ea8a67a3e2dbbf4822ef44e85b63a0080a29 From ba13af0d7ef9abe1cc850b05054674c3d02e2550 Mon Sep 17 00:00:00 2001 From: liaogang Date: Wed, 8 Mar 2017 15:09:44 +0800 Subject: [PATCH 170/186] add blank --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 55dae027fe..c614602cb8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "book"] path = book - url = https://github.com/PaddlePaddle/book.git \ No newline at end of file + url = https://github.com/PaddlePaddle/book.git From dbe96a47752be035a69d2488791ab592c63c2e26 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Wed, 8 Mar 2017 16:02:09 +0800 Subject: [PATCH 171/186] update authors --- authors | 3 +++ 1 file changed, 3 insertions(+) diff --git a/authors b/authors index ab4d3118ff..daac4ec5d8 100644 --- a/authors +++ b/authors @@ -29,13 +29,16 @@ Luo, Tao Lyu, Qin Mao, Hongyue Qian, Xiaojun +Qiao, Longfei Qi, Jun Qin, Duohao Shen, Guolong Shi, Guangchuan Song, Xiang +Wang, Helin Wang, Jiang Wang, Yanfei +Wang, Yi Wang, Yong Weng, Renliang Xu, Tianbing From 00cce87666e45a065380c4df43e556d27947c87c Mon Sep 17 00:00:00 2001 From: liaogang Date: Wed, 8 Mar 2017 16:03:49 +0800 Subject: [PATCH 172/186] Add module dir --- book | 1 + 1 file changed, 1 insertion(+) create mode 160000 book diff --git a/book b/book new file mode 160000 index 0000000000..22ed2a01ae --- /dev/null +++ b/book @@ -0,0 +1 @@ +Subproject commit 22ed2a01aee872f055b5f5f212428f481cefc10d From c043d718401e701012d9bdc94482b58e68498518 Mon Sep 17 00:00:00 2001 From: liaogang Date: Wed, 8 Mar 2017 17:59:19 +0800 Subject: [PATCH 173/186] Add Book in Docker --- .../build_and_install/docker_install_en.rst | 25 ++++++++++++++++++- paddle/scripts/docker/Dockerfile | 6 ++--- paddle/scripts/docker/Dockerfile.gpu | 6 ++--- paddle/scripts/docker/build.sh | 3 ++- paddle/scripts/docker/entrypoint | 2 +- 5 files changed, 33 insertions(+), 9 deletions(-) diff --git a/doc/getstarted/build_and_install/docker_install_en.rst b/doc/getstarted/build_and_install/docker_install_en.rst index 5a1056e859..a92201c618 100644 --- a/doc/getstarted/build_and_install/docker_install_en.rst +++ b/doc/getstarted/build_and_install/docker_install_en.rst @@ -42,7 +42,7 @@ Windows -- in a consistent way. .. code-block:: bash - docker run -d -p 2202:22 -v $PWD:/paddle paddle:dev + docker run -d -p 2202:22 -p 8888:8888 -v $PWD:/paddle paddle:dev This runs a container of the development environment Docker image with the local source tree mounted to :code:`/paddle` of the @@ -82,6 +82,29 @@ Windows -- in a consistent way. cd /paddle/build ctest +4. Run PaddlePaddle Book under Docker Container + + 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 + dig deeper into deep learning, PaddlePaddle Book definitely is your best choice. + + Once you are inside the container, simply issue the command: + + .. code-block:: bash + + jupyter notebook + + Then, you would back and paste the address into the local browser: + + .. code-block:: text + + http://localhost:8888/ + + That's all. Enjoy your journey! CPU-only and GPU Images ----------------------- diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile index 98eaa15a0f..fa4aee4f8a 100644 --- a/paddle/scripts/docker/Dockerfile +++ b/paddle/scripts/docker/Dockerfile @@ -34,6 +34,8 @@ RUN apt-get update && \ # git credential to skip password typing RUN git config --global credential.helper store +# fetch PaddlePaddle book +RUN git submodule update --init --recursive # Fix locales to en_US.UTF-8 RUN localedef -i en_US -f UTF-8 en_US.UTF-8 @@ -60,9 +62,7 @@ RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config EXPOSE 22 -# Jupyter Notebook directory. -RUN mkdir /notes/ -WORKDIR "/notes" +# Jupyter Notebook: Paddle book EXPOSE 8888 COPY ./paddle/scripts/docker/entrypoint /opt/bin/ diff --git a/paddle/scripts/docker/Dockerfile.gpu b/paddle/scripts/docker/Dockerfile.gpu index 4d30ccdd2b..07b32dda75 100644 --- a/paddle/scripts/docker/Dockerfile.gpu +++ b/paddle/scripts/docker/Dockerfile.gpu @@ -34,6 +34,8 @@ RUN apt-get update && \ # git credential to skip password typing RUN git config --global credential.helper store +# fetch PaddlePaddle book +RUN git submodule update --init --recursive # Fix locales to en_US.UTF-8 RUN localedef -i en_US -f UTF-8 en_US.UTF-8 @@ -60,9 +62,7 @@ RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config EXPOSE 22 -# Jupyter Notebook directory. -RUN mkdir /notes/ -WORKDIR "/notes" +# Jupyter Notebook: Paddle book EXPOSE 8888 COPY ./paddle/scripts/docker/entrypoint /opt/bin/ diff --git a/paddle/scripts/docker/build.sh b/paddle/scripts/docker/build.sh index d9c44f4234..b2e6416c3d 100755 --- a/paddle/scripts/docker/build.sh +++ b/paddle/scripts/docker/build.sh @@ -17,7 +17,8 @@ if [[ ${BUILD_AND_INSTALL:-OFF} == 'ON' ]]; then fi mkdir -p /paddle/build # -p means no error if exists - cd /paddle/build + # clean local cmake and third_party cache + cd /paddle/build && rm -rf * && rm -rf ../third_party cmake .. \ -DWITH_DOC=${WITH_DOC:-OFF} \ -DWITH_GPU=${WITH_GPU:-OFF} \ diff --git a/paddle/scripts/docker/entrypoint b/paddle/scripts/docker/entrypoint index 87083467f5..cd119917f9 100755 --- a/paddle/scripts/docker/entrypoint +++ b/paddle/scripts/docker/entrypoint @@ -4,5 +4,5 @@ LOG=/var/log/all touch $LOG /usr/sbin/sshd -D >> $LOG & -jupyter notebook --ip=0.0.0.0 /notes/ >> $LOG & +jupyter notebook --ip=0.0.0.0 /paddle/book/ >> $LOG & tail -f $LOG From 1ff95e3de121fb72bd230b31c92c75b46f798c0e Mon Sep 17 00:00:00 2001 From: hedaoyuan Date: Wed, 8 Mar 2017 20:42:10 +0800 Subject: [PATCH 174/186] Use v2 attr and pooling fix sentiment train_v2.py --- demo/sentiment/train_v2.py | 48 ++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/demo/sentiment/train_v2.py b/demo/sentiment/train_v2.py index fd7243cbe6..1c856556bd 100644 --- a/demo/sentiment/train_v2.py +++ b/demo/sentiment/train_v2.py @@ -13,8 +13,6 @@ # limitations under the License. import sys -import paddle.trainer_config_helpers.attrs as attrs -from paddle.trainer_config_helpers.poolings import MaxPooling import paddle.v2 as paddle @@ -51,16 +49,14 @@ def stacked_lstm_net(input_dim, emb_dim: dimension of word embedding. hid_dim: dimension of hidden layer. stacked_num: number of stacked lstm-hidden layer. - is_predict: is predicting or not. - Some layers is not needed in network when predicting. """ assert stacked_num % 2 == 1 - layer_attr = attrs.ExtraLayerAttribute(drop_rate=0.5) - fc_para_attr = attrs.ParameterAttribute(learning_rate=1e-3) - lstm_para_attr = attrs.ParameterAttribute(initial_std=0., learning_rate=1.) + layer_attr = paddle.attr.Extra(drop_rate=0.5) + fc_para_attr = paddle.attr.Param(learning_rate=1e-3) + lstm_para_attr = paddle.attr.Param(initial_std=0., learning_rate=1.) para_attr = [fc_para_attr, lstm_para_attr] - bias_attr = attrs.ParameterAttribute(initial_std=0., l2_rate=0.) + bias_attr = paddle.attr.Param(initial_std=0., l2_rate=0.) relu = paddle.activation.Relu() linear = paddle.activation.Linear() @@ -90,8 +86,10 @@ def stacked_lstm_net(input_dim, layer_attr=layer_attr) inputs = [fc, lstm] - fc_last = paddle.layer.pooling(input=inputs[0], pooling_type=MaxPooling()) - lstm_last = paddle.layer.pooling(input=inputs[1], pooling_type=MaxPooling()) + fc_last = paddle.layer.pooling( + input=inputs[0], pooling_type=paddle.pooling.Max()) + lstm_last = paddle.layer.pooling( + input=inputs[1], pooling_type=paddle.pooling.Max()) output = paddle.layer.fc(input=[fc_last, lstm_last], size=class_dim, act=paddle.activation.Softmax(), @@ -105,14 +103,23 @@ def stacked_lstm_net(input_dim, if __name__ == '__main__': # init - paddle.init(use_gpu=False, trainer_count=4) + paddle.init(use_gpu=False) - # network config + #data print 'load dictionary...' word_dict = paddle.dataset.imdb.word_dict() dict_dim = len(word_dict) class_dim = 2 + train_reader = paddle.batch( + paddle.reader.shuffle( + lambda: paddle.dataset.imdb.train(word_dict), buf_size=1000), + batch_size=100) + test_reader = paddle.batch( + lambda: paddle.dataset.imdb.test(word_dict), batch_size=100) + + feeding = {'word': 0, 'label': 1} + # network config # Please choose the way to build the network # by uncommenting the corresponding line. cost = convolution_net(dict_dim, class_dim=class_dim) @@ -137,12 +144,7 @@ if __name__ == '__main__': sys.stdout.write('.') sys.stdout.flush() if isinstance(event, paddle.event.EndPass): - result = trainer.test( - reader=paddle.batch( - lambda: paddle.dataset.imdb.test(word_dict), - batch_size=128), - feeding={'word': 0, - 'label': 1}) + result = trainer.test(reader=test_reader, feeding=feeding) print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics) # create trainer @@ -151,11 +153,7 @@ if __name__ == '__main__': update_equation=adam_optimizer) trainer.train( - reader=paddle.batch( - paddle.reader.shuffle( - lambda: paddle.dataset.imdb.train(word_dict), buf_size=1000), - batch_size=100), + reader=train_reader, event_handler=event_handler, - feeding={'word': 0, - 'label': 1}, - num_passes=10) + feeding=feeding, + num_passes=2) From 06690cfb015ebc11d4190d751f98971f350d8316 Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Wed, 8 Mar 2017 22:39:10 +0800 Subject: [PATCH 175/186] add l2 regularization to reduce the probability of fpe exception --- demo/seqToseq/api_train_v2.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/demo/seqToseq/api_train_v2.py b/demo/seqToseq/api_train_v2.py index 6efd254e7a..5d138a8c4f 100644 --- a/demo/seqToseq/api_train_v2.py +++ b/demo/seqToseq/api_train_v2.py @@ -1,3 +1,4 @@ +import sys import paddle.v2 as paddle @@ -104,7 +105,9 @@ def main(): parameters = paddle.parameters.create(cost) # define optimize method and trainer - optimizer = paddle.optimizer.Adam(learning_rate=1e-4) + optimizer = paddle.optimizer.Adam( + learning_rate=5e-5, + regularization=paddle.optimizer.L2Regularization(rate=1e-3)) trainer = paddle.trainer.SGD(cost=cost, parameters=parameters, update_equation=optimizer) @@ -125,8 +128,11 @@ def main(): def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 10 == 0: - print "Pass %d, Batch %d, Cost %f, %s" % ( + print "\nPass %d, Batch %d, Cost %f, %s" % ( event.pass_id, event.batch_id, event.cost, event.metrics) + else: + sys.stdout.write('.') + sys.stdout.flush() # start to train trainer.train( From ca9249645d410fb01adee3bb37ea213257ef24a0 Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Wed, 8 Mar 2017 16:27:59 -0800 Subject: [PATCH 176/186] translate install paddle using docker to chinese --- .../build_and_install/docker_install_cn.rst | 196 ++++++++---------- 1 file changed, 86 insertions(+), 110 deletions(-) diff --git a/doc/getstarted/build_and_install/docker_install_cn.rst b/doc/getstarted/build_and_install/docker_install_cn.rst index 6b132d2a4d..78f518cfe4 100644 --- a/doc/getstarted/build_and_install/docker_install_cn.rst +++ b/doc/getstarted/build_and_install/docker_install_cn.rst @@ -1,158 +1,134 @@ -安装PaddlePaddle的Docker镜像 -============================ +PaddlePaddle的Docker容器使用方式 +================================ -PaddlePaddle项目提供官方 `Docker `_ 镜像。Docker镜像是我们目前唯一官方支持的部署和运行方式。 +PaddlePaddle目前唯一官方支持的运行的方式是Docker容器。因为Docker能在所有主要操作系统(包括Linux,Mac OS X和Windows)上运行。 请注意,您需要更改 `Dockers设置 `_ 才能充分利用Mac OS X和Windows上的硬件资源。 -下述内容将分为如下几个类别描述。 -* PaddlePaddle提供的Docker镜像版本 -* 下载和运行Docker镜像 -* 注意事项 +通过Docker容器开发PaddlePaddle +------------------------------ -PaddlePaddle提供的Docker镜像版本 --------------------------------- +开发人员可以在Docker中开发PaddlePaddle。这样开发人员可以以一致的方式在不同的平台上工作 - Linux,Mac OS X和Windows。 -我们提供了12个 `Docker image `_ ,他们的image name都是 :code:`paddledev/paddle` ,tag分别为 +1. 将开发环境构建为Docker镜像 + + .. code-block:: bash -+-----------------+------------------+------------------------+-----------------------+ -| | normal | devel | demo | -+=================+==================+========================+=======================+ -| CPU | cpu-latest | cpu-devel-latest | cpu-demo-latest | -+-----------------+------------------+------------------------+-----------------------+ -| GPU | gpu-latest | gpu-devel-latest | gpu-demo-latest | -+-----------------+------------------+------------------------+-----------------------+ -| CPU WITHOUT AVX | cpu-noavx-latest | cpu-noavx-devel-latest | cpu-noavx-demo-latest | -+-----------------+------------------+------------------------+-----------------------+ -| GPU WITHOUT AVX | gpu-noavx-latest | gpu-noavx-devel-latest | gpu-noavx-demo-latest | -+-----------------+------------------+------------------------+-----------------------+ + git clone --recursive https://github.com/PaddlePaddle/Paddle + cd Paddle + docker build -t paddle:dev -f paddle/scripts/docker/Dockerfile . -其中,横向包括三个版本,normal,devel和demo。 -* Normal: 正常的Docker image,只包括paddle的二进制 -* Devel: 包括Paddle的二进制、编译环境和源代码 -* Demo: 包括Paddle运行demo所需要的依赖 + 请注意,默认情况下,:code:`docker build` 不会将源码导入到镜像中并编译它。如果我们想这样做,需要设置一个参数: -纵向包括四个版本,他们是。 + .. code-block:: bash -* CPU: CPU版本。需要支持AVX指令集的CPU -* GPU: GPU版本。需要支持AVX指令集的CPU -* CPU WITHOUT AVX: CPU版本,不支持AVX指令集的CPU也可以运行 -* GPU WITHOUT AVX: GPU版本,不需要AVX指令集的CPU也可以运行。 + docker build -t paddle:dev -f paddle/scripts/docker/Dockerfile --build-arg BUILD_AND_INSTALL=ON . -用户可以选择对应版本的docker image。使用如下脚本可以确定本机的CPU是否支持 :code:`AVX` 指令集\: -.. code-block:: bash +2. 运行开发环境 - if cat /proc/cpuinfo | grep -q avx ; then echo "Support AVX"; else echo "Not support AVX"; fi + 当我们编译好了 :code:`paddle:dev`, 我们可以在docker容器里做开发,源代码可以通过挂载本地文件来被载入Docker的开发环境里面: + + .. code-block:: bash -如果输出 :code:`Support AVX`,则可以选择上表中的AVX版本PaddlePaddle。否则需要选择非AVX的PaddlePaddle。选择普通CPU版本的devel版本的image,则可以使用 :code:`paddledev/paddle:cpu-devel-latest` 来引用这个image。 + docker run -d -p 2202:22 -v $PWD:/paddle paddle:dev -PaddlePaddle提供的镜像并不包含任何命令运行,想要运行PaddlePaddle,您需要进入镜像运行PaddlePaddle -程序或者自定义一个含有启动脚本的image。具体请参考注意事项中的 :code:`使用ssh访问PaddlePaddle镜像` + 以上代码会启动一个带有PaddlePaddle开发环境的docker容器,源代码会被挂载到 :code:`/paddle` 。 -下载和运行Docker镜像 --------------------- + 请注意, :code:`paddle:dev` 的默认入口是 :code:`sshd` 。以上的 :code:`docker run` 命令其实会启动一个在2202端口监听的SSHD服务器。这样,我们就能SSH进入我们的开发容器了: + + .. code-block:: bash -为了运行PaddlePaddle的docker镜像,您需要在机器中安装好Docker。安装Docker需要您的机器 -至少具有3.10以上的linux kernel。安装方法请参考 -`Docker的官方文档 `_ 。如果您使用 -mac osx或者是windows机器,请参考 -`mac osx的安装文档 `_ 和 -`windows 的安装文档 `_ 。 + ssh root@localhost -p 2202 -您可以使用 :code:`docker pull` 命令预先下载镜像,也可以直接执行 -:code:`docker run` 命令运行镜像。执行方法如下: +3. 在Docker开发环境中编译与安装PaddlPaddle代码 -.. code-block:: bash - - $ docker run -it paddledev/paddle:cpu-latest + 当在容器里面的时候,可以用脚本 :code:`paddle/scripts/docker/build.sh` 来编译、安装与测试PaddlePaddle: + + .. code-block:: bash + + /paddle/paddle/scripts/docker/build.sh -即可启动和进入PaddlePaddle的container。如果运行GPU版本的PaddlePaddle,则需要先将 -cuda相关的Driver和设备映射进container中,脚本类似于 + 以上指令会在 :code:`/paddle/build` 中编译PaddlePaddle。通过以下指令可以运行单元测试: + + .. code-block:: bash -.. code-block:: bash + cd /paddle/build + ctest - $ 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:gpu-latest -进入Docker container后,运行 :code:`paddle version` 即可打印出PaddlePaddle的版本和构建 -信息。安装完成的PaddlePaddle主体包括三个部分, :code:`paddle` 脚本, python的 -:code:`paddle` 包和 :code:`py_paddle` 包。其中\: +纯CPU和GPU的docker镜像 +---------------------- -* :code:`paddle` 脚本和 :code:`paddle` 的python包是PaddlePaddle的训练主要程序。使用 - :code:`paddle` 脚本可以启动PaddlePaddle的训练进程和pserver。而 :code:`paddle` 脚本 - 中的二进制使用了 :code:`paddle` 的python包来做配置文件解析等工作。 -* python包 :code:`py_paddle` 是一个swig封装的PaddlePaddle包,用来做预测和简单的定制化 - 训练。 +对于每一个PaddlePaddle版本,我们都会发布两个Docker镜像:纯CPU的和GPU的。我们通过设置 `dockerhub.com `_ 自动运行以下两个命令: -注意事项 --------- +.. code-block:: bash -性能问题 -++++++++ + docker build -t paddle:cpu -f paddle/scripts/docker/Dockerfile . + docker build -t paddle:gpu -f paddle/scripts/docker/Dockerfile.gpu . -由于Docker是基于容器的轻量化虚拟方案,所以在CPU的运算性能上并不会有严重的影响。 -而GPU的驱动和设备全部映射到了容器内,所以GPU在运算性能上也不会有严重的影响。 +以交互容器方式运行纯CPU的镜像: -但是如果使用了高性能的网卡,例如RDMA网卡(RoCE 40GbE 或者 IB 56GbE),或者高性能的 -以太网卡 (10GbE)。推荐使用将本地网卡,即 "--net=host" 来进行训练。而不使用docker -的网桥来进行网络通信。 +.. code-block:: bash -远程访问问题和二次开发 -++++++++++++++++++++++ + docker run -it --rm paddledev/paddle:cpu-latest /bin/bash -由于PaddlePaddle的Docker镜像并不包含任何预定义的运行命令。所以如果想要在后台启用ssh -远程访问,则需要进行一定的二次开发,将ssh装入系统内并开启远程访问。二次开发可以 -使用Dockerfile构建一个全新的docker image。需要参考 -`Dockerfile的文档 `_ 和 -`Dockerfile的最佳实践 `_ -两个文档。 +或者,可以以后台进程方式运行容器: -简单的含有ssh的Dockerfile如下: +.. code-block:: bash -.. code-block:: bash + docker run -d -p 2202:22 paddledev/paddle:cpu-latest - FROM paddledev/paddle:cpu-latest +然后用密码 :code:`root` SSH进入容器: - MAINTAINER PaddlePaddle dev team +.. code-block:: bash - RUN apt-get update - RUN apt-get install -y openssh-server - RUN mkdir /var/run/sshd - RUN echo 'root:root' | chpasswd + ssh -p 2202 root@localhost - RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config - RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config +SSH方式的一个优点是我们可以从多个终端进入容器。比如,一个终端运行vi,另一个终端运行Python。另一个好处是我们可以把PaddlePaddle容器运行在远程服务器上,并在笔记本上通过SSH与其连接。 - EXPOSE 22 - CMD ["/usr/sbin/sshd", "-D"] +以上方法在GPU镜像里也能用-只是请不要忘记按装CUDA驱动,以及告诉Docker: +.. code-block:: bash -使用该Dockerfile构建出镜像,然后运行这个container即可。相关命令为\: + 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:gpu-latest -.. code-block:: bash - # cd到含有Dockerfile的路径中 - $ docker build . -t paddle_ssh - # 运行这个container,将宿主机的8022端口映射到container的22端口上 - $ docker run -d -p 8022:22 --name paddle_ssh_machine paddle_ssh +非AVX镜像 +--------- -执行如下命令即可以关闭这个container,并且删除container中的数据\: +纯CPU镜像以及GPU镜像都会用到AVX指令集,但是2008年之前生产的旧电脑不支持AVX。以下指令能检查Linux电脑是否支持AVX: -.. code-block:: bash - - # 关闭container - $ docker stop paddle_ssh_machine - # 删除container - $ docker rm paddle_ssh_machine -如果想要在外部机器访问这个container,即可以使用ssh访问宿主机的8022端口。用户名为 -root,密码也是root。命令为\: +.. code-block:: bash -.. code-block:: bash + if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi - $ ssh -p 8022 root@YOUR_HOST_MACHINE +如果输出是No,我们就需要手动编译一个非AVX版本的镜像: -至此,您就可以远程的使用PaddlePaddle啦。 +.. code-block:: bash + + cd ~ + git clone https://github.com/PaddlePaddle/Paddle.git + cd Paddle + docker build --build-arg WITH_AVX=OFF -t paddle:cpu-noavx -f paddle/scripts/docker/Dockerfile . + docker build --build-arg WITH_AVX=OFF -t paddle:gpu-noavx -f paddle/scripts/docker/Dockerfile.gpu . + + +文档 +---- + +Paddle的Docker镜像带有一个通过 `woboq code browser +`_ 生成的HTML版本的C++源代码,便于用户浏览C++源码。 + +只要在Docker里启动PaddlePaddle的时候给它一个名字,就可以再运行另一个Nginx Docker镜像来服务HTML代码: + +.. code-block:: bash + + docker run -d --name paddle-cpu-doc paddle:cpu + docker run -d --volumes-from paddle-cpu-doc -p 8088:80 nginx + +接着我们就能够打开浏览器在 http://localhost:8088/paddle/ 浏览代码。 From b48ebd16c833ab5d6036c4ba9e6f897667ba5f33 Mon Sep 17 00:00:00 2001 From: liaogang Date: Thu, 9 Mar 2017 09:51:10 +0800 Subject: [PATCH 177/186] Fix git submodule in docker --- paddle/scripts/docker/Dockerfile | 4 ++-- paddle/scripts/docker/Dockerfile.gpu | 4 ++-- paddle/scripts/docker/entrypoint | 8 ++------ 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile index fa4aee4f8a..6435923c89 100644 --- a/paddle/scripts/docker/Dockerfile +++ b/paddle/scripts/docker/Dockerfile @@ -34,8 +34,6 @@ RUN apt-get update && \ # git credential to skip password typing RUN git config --global credential.helper store -# fetch PaddlePaddle book -RUN git submodule update --init --recursive # Fix locales to en_US.UTF-8 RUN localedef -i en_US -f UTF-8 en_US.UTF-8 @@ -52,7 +50,9 @@ RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \ cd .. && rm -rf cmake-3.4.1 COPY . /paddle/ +RUN cd /paddle/ && git submodule update --init --recursive RUN /paddle/paddle/scripts/docker/build.sh + VOLUME ["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"] # Configure OpenSSH server. c.f. https://docs.docker.com/engine/examples/running_ssh_service diff --git a/paddle/scripts/docker/Dockerfile.gpu b/paddle/scripts/docker/Dockerfile.gpu index 07b32dda75..06e53a0ef3 100644 --- a/paddle/scripts/docker/Dockerfile.gpu +++ b/paddle/scripts/docker/Dockerfile.gpu @@ -34,8 +34,6 @@ RUN apt-get update && \ # git credential to skip password typing RUN git config --global credential.helper store -# fetch PaddlePaddle book -RUN git submodule update --init --recursive # Fix locales to en_US.UTF-8 RUN localedef -i en_US -f UTF-8 en_US.UTF-8 @@ -52,7 +50,9 @@ RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \ cd .. && rm -rf cmake-3.4.1 COPY . /paddle/ +RUN cd /paddle/ && git submodule update --init --recursive RUN /paddle/paddle/scripts/docker/build.sh + VOLUME ["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"] # Configure OpenSSH server. c.f. https://docs.docker.com/engine/examples/running_ssh_service diff --git a/paddle/scripts/docker/entrypoint b/paddle/scripts/docker/entrypoint index cd119917f9..bc194bd909 100755 --- a/paddle/scripts/docker/entrypoint +++ b/paddle/scripts/docker/entrypoint @@ -1,8 +1,4 @@ #!/bin/bash -LOG=/var/log/all -touch $LOG - -/usr/sbin/sshd -D >> $LOG & -jupyter notebook --ip=0.0.0.0 /paddle/book/ >> $LOG & -tail -f $LOG +/usr/sbin/sshd -D & +jupyter notebook --ip=0.0.0.0 /paddle/book/ From 0f8cc82c8114e93ff4eefcc186aaab8be094d5f5 Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Thu, 9 Mar 2017 14:42:07 +0800 Subject: [PATCH 178/186] Fix ccache refernece. --- cmake/ccache.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmake/ccache.cmake b/cmake/ccache.cmake index 968d41801d..900f59d4cb 100644 --- a/cmake/ccache.cmake +++ b/cmake/ccache.cmake @@ -1,9 +1,9 @@ # Use ccache if found ccache program -find_program(CCACHE_FOUND ccache) +find_program(CCACHE_PATH ccache) -if(CCACHE_FOUND) +if(CCACHE_PATH) message(STATUS "Ccache is founded, use ccache to speed up compile.") - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) -endif(CCACHE_FOUND) \ No newline at end of file + set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_PATH}) + set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_PATH}) +endif(CCACHE_PATH) From 2affe815a159d9b4ef44f0eb73003fcca8ac7f0a Mon Sep 17 00:00:00 2001 From: Yu Yang Date: Thu, 9 Mar 2017 15:02:40 +0800 Subject: [PATCH 179/186] Fix font issue in doc --- doc_theme/static/css/override.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc_theme/static/css/override.css b/doc_theme/static/css/override.css index 438a87848a..09ecff688b 100644 --- a/doc_theme/static/css/override.css +++ b/doc_theme/static/css/override.css @@ -1,3 +1,6 @@ +* { + font-family:"Roboto","Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; +} body { padding-top: 80px; background-image: none !important; From 06c2437b3aa84de9fc31790cf15057ce1a44edaa Mon Sep 17 00:00:00 2001 From: liaogang Date: Thu, 9 Mar 2017 15:47:44 +0800 Subject: [PATCH 180/186] Specify book develop branch --- .gitmodules | 1 + book | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index c614602cb8..832698b8bf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule "book"] path = book url = https://github.com/PaddlePaddle/book.git + branch = develop \ No newline at end of file diff --git a/book b/book index 22ed2a01ae..6e3875eb62 160000 --- a/book +++ b/book @@ -1 +1 @@ -Subproject commit 22ed2a01aee872f055b5f5f212428f481cefc10d +Subproject commit 6e3875eb62533de1f2c1088a477719eb57b9732c From 70f380753e14ac7b46607d0ad6aa0e48064cce56 Mon Sep 17 00:00:00 2001 From: Luo Tao Date: Thu, 9 Mar 2017 16:30:01 +0800 Subject: [PATCH 181/186] modify api doc catalog --- doc/api/index_cn.rst | 23 +- doc/api/index_en.rst | 19 +- doc/api/v2/config/activation.rst | 101 +++++++ doc/api/v2/config/attr.rst | 6 + doc/api/v2/config/layer.rst | 487 +++++++++++++++++++++++++++++++ doc/api/v2/config/networks.rst | 117 ++++++++ doc/api/v2/config/optimizer.rst | 47 +++ doc/api/v2/config/pooling.rst | 46 +++ doc/api/v2/data.rst | 43 ++- doc/api/v2/model_configs.rst | 58 +--- doc/api/v2/run_logic.rst | 27 +- 11 files changed, 859 insertions(+), 115 deletions(-) create mode 100644 doc/api/v2/config/activation.rst create mode 100644 doc/api/v2/config/attr.rst create mode 100644 doc/api/v2/config/layer.rst create mode 100644 doc/api/v2/config/networks.rst create mode 100644 doc/api/v2/config/optimizer.rst create mode 100644 doc/api/v2/config/pooling.rst diff --git a/doc/api/index_cn.rst b/doc/api/index_cn.rst index fca981221e..9be0b370ee 100644 --- a/doc/api/index_cn.rst +++ b/doc/api/index_cn.rst @@ -1,26 +1,9 @@ API === -模型配置 API ------------- - .. toctree:: :maxdepth: 1 - v2/model_configs.rst - -数据 API --------- - -.. toctree:: - :maxdepth: 1 - - v2/data.rst - -训练 API --------- - -.. toctree:: - :maxdepth: 1 - - v2/run_logic.rst \ No newline at end of file + 模型配置 + 数据访问 + 训练与应用 diff --git a/doc/api/index_en.rst b/doc/api/index_en.rst index f0ad0fb2ae..25c1dd00b9 100644 --- a/doc/api/index_en.rst +++ b/doc/api/index_en.rst @@ -1,26 +1,9 @@ API === -Model Config API ----------------- - .. toctree:: :maxdepth: 1 v2/model_configs.rst - -Data API --------- - -.. toctree:: - :maxdepth: 1 - v2/data.rst - -Train API ---------- - -.. toctree:: - :maxdepth: 1 - - v2/run_logic.rst \ No newline at end of file + v2/run_logic.rst diff --git a/doc/api/v2/config/activation.rst b/doc/api/v2/config/activation.rst new file mode 100644 index 0000000000..eca3ce03bc --- /dev/null +++ b/doc/api/v2/config/activation.rst @@ -0,0 +1,101 @@ +=========== +Activation +=========== + +Abs +=== + +.. automodule:: paddle.v2.activation + :members: Abs + :noindex: + +Exp +=== + +.. automodule:: paddle.v2.activation + :members: Exp + :noindex: + +Identity +======== + +.. automodule:: paddle.v2.activation + :members: Identity + :noindex: + +Linear +====== + +.. automodule:: paddle.v2.activation + :members: Linear + :noindex: + +Log +=== + +.. automodule:: paddle.v2.activation + :members: Log + :noindex: + +Square +====== + +.. automodule:: paddle.v2.activation + :members: Square + :noindex: + +Sigmoid +======= + +.. automodule:: paddle.v2.activation + :members: Sigmoid + :noindex: + +Softmax +======= + +.. automodule:: paddle.v2.activation + :members: Softmax + :noindex: + +SequenceSoftmax +=============== + +.. automodule:: paddle.v2.activation + :members: SequenceSoftmax + :noindex: + +Relu +==== + +.. automodule:: paddle.v2.activation + :members: Relu + :noindex: + +BRelu +===== + +.. automodule:: paddle.v2.activation + :members: BRelu + :noindex: + +SoftRelu +======== + +.. automodule:: paddle.v2.activation + :members: SoftRelu + :noindex: + +Tanh +==== + +.. automodule:: paddle.v2.activation + :members: Tanh + :noindex: + +STanh +===== + +.. automodule:: paddle.v2.activation + :members: STanh + :noindex: diff --git a/doc/api/v2/config/attr.rst b/doc/api/v2/config/attr.rst new file mode 100644 index 0000000000..a93f41b867 --- /dev/null +++ b/doc/api/v2/config/attr.rst @@ -0,0 +1,6 @@ +Parameter Attribute +=================== + +.. automodule:: paddle.v2.attr + :members: + :noindex: diff --git a/doc/api/v2/config/layer.rst b/doc/api/v2/config/layer.rst new file mode 100644 index 0000000000..db33a20487 --- /dev/null +++ b/doc/api/v2/config/layer.rst @@ -0,0 +1,487 @@ +.. _api_v2.layer: + +====== +Layers +====== + +Data layer +=========== + +.. _api_v2.layer_data: + +data +---- +.. automodule:: paddle.v2.layer + :members: data + :noindex: + +Fully Connected Layers +====================== + +.. _api_v2.layer_fc: + +fc +-- +.. automodule:: paddle.v2.layer + :members: fc + :noindex: + +selective_fc +------------ +.. automodule:: paddle.v2.layer + :members: selective_fc + :noindex: + +Conv Layers +=========== + +conv_operator +------------- +.. automodule:: paddle.v2.layer + :members: conv_operator + :noindex: + +conv_projection +--------------- +.. automodule:: paddle.v2.layer + :members: conv_projection + :noindex: + +conv_shift +---------- +.. automodule:: paddle.v2.layer + :members: conv_shift + :noindex: + +img_conv +-------- +.. automodule:: paddle.v2.layer + :members: img_conv + :noindex: + +.. _api_v2.layer_context_projection: + +context_projection +------------------ +.. automodule:: paddle.v2.layer + :members: context_projection + :noindex: + +Image Pooling Layer +=================== + +img_pool +-------- +.. automodule:: paddle.v2.layer + :members: img_pool + :noindex: + +spp +--- +.. automodule:: paddle.v2.layer + :members: spp + :noindex: + +maxout +------ +.. automodule:: paddle.v2.layer + :members: maxout + :noindex: + +Norm Layer +========== + +img_cmrnorm +----------- +.. automodule:: paddle.v2.layer + :members: img_cmrnorm + :noindex: + +batch_norm +---------- +.. automodule:: paddle.v2.layer + :members: batch_norm + :noindex: + +sum_to_one_norm +--------------- +.. automodule:: paddle.v2.layer + :members: sum_to_one_norm + :noindex: + +Recurrent Layers +================ + +recurrent +--------- +.. automodule:: paddle.v2.layer + :members: recurrent + :noindex: + +lstmemory +--------- +.. automodule:: paddle.v2.layer + :members: lstmemory + :noindex: + +grumemory +--------- +.. automodule:: paddle.v2.layer + :members: grumemory + :noindex: + +Recurrent Layer Group +===================== + +memory +------ +.. automodule:: paddle.v2.layer + :members: memory + :noindex: + +recurrent_group +--------------- +.. automodule:: paddle.v2.layer + :members: recurrent_group + :noindex: + +lstm_step +--------- +.. automodule:: paddle.v2.layer + :members: lstm_step + :noindex: + +gru_step +-------- +.. automodule:: paddle.v2.layer + :members: gru_step + :noindex: + +beam_search +------------ +.. automodule:: paddle.v2.layer + :members: beam_search + :noindex: + +get_output +---------- +.. automodule:: paddle.v2.layer + :members: get_output + :noindex: + +Mixed Layer +=========== + +.. _api_v2.layer_mixed: + +mixed +----- +.. automodule:: paddle.v2.layer + :members: mixed + :noindex: + +.. _api_v2.layer_embedding: + +embedding +--------- +.. automodule:: paddle.v2.layer + :members: embedding + :noindex: + +scaling_projection +------------------ +.. automodule:: paddle.v2.layer + :members: scaling_projection + :noindex: + +dotmul_projection +----------------- +.. automodule:: paddle.v2.layer + :members: dotmul_projection + :noindex: + +dotmul_operator +--------------- +.. automodule:: paddle.v2.layer + :members: dotmul_operator + :noindex: + +full_matrix_projection +---------------------- +.. automodule:: paddle.v2.layer + :members: full_matrix_projection + :noindex: + +identity_projection +------------------- +.. automodule:: paddle.v2.layer + :members: identity_projection + :noindex: + + +table_projection +---------------- +.. automodule:: paddle.v2.layer + :members: table_projection + :noindex: + +trans_full_matrix_projection +---------------------------- +.. automodule:: paddle.v2.layer + :members: trans_full_matrix_projection + :noindex: + +Aggregate Layers +================ + +.. _api_v2.layer_pooling: + +pooling +------- +.. automodule:: paddle.v2.layer + :members: pooling + :noindex: + +.. _api_v2.layer_last_seq: + +last_seq +-------- +.. automodule:: paddle.v2.layer + :members: last_seq + :noindex: + +.. _api_v2.layer_first_seq: + +first_seq +--------- +.. automodule:: paddle.v2.layer + :members: first_seq + :noindex: + +concat +------ +.. automodule:: paddle.v2.layer + :members: concat + :noindex: + +seq_concat +---------- +.. automodule:: paddle.v2.layer + :members: seq_concat + :noindex: + +Reshaping Layers +================ + +block_expand +------------ +.. automodule:: paddle.v2.layer + :members: block_expand + :noindex: + +.. _api_v2.layer_expand: + +expand +------ +.. automodule:: paddle.v2.layer + :members: expand + :noindex: + +repeat +------ +.. automodule:: paddle.v2.layer + :members: repeat + :noindex: + +rotate +------ +.. automodule:: paddle.v2.layer + :members: rotate + :noindex: + +seq_reshape +----------- +.. automodule:: paddle.v2.layer + :members: seq_reshape + :noindex: + +Math Layers +=========== + +addto +----- +.. automodule:: paddle.v2.layer + :members: addto + :noindex: + +linear_comb +----------- +.. automodule:: paddle.v2.layer + :members: linear_comb + :noindex: + +interpolation +------------- +.. automodule:: paddle.v2.layer + :members: interpolation + :noindex: + +bilinear_interp +--------------- +.. automodule:: paddle.v2.layer + :members: bilinear_interp + :noindex: + +power +----- +.. automodule:: paddle.v2.layer + :members: power + :noindex: + +scaling +------- +.. automodule:: paddle.v2.layer + :members: scaling + :noindex: + +slope_intercept +--------------- +.. automodule:: paddle.v2.layer + :members: slope_intercept + :noindex: + +tensor +------ +.. automodule:: paddle.v2.layer + :members: tensor + :noindex: + +.. _api_v2.layer_cos_sim: + +cos_sim +------- +.. automodule:: paddle.v2.layer + :members: cos_sim + :noindex: + +trans +----- +.. automodule:: paddle.v2.layer + :members: trans + :noindex: + +Sampling Layers +=============== + +maxid +----- +.. automodule:: paddle.v2.layer + :members: maxid + :noindex: + +sampling_id +----------- +.. automodule:: paddle.v2.layer + :members: sampling_id + :noindex: + +Slicing and Joining Layers +========================== + +pad +---- +.. automodule:: paddle.v2.layer + :members: pad + :noindex: + +.. _api_v2.layer_costs: + +Cost Layers +=========== + +cross_entropy_cost +------------------ +.. automodule:: paddle.v2.layer + :members: cross_entropy_cost + :noindex: + +cross_entropy_with_selfnorm_cost +-------------------------------- +.. automodule:: paddle.v2.layer + :members: cross_entropy_with_selfnorm_cost + :noindex: + +multi_binary_label_cross_entropy_cost +------------------------------------- +.. automodule:: paddle.v2.layer + :members: multi_binary_label_cross_entropy_cost + :noindex: + +huber_cost +---------- +.. automodule:: paddle.v2.layer + :members: huber_cost + :noindex: + +lambda_cost +----------- +.. automodule:: paddle.v2.layer + :members: lambda_cost + :noindex: + +rank_cost +--------- +.. automodule:: paddle.v2.layer + :members: rank_cost + :noindex: + +sum_cost +--------- +.. automodule:: paddle.v2.layer + :members: sum_cost + :noindex: + +crf +--- +.. automodule:: paddle.v2.layer + :members: crf + :noindex: + +crf_decoding +------------ +.. automodule:: paddle.v2.layer + :members: crf_decoding + :noindex: + +ctc +--- +.. automodule:: paddle.v2.layer + :members: ctc + :noindex: + +warp_ctc +-------- +.. automodule:: paddle.v2.layer + :members: warp_ctc + :noindex: + +nce +--- +.. automodule:: paddle.v2.layer + :members: nce + :noindex: + +hsigmoid +--------- +.. automodule:: paddle.v2.layer + :members: hsigmoid + :noindex: + +Check Layer +============ + +eos +--- +.. automodule:: paddle.v2.layer + :members: eos + :noindex: diff --git a/doc/api/v2/config/networks.rst b/doc/api/v2/config/networks.rst new file mode 100644 index 0000000000..6f209bc95b --- /dev/null +++ b/doc/api/v2/config/networks.rst @@ -0,0 +1,117 @@ +======== +Networks +======== + +The v2.networks module contains pieces of neural network that combine multiple layers. + +NLP +=== + +sequence_conv_pool +------------------ +.. automodule:: paddle.v2.networks + :members: sequence_conv_pool + :noindex: + +.. _api_trainer_config_helpers_network_text_conv_pool: + +text_conv_pool +-------------- +.. automodule:: paddle.v2.networks + :members: text_conv_pool + :noindex: + +Images +====== + +img_conv_bn_pool +---------------- +.. automodule:: paddle.v2.networks + :members: img_conv_bn_pool + :noindex: + +img_conv_group +-------------- +.. automodule:: paddle.v2.networks + :members: img_conv_group + :noindex: + +.. _api_trainer_config_helpers_network_simple_img_conv_pool: + +simple_img_conv_pool +-------------------- +.. automodule:: paddle.v2.networks + :members: simple_img_conv_pool + :noindex: + +vgg_16_network +--------------- +.. automodule:: paddle.v2.networks + :members: vgg_16_network + :noindex: + +Recurrent +========= + +LSTM +---- + +lstmemory_unit +`````````````` +.. automodule:: paddle.v2.networks + :members: lstmemory_unit + :noindex: + +lstmemory_group +``````````````` +.. automodule:: paddle.v2.networks + :members: lstmemory_group + :noindex: + +simple_lstm +``````````` +.. automodule:: paddle.v2.networks + :members: simple_lstm + :noindex: + +bidirectional_lstm +`````````````````` +.. automodule:: paddle.v2.networks + :members: bidirectional_lstm + :noindex: + +GRU +--- + +gru_unit +```````` +.. automodule:: paddle.v2.networks + :members: gru_unit + :noindex: + +gru_group +````````` +.. automodule:: paddle.v2.networks + :members: gru_group + :noindex: + +simple_gru +`````````` +.. automodule:: paddle.v2.networks + :members: simple_gru + :noindex: + +simple_attention +---------------- +.. automodule:: paddle.v2.networks + :members: simple_attention + :noindex: + +Miscs +===== + +dropout_layer +-------------- +.. automodule:: paddle.v2.networks + :members: dropout_layer + :noindex: diff --git a/doc/api/v2/config/optimizer.rst b/doc/api/v2/config/optimizer.rst new file mode 100644 index 0000000000..ec6ba0aa46 --- /dev/null +++ b/doc/api/v2/config/optimizer.rst @@ -0,0 +1,47 @@ +.. _api_v2.optimizer: + +========== +Optimizer +========== + +Momentum +======== +.. automodule:: paddle.v2.optimizer + :members: Momentum + :noindex: + +Adam +==== +.. automodule:: paddle.v2.optimizer + :members: Adam + :noindex: + +Adamax +====== +.. automodule:: paddle.v2.optimizer + :members: Adamax + :noindex: + +AdaGrad +======= +.. automodule:: paddle.v2.optimizer + :members: AdaGrad + :noindex: + +DecayedAdaGrad +============== +.. automodule:: paddle.v2.optimizer + :members: DecayedAdaGrad + :noindex: + +AdaDelta +======== +.. automodule:: paddle.v2.optimizer + :members: AdaDelta + :noindex: + +RMSProp +======= +.. automodule:: paddle.v2.optimizer + :members: RMSProp + :noindex: diff --git a/doc/api/v2/config/pooling.rst b/doc/api/v2/config/pooling.rst new file mode 100644 index 0000000000..d26b365c92 --- /dev/null +++ b/doc/api/v2/config/pooling.rst @@ -0,0 +1,46 @@ +======= +Pooling +======= + +BasePool +======== +.. automodule:: paddle.v2.pooling + :members: BasePool + :noindex: + +Avg +=== +.. automodule:: paddle.v2.pooling + :members: Avg + :noindex: + +Max +=== +.. automodule:: paddle.v2.pooling + :members: Max + :noindex: + +Sum +=== +.. automodule:: paddle.v2.pooling + :members: Sum + :noindex: + +SquareRootN +=========== +.. automodule:: paddle.v2.pooling + :members: SquareRootN + :noindex: + +CudnnAvg +======== +.. automodule:: paddle.v2.pooling + :members: CudnnAvg + :noindex: + +CudnnMax +======== +.. automodule:: paddle.v2.pooling + :members: CudnnMax + :noindex: + diff --git a/doc/api/v2/data.rst b/doc/api/v2/data.rst index 1c0a202a8c..b042320bc2 100644 --- a/doc/api/v2/data.rst +++ b/doc/api/v2/data.rst @@ -1,52 +1,53 @@ -================ -Data Related API -================ +======== +Datasets +======== -######### 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 @@ -54,40 +55,54 @@ cifar .. automodule:: paddle.v2.dataset.cifar :members: + :noindex: conll05 +++++++ .. automodule:: paddle.v2.dataset.conll05 :members: + :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: sentiment +++++++++ .. automodule:: paddle.v2.dataset.sentiment :members: + :noindex: uci_housing +++++++++++ .. automodule:: paddle.v2.dataset.uci_housing :members: + :noindex: + +wmt14 ++++++ + +.. automodule:: paddle.v2.dataset.uci_housing + :members: + :noindex: diff --git a/doc/api/v2/model_configs.rst b/doc/api/v2/model_configs.rst index e9cd3d5bf7..a5fae7e29e 100644 --- a/doc/api/v2/model_configs.rst +++ b/doc/api/v2/model_configs.rst @@ -1,46 +1,12 @@ -######################### -Configuration Related API -######################### - -====== -Layers -====== - -.. automodule:: paddle.v2.layer - :members: - - -========== -Attributes -========== - -.. automodule:: paddle.v2.attr - :members: - -=========== -Activations -=========== - -.. automodule:: paddle.v2.activation - :members: - -======== -Poolings -======== - -.. automodule:: paddle.v2.pooling - :members: - -======== -Networks -======== - -.. automodule:: paddle.v2.networks - :members: - -========== -Optimizers -========== - -.. automodule:: paddle.v2.optimizer - :members: +Model Configuration +=================== + +.. toctree:: + :maxdepth: 1 + + config/activation.rst + config/layer.rst + config/optimizer.rst + config/pooling.rst + config/networks.rst + config/attr.rst diff --git a/doc/api/v2/run_logic.rst b/doc/api/v2/run_logic.rst index 0f807873ff..94921e1a7b 100644 --- a/doc/api/v2/run_logic.rst +++ b/doc/api/v2/run_logic.rst @@ -1,34 +1,27 @@ -########### -Trainer API -########### +====================== +Training and Inference +====================== - -========== Parameters ========== .. automodule:: paddle.v2.parameters - :members: + :noindex: - -======= Trainer ======= -.. automodule:: paddle.v2.trainer - :members: +.. automodule:: paddle.v2.trainer + :noindex: - -===== Event ===== -.. automodule:: paddle.v2.event - :members: +.. automodule:: paddle.v2.event + :noindex: - -========= Inference ========= -.. autofunction:: paddle.v2.infer \ No newline at end of file +.. autofunction:: paddle.v2.infer + :noindex: From 58d5be1ab663de2cc53acae4e518d0e233f3eaaa Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Thu, 9 Mar 2017 09:09:30 -0800 Subject: [PATCH 182/186] update docker tag, add translate for jupyter notebook --- .../build_and_install/docker_install_cn.rst | 32 +++++++++++--- .../build_and_install/docker_install_en.rst | 42 +++++++++---------- 2 files changed, 47 insertions(+), 27 deletions(-) diff --git a/doc/getstarted/build_and_install/docker_install_cn.rst b/doc/getstarted/build_and_install/docker_install_cn.rst index 78f518cfe4..cf7dddd073 100644 --- a/doc/getstarted/build_and_install/docker_install_cn.rst +++ b/doc/getstarted/build_and_install/docker_install_cn.rst @@ -56,6 +56,26 @@ PaddlePaddle目前唯一官方支持的运行的方式是Docker容器。因为Do cd /paddle/build ctest +4. 在Docker容器中运行PaddlePaddle书籍 + + Jupyter Notebook是一个开源的web程序,大家可以通过它制作和分享带有代码、公式、图表、文字的交互式文档。用户可以通过网页浏览文档。 + + PaddlePaddle书籍是为用户和开发者制作的一个交互式的Jupyter Nodebook。 + 如果您想要更深入了解deep learning,PaddlePaddle书籍一定是您最好的选择。 + + 当您进入容器内之后,只用运行以下命令: + + .. code-block:: bash + + jupyter notebook + + 然后在浏览器中输入以下网址: + + .. code-block:: text + + http://localhost:8888/ + + 就这么简单,享受您的旅程! 纯CPU和GPU的docker镜像 ---------------------- @@ -64,20 +84,20 @@ PaddlePaddle目前唯一官方支持的运行的方式是Docker容器。因为Do .. code-block:: bash - docker build -t paddle:cpu -f paddle/scripts/docker/Dockerfile . - docker build -t paddle:gpu -f paddle/scripts/docker/Dockerfile.gpu . + docker build -t paddle:cpu -f paddle/scripts/docker/Dockerfile --build-arg BUILD_AND_INSTALL=ON . + docker build -t paddle:gpu -f paddle/scripts/docker/Dockerfile.gpu --build-arg BUILD_AND_INSTALL=ON . 以交互容器方式运行纯CPU的镜像: .. code-block:: bash - docker run -it --rm paddledev/paddle:cpu-latest /bin/bash + docker run -it --rm paddledev/paddle:0.10.0rc1-cpu /bin/bash 或者,可以以后台进程方式运行容器: .. code-block:: bash - docker run -d -p 2202:22 paddledev/paddle:cpu-latest + docker run -d -p 2202:22 paddledev/paddle:0.10.0rc1-cpu 然后用密码 :code:`root` SSH进入容器: @@ -94,7 +114,7 @@ SSH方式的一个优点是我们可以从多个终端进入容器。比如, 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:gpu-latest + docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:0.10.0rc1-gpu 非AVX镜像 @@ -128,7 +148,7 @@ Paddle的Docker镜像带有一个通过 `woboq code browser .. code-block:: bash - docker run -d --name paddle-cpu-doc paddle:cpu + docker run -d --name paddle-cpu-doc paddle:0.10.0rc1-cpu docker run -d --volumes-from paddle-cpu-doc -p 8088:80 nginx 接着我们就能够打开浏览器在 http://localhost:8088/paddle/ 浏览代码。 diff --git a/doc/getstarted/build_and_install/docker_install_en.rst b/doc/getstarted/build_and_install/docker_install_en.rst index a92201c618..a4f62b2835 100644 --- a/doc/getstarted/build_and_install/docker_install_en.rst +++ b/doc/getstarted/build_and_install/docker_install_en.rst @@ -84,27 +84,27 @@ Windows -- in a consistent way. 4. Run PaddlePaddle Book under Docker Container - 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. + 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 - dig deeper into deep learning, PaddlePaddle Book definitely is your best choice. + PaddlePaddle Book is an interactive Jupyter Notebook for users and developers. + We already exposed port 8888 for this book. If you want to + dig deeper into deep learning, PaddlePaddle Book definitely is your best choice. - Once you are inside the container, simply issue the command: + Once you are inside the container, simply issue the command: - .. code-block:: bash - - jupyter notebook - - Then, you would back and paste the address into the local browser: + .. code-block:: bash + + jupyter notebook - .. code-block:: text + Then, you would back and paste the address into the local browser: + + .. code-block:: text - http://localhost:8888/ + http://localhost:8888/ - That's all. Enjoy your journey! + That's all. Enjoy your journey! CPU-only and GPU Images ----------------------- @@ -116,21 +116,21 @@ automatically runs the following commands: .. code-block:: bash - docker build -t paddle:cpu -f paddle/scripts/docker/Dockerfile . - docker build -t paddle:gpu -f paddle/scripts/docker/Dockerfile.gpu . + docker build -t paddle:cpu -f paddle/scripts/docker/Dockerfile --build-arg BUILD_AND_INSTALL=ON . + docker build -t paddle:gpu -f paddle/scripts/docker/Dockerfile.gpu --build-arg BUILD_AND_INSTALL=ON . To run the CPU-only image as an interactive container: .. code-block:: bash - docker run -it --rm paddledev/paddle:cpu-latest /bin/bash + docker run -it --rm paddledev/paddle:0.10.0rc1-cpu /bin/bash or, we can run it as a daemon container .. code-block:: bash - docker run -d -p 2202:22 paddledev/paddle:cpu-latest + docker run -d -p 2202:22 paddledev/paddle:0.10.0rc1-cpu and SSH to this container using password :code:`root`: @@ -152,7 +152,7 @@ to install CUDA driver and let Docker knows about it: 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:gpu-latest + docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:0.10.0rc1-gpu Non-AVX Images @@ -194,7 +194,7 @@ container: .. code-block:: bash - docker run -d --name paddle-cpu-doc paddle:cpu + docker run -d --name paddle-cpu-doc paddle:0.10.0rc1-cpu docker run -d --volumes-from paddle-cpu-doc -p 8088:80 nginx From 00f88d44495f9529bdf77b06cd2cef33d64cb63b Mon Sep 17 00:00:00 2001 From: Helin Wang Date: Thu, 9 Mar 2017 10:31:33 -0800 Subject: [PATCH 183/186] reduce docker image size by removing /build in or docker build --- paddle/scripts/docker/Dockerfile | 1 + paddle/scripts/docker/Dockerfile.gpu | 1 + paddle/scripts/docker/build.sh | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile index 6435923c89..48af9e5b5f 100644 --- a/paddle/scripts/docker/Dockerfile +++ b/paddle/scripts/docker/Dockerfile @@ -18,6 +18,7 @@ ENV WITH_GPU=OFF ENV WITH_AVX=${WITH_AVX:-ON} ENV WITH_DOC=${WITH_DOC:-OFF} ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF} +ENV DOCKER_BUILD=TRUE ENV HOME /root diff --git a/paddle/scripts/docker/Dockerfile.gpu b/paddle/scripts/docker/Dockerfile.gpu index 06e53a0ef3..a687d490a3 100644 --- a/paddle/scripts/docker/Dockerfile.gpu +++ b/paddle/scripts/docker/Dockerfile.gpu @@ -18,6 +18,7 @@ ENV WITH_GPU=ON ENV WITH_AVX=${WITH_AVX:-ON} ENV WITH_DOC=${WITH_DOC:-OFF} ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF} +ENV DOCKER_BUILD=TRUE ENV HOME /root diff --git a/paddle/scripts/docker/build.sh b/paddle/scripts/docker/build.sh index b2e6416c3d..668b6e6b84 100755 --- a/paddle/scripts/docker/build.sh +++ b/paddle/scripts/docker/build.sh @@ -57,6 +57,12 @@ if [[ ${BUILD_AND_INSTALL:-OFF} == 'ON' ]]; then pip install /usr/local/opt/paddle/share/wheels/py_paddle*linux*.whl pip install /usr/local/opt/paddle/share/wheels/paddle*.whl paddle version + + if [[ ${DOCKER_BUILD:-FALSE} == 'TRUE' ]]; then + # reduce docker image size + rm -rf /paddle/build + rm -rf /usr/local/opt/paddle/share/wheels/ + fi fi trap : 0 From 4375a64ea1bfb9a47295d038f5eac14a7f9f195b Mon Sep 17 00:00:00 2001 From: Tao Luo Date: Mon, 13 Mar 2017 17:49:34 +0800 Subject: [PATCH 184/186] fix bug to pass travis --- python/paddle/trainer/config_parser.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/python/paddle/trainer/config_parser.py b/python/paddle/trainer/config_parser.py index 04ea135c1c..4d15210fc3 100644 --- a/python/paddle/trainer/config_parser.py +++ b/python/paddle/trainer/config_parser.py @@ -2412,12 +2412,7 @@ class SequenceFirstInstanceLayer(SequenceLastInstanceLayer): bias=False, **xargs): super(SequenceFirstInstanceLayer, self).__init__( - name, - inputs=inputs, - active_type=active_type, - device=device, - bias=bias, - **xargs) + name, inputs=inputs, active_type=active_type, bias=bias, **xargs) self.config.trans_type = trans_type self.config.select_first = True From bd41a8c482c6c1df03d118a6c7cb174a44b5d5ed Mon Sep 17 00:00:00 2001 From: liaogang Date: Mon, 13 Mar 2017 18:06:30 +0800 Subject: [PATCH 185/186] Fix cmake find protobuf problem --- cmake/external/protobuf.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmake/external/protobuf.cmake b/cmake/external/protobuf.cmake index 1575d8e9f5..446a7532c5 100644 --- a/cmake/external/protobuf.cmake +++ b/cmake/external/protobuf.cmake @@ -16,6 +16,14 @@ INCLUDE(ExternalProject) FIND_PACKAGE(Protobuf 3.1) +IF(PROTOBUF_FOUND) + EXEC_PROGRAM(${PROTOBUF_PROTOC_EXECUTABLE} ARGS --version OUTPUT_VARIABLE PROTOBUF_VERSION) + STRING(REGEX MATCH "[0-9]+.[0-9]+" PROTOBUF_VERSION "${PROTOBUF_VERSION}") + IF (${PROTOBUF_VERSION} VERSION_LESS "3.1.0") + SET(PROTOBUF_FOUND OFF) + ENDIF() +ENDIF(PROTOBUF_FOUND) + IF(NOT PROTOBUF_FOUND) SET(PROTOBUF_SOURCES_DIR ${THIRD_PARTY_PATH}/protobuf) SET(PROTOBUF_INSTALL_DIR ${THIRD_PARTY_PATH}/install/protobuf) From e80a3cfb546f7a89c6ae4bc81aa008690fd7629c Mon Sep 17 00:00:00 2001 From: Peng Li Date: Mon, 13 Mar 2017 19:30:02 +0800 Subject: [PATCH 186/186] merge with latest code --- paddle/gserver/tests/CMakeLists.txt | 3 +-- paddle/gserver/tests/test_CRFLayerGrad.cpp | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/paddle/gserver/tests/CMakeLists.txt b/paddle/gserver/tests/CMakeLists.txt index 6b1f2a62b9..3c4128b5b8 100644 --- a/paddle/gserver/tests/CMakeLists.txt +++ b/paddle/gserver/tests/CMakeLists.txt @@ -21,8 +21,7 @@ add_test(NAME test_LayerGrad ################ test_CRFLayerGrad #################### add_unittest_without_exec(test_CRFLayerGrad test_CRFLayerGrad.cpp - LayerGradUtil.cpp - TestUtil.cpp) + LayerGradUtil.cpp) add_test(NAME test_CRFLayerGrad COMMAND test_CRFLayerGrad) diff --git a/paddle/gserver/tests/test_CRFLayerGrad.cpp b/paddle/gserver/tests/test_CRFLayerGrad.cpp index c267dcd9ab..df14449291 100644 --- a/paddle/gserver/tests/test_CRFLayerGrad.cpp +++ b/paddle/gserver/tests/test_CRFLayerGrad.cpp @@ -19,7 +19,7 @@ limitations under the License. */ #include "paddle/trainer/Trainer.h" #include "LayerGradUtil.h" -#include "TestUtil.h" +#include "paddle/testing/TestUtil.h" using namespace paddle; // NOLINT

    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 z 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 z zSF&ny&uZ0ka>_#-76Eb|>+a2y$m+kq!aW{WJt#NZ9v6e&N59oHe*yzM?fYnJPA+iv zZ-2YRMR$>RP6wvnz!Hk2hKz_+7;xjBO&A)X-2j?;=BqA7JidJP86d+nI`)J)p^iFx z)tS$1hu{I6zfL7YN_XDce-V~#t&0qp-hTE)SyXeY0vdX4)>Y;nl(`2JLQTzJ9Q2_9 znG5^HfGXRJk8jz!SUVdw|ElEKgtly+)a|s$&X~f3Pha>K;sfE28q|Kj*W@UTj9?9I zz=T7UNjbKqcZwsI8$EJuL%sIqvrM-dtDq(0|Jk0ZI`h`kMAAG?vhP)aD7IxnrIa+02RLwgLW>*pI6ug~C;R%L0?hnJ(Ci7> zqm7k+yRv zFrsTl6mgX*E>B3`T&3u^_YCZ$#;aKOsc}cII;g}O%yAVS^hxp7408E0KdV36_b!Xq z-?z(7`r>PLHMs)P1HqsXrkP&3lmUb(@O%%{1hjrbKmbz!t?Q}uu?cBA%& z$fK(-B>OYRnyBQ8xvlIN@Z&|fAzeBrOx>*ZoAh%p4Nr>svE~dIQazr@^O84u4lVoL z>|I_zOEe;00t#c!8h*knQmAy-OJgM++N0aBKlZX9Hu7ghki+=U$q9|7cF4uo90--@ zWyv1DHEv6M9{H3@PbBaUq~Ram-4$*@h3q(k^SP(K>)|4510#;ln#PB&H)nj}b9BG{ zQvRnH)-LW8L--&zHM)JIuIZGVK2jT_$p3jKcIqllA%BxjS5h-9{Mutp-U8x-t3ls$tQD&vdy(SZzRySni6`1ci$6!-Ea4-<1gjT~C;T zfd|hu>bO?ARGx9|qg8$y8qNKt(sXq7oNmMuj%%J}dEb=7D^B$|l{MvxaX%2Kuk(8eJ`R?rP}X<#?1E0nF0;!gYoI z4%D}H$|yC_iKjE>zH9_P@!j;Bpv&QAT7q}lSkFncSpO-CXE12Wy>7iqA+Q&7lx1cT zB9vauXkgxQ%kiG+(cv|%xJp34&fwk5O;A^tdyQyjowJ=C+g|2&rA^bUkFCO-UBDjy zPj4m1KwtptpL5spK6Rww_0@BY>YXz3fqZlkK|SzY$-%^_j}{7~sy22st$Y~B-&zbz zmx)z(6&<@4-$PAr9AuNK=ndY?L8*>hibh9)~3EpP>v-h5XpRwI9ZyF&GpiAp*JteYobeq7ii_mPAwfaDPlXr!0_h<3lrgy0BW zwEe^PMPIu;%u!dyBx!iq$h39oGp*(T=XD1|MkKGOoinD-VAF)qFrYvE;1lW98)S=y zO+KNk=}OpGu;qSi@ypC9_Z!aT#!9=qCJ}Lz% zqV^-;S_`3DBX{xDgX!uY*L|i`mDGBe`Zs%jk@)Px(QOE*S<+q($r*EvdrUgU1h@MZ(QUtnO&2Tz74GaTwF%E1DRz=oykDWZ z*7--Gm6)?+gX{<+-r#sz=;GS{xY#LxDMh0#go65stRjHDU(2@roBf8r_(T3Iykm5{ zA=_NyR{i)V8&WEdYPkyh+aDD$o_~AvCo5VHHLy2))%cOmSV#UY@)ziCG{DX0o3gsI zqe1#nLQ!wDI4cv70K-yNt}$`hL+`^-nE=5gHWY%o&~EdIDRa_2AIdY4)|KDgI8xiv zPN8amv(dy)(*iSp*m02pg6*XeE(3{%Sw%pkM>`62Q$IfEuXyZ)z$cUU+g$%%g^!Qr z6d&NoC9^}Pkqe*xL;awDee`IPTzx?C*=>&EiSf5K)J`8?fHlop8Dlj-W|({3Y6;VL zmunsaI3KFVsg03VX+d{p4IR_H;O!{el{gApm__L;)aUJe^)=>Zncb||0jT`AJf(VC z%+A5+>)(vgwFvuXDK>e}2gvN!Ygax)4hb)WG`-Sh`llA?2Z?zRTWB6g7nhOKWQSET zKUrUAOpW$9R%e)R#cb!^;fvc`Z0_I_?_JeF+}LS*k1>(NzGTzBZ;nEc(;jBs{ERAd zKnbRYLa#F!z4) zpfgH@5l{KP8x?SyVe5Xu=#mIAtSF$$EWIrjoR9!+MF!Hn`=!ZHH#Hs)m7)-b<6~EC zfGc-lTfXm_4$p>j?R?fT*RF;*zS+CCx}RT6G|LblV(0&7f25*`NNeX83)s8YM0kw| z=lF{`H9*8L>mdKXiaSu^piatB! zaxnV~DR}{7X$9pur|n~b@$aNIhho=L)v5o+=6a8Yn`bKv)~!)QfZHLzGEXwuBph1w z^z}T9bpNSSTbaqMi~p^%^mEBYJ)eSXMBkHx#shmZCC#io|kgZpP>+*5y>Wsp+ zr&mHKDxs7p38?Ze^7ClRV(U1MEx}A`YihDP!jPA1p*=@1z%x?Rm%e}OZ|t2%fr=@| zZmAYuUoW$$Kew>~Wq9R%dWpq}q3~#awV_NZ6e?W<(YoziF977vQH{^7dd@Z<7kn*b zYjC$MV7C=u_2jV794%*+yf?Y=R)1?aw?|-6Lg@r7A<^M>VylKYDL9sJFMmwA;4x~O z9{zo)kx01l@I~rtZ}kqZaNH-65lZ$vXX{dwFMaQ*Ab_=OV4_4{PmcJz!TX_tsA_zr zD_~2N$iRg7SYm~$K_Q;+-@W ztoDfBA+s1C-F{?usO%;cBpAnQ2cO8}OhHJ*B2X7dX!B zRrLFPtRIUH2=>INt767rX2>XO8*i_2$XXLx#Wh_v<5x1${^BcbXBk*hl$||7PA{67 z$M+Y0Plt5WCX}up#aW+)(F{^LEhKp5+Dd@WkMpz6FS*=NdJWE|XVK8bR)fe;!NiiI zGK_cXTEH!Rp5X$;@03t!`P_a8sz=d!MHTNwS8q;K(qdcqIHR^A(`z`=q5xk8h4$b~ z<}o}e<;K#FE1^>!zNX7GOPM7QNo-nTW=b^RxiM18Kd_`|LvinORv0Mz^rd`O#f)Em z&#Z(#CxNPU0N1ws!7LY#oMYl1T#f@6l!{w{J} zc@){IQ#a$YCQhz6w?hP+QThF&*tUygrZ3PxujrZ~$|u?=AF#-yU6a=yjgEmAS@!Kl zPe?~vCz}QA;$yu{_ydFc26XI8sHWA5`;L~ zkIv@vm{O$|tW&F=ul7(-!Vdkq9jT{aeBwQD+zz;M3t3@inx5|978vwJ(cx@U#nAq` zL~5rZP#3PzW0t$mEA%*!bpBX=hVSL<4`BiPWRAynHEneA5;SvdJe2N{sr$vH`9PdS zL^IN?exwp2?cXgJ!fq5HwpV_0Mx&-`MtPf=oNaL4zt9al1sUod}SN0x;%^Bi=2p4h3hJ|0&~S}_2|EuaU;gHMfA{6`G6 z=)MY;c6!}XRxsz|S~cG}bRw)fdJ)aS4kj@Y?C--`ZrXDPgkn+ME$2C0XpL5U5=zrj65r7JBdpku_31P?FC{lblJ?E~ zQMUl~!0}<0F<0OIi1EG9FqYMDhW$zlc0DxXk-tIJnPj#j+)_K>u@<3+m z3wJzEuJ~UMZ$upq zE(~I(hS?Y?)|)xtm^MiyPoN;~cWuaJjBk(M%gkqdr^2abe4XIeg<2@UC^ak1zZb8B za#=LMbBT`}#_lt+So{0Wiv06FvR@4htSq>(L$Q`5wB?8%Nq1D=u(U-@ac$X3gMd~{cjr+usvIKH#M0^}!ve5PfuV_quk3F93WUIRS)7C@($KiRPkx>H$8 zMg3wAf~u}%gY*E3bD)bdgMTPods!fB8*Q|I9Zd?oZhQz^D?NR&OH%J)rPt2-;J_T6 z*MFI};e9c}M*bdG{8jO{TO2@mxNr?@y(LbVzJ1 z)L-NQ;?{PGklu8yD+uH0;kutm!>K}2h^}L8Abg@F4#4$zmM6BBSj-NUzmHblic3&R zF$fVk9u@#`Oe@1hqi*YDnGDf7p!hFkd>tZ%yT2?b)bPe^phSI?e8UrR_5s+^ns8#Y zm8J?ME54mf-wfgF`}7*Al`_y7`ZR2qva8||r64ISf{xpusBP|J>hS81HOm%7gL2c_I?)u64 zXqP|Uejblo_}Qy=WA8BB@C`&MpfJ;ApMZ>0$Q=}^@e>i(iI5D~{{i%H|l{H|Q^-)$u& zySXJAWuFo#vCi23(6)5O(iOphN0NACL^h53HGS;XX`=`VZK z^Knx0f-_iM^ZMCGXKgfFxH4z9An_vRw#d?mcV5hibm~`bTJ;t)=W@SSZw5Yk^Xyq* zY)cAm-??&~%O*0S$wTNndvonID{HR7K*o4VJ&=-JRrxaeus$u$lFRTHM=J*V$+M zojzl3Ec1kWT95iu363szOiUN8Il3tz74FKqXQZDW=fF@!IH7T##$plu>z5ng#?EEf z^I$hT8-m|p5zeKu^aYIe29YZVO4i9>z|ToFcGfC_+vbJSf%N`M(kkq#$auL=2Vyd! z>1!{yaer!40t>Aorlp2UDc0>4cFnuHsP~uI%s`1B-k6$c?XI<*7;x!1P3!RCZ{jL( z-dl-FU@Mj_uke{~F7cF!VJ6C&B>BOFtj&18`}k4Prx4c+i3oSOZJBlb4==~Lz^v-l zGH9bT(=2nv6t$ktnOY>HvyI%MltId9gq=${XtGlfpp|Sqsa3kKmRkAeg^^Ls2YGfIi zTX-$cp#mDR>?+G4%d-vj_#v5NI$*YtO)!b3We?t@``VUGm|Q^Pl+zBgp0FN$5H%+^ zZjdSdiK|{GT}GXs71sb*y;QMAK>(I>&(P;7Dqk#kB6LdfpZodi#?_h)-3jvR&hiI;~97UmtcFBZwc9Qa2Fa}Op%ygwtV@<(i1vn zt)f>Od3vJJwehM2decQ^#r(-k@Eh}a%lSQPmzd`a^Ii4V{9zv-B6E#R_Ucb5+UODf zJW3T}6P+stR13h$*#!3Z5%0<=S>&lKYt^VtFneA*u3suq)eD=Dzt4dHcO=)DJT&fT z>Nc?;l5Hx4Oz*)>dymj)|3G)=m#flD&aUh?QWWq-J1Bl%&?cnSgN^LtWgdL z33w!vU)B?V`+Dfov2P*DRoPFuT!{s>227}N>fGBHSKC_0YRKxXji=^)U4JOA1=>Z{ zVUEDhtVKgFa}on6iOkkG)gHG`Io2ipE=GoRtlh6R>C}kioyY zI13-jl?WImTrNd52kS?=od{SK;YWNHTJK8$0~_K*4!jd--9d9BSJK$#oNBWhg}g1I zRYp`{-apTloGIKYj$R1XDYI0t!@G%WLJc&ui?Dbh*Uk5SNJ^C%X{Zpzuhz65RVSxD zo)-~+e?G;YroW*t$XLL_r*xJNZc!D&bk)xe85N?FJ`T9iHWhJ}hR`~$H<+oCG zP>x7zc?YF6L9_Y=Ace|mPkl%4ja89CeliPdvA3Nk;hv~_f0m7T>#*alk(#$Sl$)k> z4|?^b(-|Xhu1ruokx%cBWaBAn8eCJzXn47A+Q2U@fxM}#=KW{{0}zqP&C>sc^j645 z_4tjbol8Nrg{6x(EH6ch`csH zC${4IF-`~3BA~EZOC@iJ>X{4PKa>7xb^~?J=|%RRzDXgn^)s-9vv^oD&0AKfP2L?p zG>!>;eU4zQUQQS$OSZXcXcB*%>|R#NMtH#|KkN5M_k$!XxjOP4t$!=29gAKrUzSGZ z^GsZ(PbGv9M-lNV85E(QOx$LgA;w4fb*^=1r|)7lFCi%ojtRh^a!Q~$y+`}%i(s-r zB+5XdcHKtmOn$y~Eh{(&M3&ONaM87v+`0_4d;U!`dylAx>HVfQHAT9^G|#M=t;Kk* z@tIh8iyK*a>tn>jAEO-nSUYZxfIq|Uc>a7837gW82nVUnmRtNcat+vXBSs0o29t8A zU9Sok{Odz(ADurp!HNxJkGh@ z46?d2zsc)&k)}H^`nHX*S197-U?dL^h1g#D7pqArqF^5)Aj zf$RD;bwv|mOvq?85PfzQZ}!ZyrxV+;3TU^yOnU6{TirmpJcZNC2g)Qn6v&GiKp*O$ z2De1Uue&8o&HhwdqQEa-*ZUr7ZE^>Hjt$Cz-T#`G-FT(f62+1tXI-HQkzd=7nQJ)R z#EnWml2xsUpb?RqbazOA4t=tCtan5iF+RG&-Jz_h+^fC>N3Hw39niie1pqR!NzIn3 z?&%tCuW_{BREM`Otgjj7HBNS)vnCh8St=zYWX)ArpJ>Y8+ud#mDm%qM&ADCoD3_5$ zzfL3pSBF1KCj^AGyT*l{T3jC13`+f-B?gWN<%h6$NA|N826f5S;|Je2-5}@U!OcpN zDHo)9@TTuh8Bqrj@)^0A(F`&8z$U_llIJXD1dwzP!-UK)Tf(rmG|9m`yB+7W9Xo40 zc@;+Ps%$}pkJurXiQf<+tDsYZ0junPj8;2#Ma>XLUHPpq7H=E|=QI#^cuWMIFW6ob zY-~RHkH?{CRkU~>EZFyB)9;>MbP@rn_RO_4Q2X9$ePtt@@{P57=dI(|gWX-=t`GTq zw!{I3C`r5(MKEj|0i&GqOszTlLtJ)=IbDOw)kjcxock8zX?Yiu(Z)kWkly5j=P;(- zL%To~P1#<;KsCsH9=l-} zwvQd*k~hBDzm6+@&#OO1fz{d+LH7i=!NEUjDfp?U1om;FH*MX(m`$ z)jBs{NZC`z{fu?RfTHs&5Ay^=DSgf|Xtb@3Fu*0;VsNK>hq}YfvOo*EuAybg0*3*?Sa>9bj#&Mf!eDNoCS$KTOolpE`dyWIv|m1@=GDL z;C6*GYB7xv7XC;bUi^9sVI(r8AviIl#C%iL`2Sw9VEf1TujX)fs|I$jJ?mN)ESUxH zzkiifDBoKYTRBWMBbyh(?!q0~Y|r>!Ae$IYRP;F{Uq152AbOk`iqQT*neR7Pl`VD- zD2wkC%hK}_OVJbY>)}s*KUn5pmp0{#XO2j`{*bDA-paCb`0te2$006JIu7H8z|rK) zA%157HhD_kwm(`{j9rh;)VTwys?^N$VS9`x*fT zemgpUoq%9}R9kl*`@)7FP%Es{v`_=mv$-#{y5H^5Z%-6*K%pkrTIRts5l6T>fuR*JXbR4aw)_g1bf-T#Vr)O6 zDSAcoSXT(=egy|f9m+-Mhl&C78}Pks(PcLXZ@*V_4!(A4r?^Bf+>IcM;0v6FnfkX+ zMt{=+K8Y`yArpXelh(5Skd_)`Njn?HoY-9d?z#5o0BqXJlVwnKSd)syA=*XpZ?T2d zxm|JVDGazlm?4rb(+OywXYUVm5rNHwy~Wm_yCk@=lcoaDL-1VfTG;E+&pJXGoD|82 zT~(`8&-X8TjJDw-Pjk}0&ljMOS{P9%!rNe$Ak-VYe!Cuf zRt`uk+1ptaXccTG-JzGYk`39ZoJnY8g{w(uyUDw*eI7#+EjrDR+CGQHW=%39Oo;9x zA*koEY271h2x$Ms6m29 zNQqnJS$Nn{_*NVHxQi*{ql0fQ&_s{pD3B3al@&|3iD9OYMd|Aw3t|3@iY`Ho+@9IGpWQzn zEU3kN3b+?IjXrbUN5X;%hhUcv8(I}~iHw6cR84|DoS$|3fW1(y!62g8%(@|g^O1u=I{ zBV7IZN{Vb!UPUVi5^Udlq(y~rRRMV|oY{gBV;&sA_t!nrm+OkK9?Z%Zu4cA@2lHED zQBXu{IDc@m&~aylpz8QVpQ=!>@^I}!D{qh@+gq1RQYUlTNv7$I9G0JHQnWU<^R0F@ z$evjAg~V^FIXpU4VBH3#w6Up z_rh-U!=Fq=N7Jj6nualW#QiXv@Zvv`$`u~90`gkpjJ4%^`slo=Q%2FCBgB0MhI~EL z?1N6GYKys{N1-A1qIFO2r5=GL5D$FY5bmEr0OKWrF{TsBu2zIk@)?bKs*zy{^fitr zVLw{wv!c2i*GHdC(wg^1uSv`o*F&~Bo7~gG?irlebqQcMRSf`f%<8o{U!Giqz%fI+N}1*R8HSO;I49wL19b`VqgW1^ztErQp^Wvv z@*3m$M&y{4hA#hdr$@u&GUhmA-W&Cp3sy^db4T1kCicwxMo}*w}+>w8+4B(P2Ey{Z@zKQBEn7CH^%!1!24uG=|hneIw$3Ol(7I@^y-e5!m|tY zs}=F7-&3fKP`{XBDWCd=6K9LBZ#`c7%T3(NqvXZ+i1gaQg6b0Q+>N+J<=uj&ax}X} zT3OVHN?}b{k?fO)@^7#e$43?t0mSOo##VgyE3YmivnRXw*{p!UsG!=B9FO113LM*r zI?ku|TNl8#5xdW;fY=~V7ncNh!zsXfaO)KZZ1EHa9LZU1G}_iKC*u63_|3;7gZ~aw z`Avj&Aku5fvaC_T2L}kFvy<-DJ5VRDVi@+Sm=@J*oOqiA4kV5Tf@Q+WZ-JQz*(mkPM+_529udF(gC>E5B0x?Z?V@p zS5Q(>wDrp%@8HO~0M?5xhv}wLfNufV@!c44JCmC8$v@N1-pEp^=kxm4a7H7O_lL!> zs$(mDo+g55ONfFJ=zgQV?W(^M66aQpeL7NyD5W zySdvWH#gBairdU!C@U#e^!B&4m&NAB#U-j{9VXY6(Y2SiH!QU=lGZg(YBx}Z08>JEEY?(gr{|%=)33FuTGy`UiD(wk!6NICC;u_`Nb$ z&2`3;?lh~roiSTreqELKh}%eAxp{M|q4fFHqdWRQ7P*?FhjGn;aC4*;fFg4(b^B5p z{-zmlW+&422`}Ks4c!AdExX_~@?mlgnGKtLH^H+Ns zu9PzCkI1jAnb8{KFwu?8Oa8aID|e4bWF8h@mH?`U6#$coFZj78JdhL2GFg3Jr4m#u zhTUzJq3pJWZ$)k)fH?`9KMgs3F2Y7h7v9988HE@(S-DY|JFiYAcIj0ro*7NybN4X+ ze0jE+>nN)znhC>p|G3qQv#XB=bOwO3E9`tehM-_l12@zzM}--mvokY1wk8G~h1D6d zb*G>QzMA2XH+tdVCn8XA2i^XB!<=78SmNr zriAR~x|x0VY=)eSnuA*Ly)+V0739fq8_wcZn4AHBtbm;*2N&E#P+ zq4z!D!G-mL?3RyMTTj#GQu8^Rp_}8jvUMXH1+eYW8`KVlrVF?=eHlq_HlSzW zqRRr2?nCW~C|GyIyYnALRd4cf9bvPp)b)##_56e(0jih$;+uecc?u;SccL*HmdZH> z`LDse7h12@cqtXYDv&zzNo7W+sGsPurlLo^K$UQnr z31n0mL-$=rIoi=zR|>30iGTL#|{1~;<)ioScL_Knyf?KUMAZp*s~sUf`=Clo$N`R zjzl>Dbix~DtzIb;zPR;4KD4G?<5$QR%LL3The}z#)0BWS(Y+AtSf~B3FatEqcp$f& zB@gmr0C+9P-99b?Dud^pcToxP5r1`g>B<;fxj#yzwBj8N;y=Ku-wP!rTf_@ti-{-x zuaI_=QC6{eCD13r)Y`qZ=Sx~OnbScsqjSp16Kkp^L@UV3je-di;9xd$)+Zj%r@if~ zgr~jUsIF!@*|}2$k}nhO+DS3CkSTSVO2)+4i-CIgs3L%G`#g9k*Htf*{VX0*wCz$% zKbC$}$meUtD6ZS#{HPRWY)?DJj-6#Wr8MsS_a?N5jFHRjD8WnI-_jt?t|4Mh9uX7a zb=^Ye?c}1Gre2tdyzs9LHGi#@u~?U^V=L^NZT+XNom0qLt$gpsEMG0QA|ifyXmZS2 z_)Ar3;d2RtO!oq4(GbMHDLPKlSnd$Ty-b^fy6aZ(z?kcqR@Lz_4*LgGwDl;sB;t@^ z<<+kX3oXSpDg~-ZD^lkA#W_x#xZmY+OSEEyOU|{of8JeUvVXqdEVdT%a3bb0>Y3(; z)b*~4^)$k`l6~o`HH!Y`+!?cv*hp-XGewIVN%8VU38SFX`z6=sLD8BB> z7_6z+AhCCC=*vrci)pMnvM}_6?c&@Y_c(9Y6n)a4G923=9A(ot>i*?_0Ovp$zXnya zT-K4gQf1(7GtHbHUU{*mx4R=+3GUA6dG`6j3&^y=D}bM}Vaz!DT+M#}$!(M;M>WLH zXlA+3?>JQ34UB-{nqKgpU6<$i{O)%yccYA3Pc=S$W(3_icQOrl()@6K3QZ<_Gu-Uh zYfC$|dvoW~BjSl5ca~P6&3S&)br2fSobTfkEkVz{82y&v3@cC6hR?Jx1K|uVnr$3N zbe=PWPnziwk-R)0=MrPk1OM}#n;64W>$Mk&E$`<$_g6pko6eDI0h6-=P*Wxpd98(? zb1~JBK*Te4v}a%wZekJ2(geafa(u-@;_EGYn4{0+Z4jCjAJ62MuiViQ#)yM#R4!ip z(KpC>#P&|JwUfyCq0NRF0h49Yv8!=-!D+M?j$?lj4T89{7uXo1xwK<*LdcY|+}QxA zSc3zQ&AA`X&mMuFdm*cdta);VS(}UI)NeHPmDapwx6P%?x7;>3y`=|4hG_N&p?>*) zWdHy`07*naR1=~vc5jzWILPF?_u{wQx#XB$Od=n<*42DDKWmalf%dbUo)K}u{ua$n z4!4LG_t^^@t&UvRUdT6EzIT40;mi5CH0^ovCvUiDvi~GkOLH4kAGYX86x(*=)SOVT zubORzD81Vy$P#TYy$CpN*5*BUVj@~YTCG{j#SQO)=Y!wlrg_=!eZ~>qpT2XhiTLRS zOO2nubBQZYcX_67tru=eujVO!KQ4Ff>HN~K=DOZFTf@HYjJKMi<9dGhQu~N9xPPi{ z+fUv(?q^Q$dVa`huDj+-FQP!H)1^Kg`-lFWwgR<2j^tN(7;-lZV;UWK`W@%@ zRQy-X+xExYIap3!Rb)xnlHZy~Z!}Y$g+{{C3_ieixjmg?gJ;wJkZZWf)4Gjsigo9Z zTIQ?f5RYa=9`{04yDy(}Hbuu>v#YK?M`leZCO6SG+ z?RRb%ra$ER^W3@3t4c<*9;DAU8|k?BVu4$%5Rt1u+1x8V#LPY+(Mh-;J6o z0`d-=3N5nLZq3nvp58e{SsykHuhBg3BbG7B3C{^8AhwU6&7n(=E}t3Yjy@;o>Jz2(Rdp}=dBS?e#SjzbB&QYq-7tQU)p?M{I?uD$AatO1P4WWOkI~Tg7f*1D5 z`;(t@{AxMDEmC`Nxsg2Obz_8cZwSz^%|O<{R73&n@z7ja34AsKiFiTe?a+oIXqJrR zaUAYBCEFaaGkTRoL^#g8fIVXKk(yWgowOi@+%(J6UI04ijNE}Y&2?NfQ|D-QZcT?~ zhbY08r47BnqMuZ-G;h!_ir298ZEH^5aC3g-XLyDi-r*W$5kP9=;KdVOJHZnNg7rMK z%I2bZ^BWtGLJ~-R2Dz#kjqDkp?i~K5IUDbZe(nYM51JK3FUZ}Vq(NgN2i#}}$0Lbs zx8|WY)J#AJul?c;z%z^&&9atPk@gMHNUxbh1`bYZt^-Xn)OI<)>NRBayl6(T04D}+ z?K{%<=RV)h?+6>sevH2H^04MxFYMOD)9Vp?*Gw+}=%-w}&yI=er8!&Ue7+9z&9LXZ zb2iXm^CoF{HVOO7`2laA1v9g3B;=8y&Heo9obv-mEzEXlVzs$P^PN`_yBETg*Ib#x zs98R+-`pCCeXoe$6YUL$kG5v;0aJeUlkY zGVETk%K4#(pS-TUuwd8cyF55B@O$)W6dQPD0vf{BkbO=SOS;&-2^& zd6)&-WfB2emeKt2{0zIE-=Ww7;ypFXY;N3IFxH(*^!b@#A;26X&8+X5rx(G5AKKEh zOfJon5}x*AogX1-8X@VQfvkHHLtsRB@#HE@wR11RF=F3nhMtr>Jw~8yE?~N3oTkM+ zdhWa;c|5GM_dNTBGo_0K@NAGC9_Cg#}$0}JtkLPDQ>Vg_iB&9$`nu)N{m=*?tF-K?{CP-S=KB ztdWPpqZniCKkwY|l0xI_J2x!i^*;?y_yo@eh;?TFJ8BBwV9~IbAIs8-DFvf2FB^2_T%h@Wf3!^dCX=sA8wYRhnE+5or8TA z=Vt~^`tjO}iPghn`ud_-PP2{{lzr0N+Td(0emZc-4$Z*_ZJd&ADP#^y&yVd`3^W#l zMaF4AJQ(L(Rx2ks59WR6#${f5=0xy*xO4I@X{=xSyffi9LMB_`cA{f1J?HsVM_3Zy zbH2oi(HJIp+40kBG-@%uz>j%SCvN7m81s$2XL1HQ6};vO`t0)=zj$SI95Et=cNtiW zKN`1Y^EwezLOQp$(+=(8ono)Oz-?68IeEW4ztQa8x%32@$@{Bj*E8HmswlUu=Yd(g z=7i|v_4;;xK$3>Yslo~_jOEq`DHHVUnT1{e5^V5=JUruXCN_Z1H z-o-Iu=W*2>Qq4z@mwxBS?uNc<-gq#?GtF=>rl$w5y%%hGFX;sbOsYtSTS#Qnp!wcZ}%wX?c4Z~>W z!T8>GR^1<9nZT6{LXSaPRt_81ATSlI#fBeFmseNGe~wTM=K}xm+bk z+GjF^^wQ@5oibDUx6*qtJCe_xd#`yZT$BeB0jPU4Bo%Xp458O z#WEYCW{YXPVYH!OapmxxeZ5Z$qhyy&%4ra66rZAHH*dut&dpehDsVVPRzS4|-LM}bV$T&4?jg}J& zH{-4u&|PyP1s=`)g)0WrxEA=^3#{xrzIT2?ujZ00O7@#6s$VoK)2c@lK9=&}fX9GQ zIKrwgnhg`vVO7wz7p}M^<;nReSLi*PVY3AGq`5@K_6=a8EErvb7un0yvu>a7yo9`J zhC@U0(i?P+?fMXe9~pP<#t;HeTRd=v6HD;dUgZ4HIZ?-hCA{H|gmGsx zG1!9D;y&8H(PHe<9I#z-;G2V4EWy8OCZ<_eis9IbL73Hiu0#K4Yd#jXb*0MU{+ThH z=iLBE{Nk{feSd8qryp+bPu#gE(JaN{zTUZ`7ib{ChhL|la@}Chx<@m9#>ma4vyAs& zTfw!bJ_6L;c=_9F-)aU+fP*LN@nDH-X|5KYcg+Hu=7P~i7b5hUg@JQxPDC~1D{r}s zw*#jJGzvI>ZQXY+K=ks%v2_x9Xb$hbC+5a~zjJaJYXIr5npd1qr)CFDtR2=28aA=; z(0JF2ID>n8ekK^rmxNn0nwDngGqV7AM#N<`eje7`>Z8TG^_dZNs4$srHm{oPMa=v6 z$#9^znqi&D$M@f%R?Fzw%_Z5~gQYnUmf7H?d3<{GGsYGjR_+`-)T9^Qt+JxoR6Sgf z7^VWC$iT7&{|A$XLHq@J{v-PESBb7aJbzaIuvftnZEkWPfdzb zA&$0|D0$Q@T5AHQRWimlS2TX{y}xr|CU*Xt&J>$_6k_E2uP$$jnw`BqPz-m+D__{b zAkP=p#g!oVHY=HjLXTB?sx;^NuvXDS9o{xzngRGL&21{!@Dd|!FPhB;iiLTXW=dg9 zOmb@L{TS&R25SR6z4%J=$?K@{;(#v6^TCj{uYpoMo!?b6dcsr9(KkkE^c(7~x#w4y zYv^X0QC=tD@+HrydG{hRi1h0`KgSOz4|vLLQf<5+BOEMeyY8F}sXY#E&gzBW9uxES z&dvD^>~iPQ|KYZ-o90PDpBs-U=O?W1Tw<1HZQp7h`jX}R=rfLH(0Vi{{l0VF7p4vI z?T4wymp)Z|8={b(K=jZ+$y?}6H-ko3W96*ND3SZ5Qwa2{-x99Q-WX;~kc+qTLWJLeVopZuN zGy8HoC+`zT#z^OmI|pwlSdpVRXH?v9L-8wIvM&tA;2+OVUa&8k9dl}4H0j0C3V%j4 zXN@u>nAiHEA$>pe0-tj5v5E9CwqCy<01xj3UGAI%5AISBC0}^qP!`|0>9h5bS+RP7GJK#hYZeJ=NrkR@DzG?P2EW8WIFIj>Rp^qOJcu|Mxz&BXHS3yg1jfs=q~Ks6^< znTQ7yZRh!gJviT$rGM%e3iL9PX4Wfrz42rA%Uqi~)^TEv%YCL(_mP^TV`+AH6T|2( zB{a|rFPm4*%5~J)^E1h**_ui!?;-K|&Pj{ow`O8q?wk_xPYR7H{cxv~XvWcmTC==s z_IINLCQ#@~x_z5hw&4w(h!<}>zH_3u-?`WKN%ZB;!OOrlD&P&o%G_sPMC=obXXQ^^ zW8P{eRxv|uDt1KQHCKzB1WeFXGjxtl{9s^=W?1mYkzAwI4^21Tls86VN3%#YhPOe6 zX%Z~DOd4o;9YvaQYHiKLfKQCO5UQ76tbZe^^yRkLzE6@CzVkDKy?dej?nMd|*j-xr z9bH~)EpLpL%JMuvqGfXx3xEyah~?opJvHLPz}PtV!W^SaF2DcG^M@b$|8xfKY9=^& zN=C|sGIgj79yweAw_3&sM9{Qm>ACXCD`EUcv4q$c%23F#@)~mGEi{6rsXifjT;zl1 zF@=eo%@H=j^;3DXpix)N@>O%vOtOjh~WaI>($%xkOxU`SwXTY=OY3R^dq1OBS$m^lz`yA}W zBEF^BqKR@Dc2K8YgvU#a_BJpvgny@5LCKdS(J@RRDTRQ+B-xywy<;cS~L2N zjh<-MoW+h!M%ky&@Y<$%2=n;*{QN;M(NH)QGzgr=tum{vN#w9*#r1p~4+{&14cSYs z@%#Ktn6?SZj(MG*E%XAK$)vS=XOsgRNUY-pw%&1tqS4W@HSbJ@%gyK+We0C`+GnHq z#^jvizpPa(bg_l$h1cf?=vDK{1<}<FG~fAQQhnGn_YeGB@v4a~$mjxb&G^N;2Y! zJ$cui6aD(~6|qz6)A>oClEa@dn#rk`Q+d*EL=+m$JwL#&Yll`d31rBhFtdSjc(o4i zoF6^_t{C2|Ly&cBcFe?`(ZCThFNp5{w-YzxerCp_|2#i)%=u4){ODnc=UFouPR+_E zAlTeI{My@4hw$ILbDw(Ay2=f9X&w>FXCicl@yqiAhFtN?ax_y2uHm^nUhkX>@11iG z!WI@&z15t=&zk#Xt7^iu-+$R3XTLOyZwm5LNw`Ta0|WO$q(|1u$otQ+VAM%~!?o(s zKIa|>kbn@trYF#d>zz|#-%AuQI!EhblKoJK<|C^Ei8a^eKQ&tlKxD4R8_i0dI;uXL z>+=Ya2u$OqOldOrt4=4pXcmDvqIo5QwtdzbCWdFy%`UyDM<~;^&)ZIl4%ai9S1)jy zw3@@!Og+DFjAl+k%l0A^J&kIv@-iKFu2l@(q<8P4H?x`A3xV#M+l$~*x9eVW147lUAihDSl{<7*4Yoq?fiy)2=hpibDh}9B;Ks9n!($CyK`=*W5}g3 z_bkht>(Y!-MDC?81o-g!z3uJj%VX{|u%7Ao6&H3$Gst7YY%Q&t@8`F5ip7EOYD8St zhzseX<_R1~^|?gF-|rlG_9vBtl#+D6pfqm~1PG+f$dMyK0P_Y9H8VlrM&qo)v5j2i`Kum z6@{`8=sD71LnAcUl5$krD7#7Q2Bk$brx0n0HQXY=LMV1#=wjqU9s?Vm!pXPdr{O(6 zA>BD8lFzj8d6m4iotoW?VqD1)>z*byJULU-5(6RWJ+k@JX%?wdgm<6s zq-)Ky1!X<8+Yo2YdjO$}LjecOw)7^T=InD4%yFJ~Zn#&9#P42kLfn%kPu9!|nmd;( zeDE5;q}PW#7hT|vvk%#dO{EWa&N;#$u>L_}@AJG*-f6z{`OFK;CY{yPkFVajv*(>N zm`ShmeWHK5`McjqyUhHnL3~89W}vrH*ypTp?mo8mW{x~gL%88ti^FujPr{gYOR*01 zG_`n*h+Cf%j699kJBQ`G8{u7K4KvEQ1BgA8!#a7#^PM}Vz{R_1S>af3?%@w{yoY9; zfny!B1dWO}y>I~2J|_a+YF>EB^7^=Q&SYa`d!M_}3KGuD3+rgMBj*=hf^V8J8J9)g zA&99GR!p=|D*eVex$#*(d7J)GZa0O+0zm1%E+gT*HH z-_%Uz~<-1Wlx#sGJ7XJFP zQb^13-N?LTk{?`P10GyMVfH=2UWjZH?O^7!4Bv#`F`@8hc%q`zriwX8m)g-r3-d}to0#0f`E zI2pq`EsBY%h8J9YS!-UJ$#($AC&MrNA{ikh13(as2_TH3jdNIFVkDBJNz9x+&!W9JH4i`!MTwxlAu@-1XN0p`sWDnPnNVJ`$z>VGXpr3k zHHjR~5}7(e#zc=8nT>TUy-1hvT+Ru+}&QDCoQM%T)*R}z0byccmED|x0jda={wi&FyFD?d7t*>x##S@&*IMK z={wi&FyFC*dB=6eKj9j8e>Sf6?(fg~`+VoW+u6U1IkBHG_2tQLI2nKc@BYn?zxiu@ z8P#XQ-}}4%i{F3z^4I<^R8C^88((wxeb#I-msNfQE!^2-SwkyC`|KKph zE0B?>@bHvj@r~w}^J@fnVUji*yU<)-I1a#YH^t@7Rdbk3@S=GF!?HKT01v(3ebiqtUP2stBVM4xzBErRTs_oJx(|wpygdYX&}{C@ox2m=_Dl1YRe4J% zAsC1ECgl6uOD~?^C(mRbG&?~4qZhs}qxlcN{`%wZ{GGr4@!$WG|MSQH@PDb;zxwsZ zfB9eilOO-f|N6H-{_p?i*Lk1bvmW^_nsXCtx<`H7pM8GNyzcVR=a-Pi_5Hy92~>ge zYnadT;5E(Dbd+uP3-`6pf4t^{kKBx()tsn3Tk~1SkwZOLnwy7|dNutfIys&|Z+O4c z=bhw8e&k!{7hp<~|7YKSFNJ-r`6a{>4sGlg=&&!%W8?9&y|{3*VTkB>Z?E$^xR;y+ z%zS9WvOtG@mcNts->bL(*1!1=e*D9K<6rY&sPJY-kYh^# z#IC4Wei_Fy;&<+00NUWSdhG?_ClVgunl73#=KPWwQ5Lr5oFC?3;eaA2cC7I62&OfJ zxivOopyyUSE-zHsO)s?9Z_6kd%t}(5B{NC1P92hNLxWH?edjVr>9^8c5su^C!1r9*=#p6Y= z#!cLcVIj=)*<|oe*ya{)X+GChkoeYVlQ5$%n#rT_q`A4B6C8_qIBdAiHGc1BQO)yj zAcjJK-=djxrk_RiG~dhl;W#x9aP`bFYB>%31~Hn!R?nq_QX z2tfm9;3pG$312q%kTJXO;KJTr+)9jiE#B8GQaG zRNh`AEc*Fu`1^n7cR&8Yzw$SB|L=eM&wu=HfBX9%zx!*%X|#ss!rb%2f9kxfacaEN zym*BnE)CfE?p%G(z}dc4lesiq&JW@Vl{j(6-s$0NLY^emj8{qO=g*WPRT z^3DPLb81%c?cGmlR*>-%bm=pCTVUj~OZ{FOe;_P-qz+AFyRHU`s9u5#ooEG11I#vvW_8KY+d+^=rA{NS`^RXyPB2zU(&w<@sIwC|M|y%{-6HCAOF#R@NfU%^Wv}cU4nW|I$TMK zkzA9b&p3}+ettT3e}8d(pd81d-@6Xp+AQFx6}SiAgZJq7=GA(8%e!%3YZg|zK5LGi zsJ(0E*D3PdH4DdGPD96g@VxCsw69#3bBM1q7$p(6ct=)D+9)pm-EH?mSpSaVTfESV zyY$YHMCaT@%l3vlCrA&rX44Z0$!G?#3hG_!)4p?3oco-Z=U(9J-Ej4~=S!{9W__}D z4SM~5I;#QEErL)Q6wz5@@~}2blEyrj5c?+1B${ZPlMp?EOYG-th^2{b^l;PGMEa2l zZWZVh^7F%{@;czyz+J87Z;S(nR%=Irk!G|YeeTQnOg;f5N^6GekdPjTZ)~45 z1M!~;l%P*81^Et5ZS8(j27_35oNiAR{Mrl50-c&kvou9{8e9FxegQLvl(t``E+uk{$*P#q01MzA%0_sj2o{QLjjzxv}J{b&E~k6*O@ z%lJzN{?dWJbl@)?_)7==(t*Ep;9Up)<-hlj^@rB``@;U}k}nmb-9G?89QmBKQ z@2dW;JUpMi+g8iVchC>tZC#x5Ifn_BN{nMc+)>ZPoXuep(1flLwy!k@?_|w+XwCr) zEkeMwF9c~zerwp11@B&%-IMRekrGOSC$}lYh8feQjK}E7&$@j&&u@Pp=lsNeejhjS z@E-Bzl5cB1@=3+@UJx(vXx5*_|4l*)z=x46nn zL4HA~pfHEm*bZJLPkE@yNMoAZFI=J1yJ3(ew8pQGWTS(>ci z=mp$C`jK^{kDRIdL31KfQ}4zfbLWy)`REIq4^G3#EOcKiqCvIh5QOx(xw`z_o%X7}RM zfq!GJ>l1fhA2E-;0DoW{e&63YyWhBfv6{)db63sxo{iIU^`kZzSl{>GVLoCO?-}=7 zdEprD|6kv^vsa(iyU%~FJ9p*X`PMmnlK1E<$Mw6>hT<;<>$%>j*VV>dH5d8E@DBI? z2ku;}{Ad6C*Zjp|Q(o)i9yO5-dr`uM~@ic-QN>sF}J>^Sx_)whYG`l z4X<#QUchM$JfqTChL%bn%Mg@yuQMf1i>@%srO-`OxxISdbW{Xkm zJRAhy;e&Tf&a|fqk-4O~zq(KZ^?Oj`g?GAd|A2g6iXl!x&)>&~7gFh`Q)eLV&7#cg#Q`3O-Xq*{aLn-uJeuqTeM9ZiBp?Szj zg~wAgH)3oLnit-&;f2Bq)6~I zV|~nQrg>?k2^wh6_=lSuj5J+9E!v2#E5J0)3rsk=P9X8-R(dClHcXD0!{d~;W_yCZ zX+C=q=3=K$&Y0BBd(n&r@NP`<&(?MLQbluB!&*yfAzaMEi!&FjMC2Y#dbk(6SOvEm zsL&6{!9fle&qMRm`58nU!K=?ihWkY`SbPtfb2HSHN6ii#RyZv2ra8Q5%K0g~`v@}u zqe*_HUz+2^=Zez{@EX9t`b~OhwsY`V2V(~AoPExE;WgHpAci|)j6|Onxv!Cj05}Kc zAg`m0q!xMRg9~2bAjD^0tv0THVUj#~eF@0vXh%SUrDJPO?(;q7Yk)wFXr7!hwa?{p z+Jl#Xe9)enVam zdVWL`rzlPDG!G(K6ykfLsN}tBE?)$&gIht<3zCs*f6jT6It*(s&;vI{l17CIHHA`& z4D`0~LP1|A?#R@UXiK1*|*ATF&Z4 z`D7m6MEY}LeETzFGfzh8uo&|plVNU|FYj$T1aR|`of$25dG1b|(QHcATKN2M8H;Me z?DI~B-3x7q8SHw<;H)Baegl}+37MDa)16D-U`0j7*$Wac&BFx>bXqodMuw$%xGX7@ zncWM5x8~$0GTN=e;U)6u#aasx%^*X&-zQhiWvymwnO;Eus#)=)*=4e|j+IG^ zQ?nUyA}^ksW~|onrWXzj1DQPX&dK`JY&&_-ZnQQUzLR=JGuZ@4AYT6fhlk#s?)$H; ziTgRt=1m}JrX=N^UMTHaBkOYKjIZXY=itI}KR+rV$?N$6p7Wsv2`0H1+5FWH{?aWk z)`ulAc4CLvZa*Av7Q$f!!^nc>)zqgshR3|_xFX=$AnD9L2N~9`&Fj3ePd0_4D5IKP z4*=nL7~$9{`N&Bm_?q^Us4z0;Pfdd@FR{;>@qp#Pv%b#Je9lWVae75FQ6cc009mfQ zMWni|IV1`KpcfA)qIu3w`;7KxpI<$BPVz9=^rHE8e$iEyL-S}sQSRL6ieQ$93&ucEH!S54CkZF|qQN2`N33ghj)EjQNPi>*2DHWXEJ;)}1=KF=;( z?_By(+|!+F2hR83&cJ`f0X|^Z+V@?gDK##0?e#f074+FsQ{yWdl{+U33)GR-k z>-mj-?6*57lRpG`UOqEkG=qSv<|ufxO@UZu3=`OGkHCeYzUpLQ5L!qYkG2WySP4X^fn zr=y|&7Jlwr`Gm1X_DNE1ET&`<9}oMMW|<8DnQ`{nc;&6e@?PF2Fizj^cg~RxQf?(m z_b1QFCx8-_+vchL)VvG%pjkXAr@5j$I>?{_VBwV4y&!)gjVa54i@kF@!alt2<52Ku zFSeou6+8Ef*o-W(?JhWjsWk!6i-!^G{KhyuJnrYWUAq@OuNTd*i}LJ+B@9VFAF2g# z&osC}Kb&9RCyt?zW1z#PKJ9~RYrfpMi8o?$T{X}9{K7Xm;9fD!AQPO!%fpp;ALF=) z_ITCYUTn=liiu#ocr49cpRCmkPw+g}XivwmBC%_Pdvb-rc7KWYN|?doPJHj&=t|W> zSM%;_&ku`xHJm(FFAiIlM=#!eHm|c-6)F2(e^>K5Kk*UmuDD+M`lNaKjQ-J`6S!+u zG=Sj++V}RUlQlWd_aE3jtZ25gcI~XgWUIwQk>^5hH5Bop*%=fBKrbH7;9fM7L9qi< zf#HjN&q;pH?FATfyN1nc8^0r-VLWS@vgRx{W4aAMw*Qy5?*Oo*s?t7_Gs7?pIcE?N z6%Z8=by0!>DnUd=1jUR2R4^_mVs>3~!~jNIl|=*vk)TLYL9*m92s6OsJpF&+oT_@= zuV+Tx|8{rXdr$bzch0?4-PJGA4LV^^!ZDmEX>e$Y#yRbHP|vYiAr5*YA$lk-t@%Te zjG5lKd@4!kc__6{Jg%zfh%X41`xFm_pJzxn$ywW zoFuB5lMG!dlv#T2l9;n>a99=Rss-WH`f?^6M=@tuYU(;WM~GI(nR#V18gWbFbSURY z;XJev6uCsu+S|4?>QiUnc56W^x>YTj+702{Aq4x%TmCvAddGyrTE8KC4!Yqui<@vN z8yc^gv*MBy28BxxIpR3D4c2Hb!hJZ?S+&Uh4_wj9YD?_`Dh&B+mx;4PX-}NC&iy!d zGPWaKn&PEsm|7_DPGa73UCw4r6E?;7usN2@mas{@`Y)dnp$vvq=i*$rP(ob@2|Wzw z+H>7nFowO0dt&rG|G4K&vLe==YnFuiOss4Ma~Ahh8VxZqU)6ci^HH z&~Ro<+9;^cZQ(LD2mY23O(~!$o6i$V(antfPU=^9^$C7kf2FVwnz)baG#7 z!atguom3d;EADWdiA$rRqCdV9v|YbS$hj*z4@34`<^XA$vqin1!simQVO z@dz^gulY7f>P)qlvs_JhSk8?z-Ce70eW)fZo9bB9STKyM&O`ScIonIlIc%{~Dgg{- z+gM^ytJbccOmV2SYOPnZ=ZMXpVK^5j=5HR%CgZ|S@`ev_V8+CY3wvN!EvP8=#c@@f z<;OJ!PVb&e&Im>N#%1qnTcRn4q+>f%lZ<|p^DvY%Wim^|oX8%0N@){;3k!2|#y~+c zV7d=?%`e~X{*pUkI-xnVZC0^sgmKYY^F3#PCWJ6BLtk-+;|wZkXAI5rP`;dsvrNFb zOeJ)j!JKKrroBZwt-zY?IsG~_iBivp*1MZj9O!MnO2{zA z91gc)FhOD%7Xviv6oZ>P=QJwLv}ibsyQ9#znlNEkxSTgJb5IN6SoExD{cAz3aLI*Z z2-ve(hgor!fo%rkwmvm7hFyv?ITS7jjDRj(Tnh*=s4DeeKXWuT&5bKCx@VMHzb5FQ zS`-(fnF}$7Uq2|joB>elC&tqCuQRi5`7&Z#3&rFCtvJ^OihgeWaZBqudB!o{dA`+o ztodNhvI2G*n-wD#ma9`WW^D_%TMNqi?>S->nn$*6Yf#u_XB<=%TotRsxiWG6Dr;7@ zSUCgfJNu$y_UvVNwKtsq%$}irHdD~J@GOjukz8~jCY-^if%>OKk(vUhsTAbowQJ zt#{s!H|1JpS#maPmsR0<9jIZWoyHAk;DYz!1#@H8tl2St;S$VY!FaTXT|+rXls9z{ zjx6J$JN_28-1CV1iOKW5_nJYZp=)kdnE^hpbMb;FV%~zq>C2nKWW92E%zNUonElw} zv1B=L7*?FPejalP$e43+#|K&U&a- zpymwyvc-#H(NgO9D?aOjK(t@Jcuw4K^|kTv{Nr7(VSuJ~08%^S|v z@(<2caVCDtnYp%=B7)(7fI;P_feyuzeV3^tQa1cGgAU0o6YE(&LAr*-X<1cFafec7l>wLe5=mB6f3cYe9LJvsreTHsCaE>#Q2n&P>@i*Yk8~_S|aL zkDTe!{B+i@bgDB9n*2znX(cT^ky@G8uj*_k;}Xzz?Ri2y*VJDeH)~;6={aopaxBi2 zxYg)i+jEYoJu##f=1kU=VR!xhy}!o?)q)vHRMGm^f?DRg+C5jCVcf$xYfKDBsu2We z!e*bfC@uTG>j#k4T{9ZaU3}tYtLss%pGeRt8M4>u2N&q24kWUkpwdV${|66 zhcbpe1^g*&t5a0C)-z7)K$#@;FrG)SYH_=q%}qwh8Dr8*KNF!0xWySf%{gNfU&Aym z1aTTIXG0|C0$D@Os*9*3Yw;vDg@ZXWM$1{XO@6L3CM<-UIZkEHS;eX(Hk~a#?G;E6T8EiwXhUS$eEKg%W&unLb0o8 z17FZFW|H(J0o7TaL(db6X-YWsYGtnwnV0GUt&GyJA7}WqoCRRa20KF#s>u>|92bEO zF0H*c1PrUT&MH9%m%~~=B1+%jreWpQ;Mz_VrwM+Bte?Ql*PN3>7rTe^;Pr!jVrxB; z3dbCF*KdtE!&9|L+%9LXHye-sfl;kr!@X5QRC%ya(f3A9!-?wB^g=*Vo<+fnR5$JZYc;Wsi>JEaHA>>k&&A#d&AE zG}b!i1M$b(XOXCG2x+@w@!a^@anobnBhQRki_M%lcGr)2YjwqaB;0vJ$)35O=M5%) zIA6JZNzDGogK^7^e~I5;^ouy{El0%3U-;jcw;Z5)4|?+CO)q-18-9Ooyyfku#UF0H zFP36Ykhz}f4Bg{@zb>BgjNRkJPo5Kx!Jjd-wus}!b}a=3(NN9`!Lq0xoH;Br=MNfl zQ$aald^fF8$4t^v0)#`=I6cIRW1d*WPj&0yDLP{yO9B|gW8#%P@QrQXHU2%txQVM; z(4BKOC*I-AO0&UW5NC-YcQu$Sanqi7bnM_-M12aO*SJZNK8;rU#4!ld)}p(9(wm^L z3eO_O$sgk4$IXlty;BS8V3YL7pF?6AR}&l{T`gzC=+uIo%f)-ZSjNWKQyi18VstnI zt7x@*j-Ybw;cTq7&NfNT%$Ic-QfJ5*qc{u1GDYAJ1G!>^X^IoK*a_EK@uZbtU`GIU z<;*!-&e^HXjR*$A?m0RFi}@61;t`~SYf)Q^b`hva!y&bR3c9w=m=!Kuk}i$JS92UJ zAB4+-v9Y!u_28zcp+XSad0*JW5E$16qEkQ4ijivr^DgJcUOdxAV`4FmW63T#GyjzK za2|gB+B*0Co-$u;9t_#MH<&DAw49m0=+G#0tXeKsPC<+2NNHnyuYfzliMt;4a zU022f9%})cmK|d_R#)nAn?=!3l!}p@d9fFsQ(FsAw22HloXI^| z8=FTqBQXOvS`m{P_KDr9E#vypSEe5Ka26P`=}5bZ535>x2W(92l0N^`o~t;BR6Gf$ z(9l(lDz0o=J~H&iC`RZzoXNc~(n97HmVLJtwb-&nzKUn#S_8QxmTQ<3aRypqs;0T; z7{e&!PS$Chaazt&%BH~<2gv1!HAT;%_1#)nID|9&Wlx7ewPoY*XNpeB!k0mp-YX zyBd4qku!Y6ui;!MM6F|pqc(?wtZp+}s`*R}UeR?+G9vmcll-@Pv4$5(tT zcHU@hsYZ<&-8JbMGwZ^3B9&9sg9(Db$T2Z)$_!W^61zTidZPcf3z|N<|8MrAFq1f#c}&h&yNFk-zvU+{xxybe!IpPd?qg+XslL# zx&iF$Io?*|RxlRMyFbo7<988%@!q+$UyC zV%|-5TrTn8P33~w55&b60%PiWF>&lj+>9@cMGF?<(cz`Be95v{JbzIvz$26Q-*s2q ze)IKl{_jv!v~73ZCFWiK?ReQi&y448w;mBCCuS^}9XDNhR($Kr7svBoet0}{2WWAV zKXT+KS*^Rno^j2uz7)G3cuY*4Fgnh7`{A+f_%Y_hbA&Y`n#SH-4QHj3+xwgn_v<)r&K)8N@@AoabG}k}D&y z$vFG8r>6FRY;d5lz}Tk`&ux5}v+*pUlWoeSB!cF|!4nr&6%YNYuXBZ1gxdHGE#kA4 z3CE2xIoF&z7;3E>&W=%$(xjnmTx3no@KFs^3t1Y4`^m_%u_g(njyOew8aDB;Bi1i> z1C)wU#L&WrHKJ8a!$pW25g9+VFwq|CVS|p$>50#Nq5iDS{VH}%R2!u?r?4} zh>s==ngh%0rvVvaty5vk9?n%=M-mZX0C_-$zsQsail7vPG6Np#4Y_?_B3?92V>#ED zc^OA_p|A9oNeRJ_Jy)@0+gs9tUX6c1TP}A$J}ll zda)YcjLVK2j#}N_rX0dd&wgW!RsjG2KmbWZK~$cTAmuQ!qkPMyu)8tkt&LGq5i|8w za)xJyDO^&O3w!ANw1>jA&|F%X<_cN0AgFU{tb}Du)~Vr)G2^)*YmIRLF+ca5j`U*` z4u^7XTxg&;UU*L3jN8po^-Wy)tKP-g68dtpD0IUavO%25N|_JgOayaD`rj#sTv;9R2U}i_qE@zlSq?4VhtVLaT(us@{Ir$sZp{#;r6`UDE)cSCS z!Z{MiwJ@KSbHDW)y61ob{tm=oWUZ)7Oy>z_G;uo6W-Vx4bxse}U*kS|jRgBlB3#8QT&E3@t4!Q1se0u}2MKX#aNAVP(=p{;*z{9l{v7b&fP&LhBWoIL8OxIj zdDH>Dp5n4(R$TDSw?-WL(Rlx{hr~o#kBXh1zJI(L<8yv_dF->pp)n5LD+m0#zy=kA z5d+KP;rkzm1+dsTlmzSW8M_EAVP>36PrKzdGYNl?vAIv?~QTnLGO%hZ~sL+d)sNs_oSm@yA3AA-B+9&FWdXDc=i8Y6K~o7DKTlxKs;&N4FbPp(fG6? zXV7dQNJkAUjVnI&>iFcJBX-?!=NL16gV=Rf+)&PB`eO_~_?1 zj1AVG5tAlPj8P+2AeHgb^V)~|O0DZ-58o3XIsM{z=huH5NA0t-Yls`prj4E$yB+X` z_{*jE?G|R}C54mQ@1_wCz{%$R58Bf>-?6^3K;%qgE^*R5N9O9H& zziS3L!x9H`_U|bOzP#)xUk>R)6gC}kXlp?p)>+%(tU@vdP-wCm&a|n} z&H5Dqy5p;jm9{;&FmA3z$(5mLL+ob#fP=9(K_z6`NZ=?!r;IsB<9%T|GL~Gp94SsO zKjEgYaJbiLo47_XqK@RmCMUmq2}-E$nnx3~@ET(zKQ#bw{&EN63;3Fm0C zBDTimYlSRuX!aZ()R;MaTYJq7*4T)%>{^lPh3TsH9IaJ@}%q_a5&F;qG)i(+ zatm^ONQjE6GjYq0JzM3iNpYqe->?_FoH9@nmYYPY;0#;3(ySRV4+!L1%8adU&>^Y! z^6YR{rozFYi^p*lM+!{oSGC~O#5lsw;8wMO(O}NNwd<<)9CKElf^I6%O2wxWm-O(} z_=#3O&gNSjjKEl{=3I77x*|7p{b=XV#o3(X-{ou?E$5sMx96%BI+slb$KvduJ$nN> zHvpSZu3wjPacozSrd3Dzch=A63AMD(^^pS(wKt%2I2}FCqxcfE>L6c5Nv96y#t!j- z&Ajiq{*rjl4NX6&;a9$CcGX7Ny& zamkGwRy-1)I{AS3^p9_i%{N;=?!E6HxQm(*TTfpacRn&lMD{=Mp4fM%^;HKR)wBVF9YEnOHZC$As-9duA^IvF2nt-OKGIxL$N z=bin5h?jgMp0UFgiu=%`GXwXIamH3#;*n0)`EgVUPmz^2Z#X$7H*~x;9>4Bp@t*VV zj^pMokBPXEoHBKCESPm)eB;#L(K0^#r60!2Ua(i}y!FPK-+b9GCN7*E zJHh{)AAKhtzHWLfU$!_NnKdt7_?i>rc{}3KQvlZ=GumT{#+8Rcp&h>^P;A=0tUr`$ zFGKC?T+7>)NMHaB|GSlRw6YFI2qjJ~i06(G1g2xwnP$mIw(^7UU;aInF&wMQ84}`> zfe2_+lQPE~nSdJ&>-s~>p`0m^QG;8Yht`64v~4C2b=a()q-;YSm$Ab2JNailX2pq z7ra8b7F3c>?;fThQT=QPO=v_v{QS%7m$?;od!8UZaj8&R8fntVH0W|}^Y_RZ(5&C6 zLNh1oTU_RaS=(XUV)u;c+tmqVC}&74EL_e+tjkPBI*60%OCGR6C+MWna4uS0fWo$m z;?YMY$R?>oe0TXhxVF53uDWKdD{YgI+1gd z>$~R&LECOEB$v9n>;CW_LjRA^zGKdHj*(Ff{7oaaSWay*q^g4grNL7wGamVh1_sf)@#fe z{`w})P|m7y4`;`7OfkoyTW5}4i@uzdXT}0Z)w$s;7RF@?g@ggE6B`OB&7?TPGG)VY z7DS;8$5|NWS9x{!92t=ZJF+PjWGA*gxaME1iD!QtF_gb#lmct;o=a=Tp%48T+i_iI z0VR*B1+2Pt7FYVRM(Bva=!5s1aA{==MJdkcC2w$P*K(HD;OS3qMZ}Q0_x^kIG!(FtxZoYh@?83Ulye0j4=E!oN=E` z?L(yAT40J?ypIZ(>A7Bt#Z;6(WGX|}0v&OOUgs#MC%ojKsEE_riv}%}t7o>wjSgP) zHxiFH#)A9eE2keB8y^3e*nf|0VT9LNipvUMjfy=EJStAw=L7MaxBPe9bZ?-dc-uzf=Jv_pQcITDfjvbCTGhXuSUGauSc>QO_shi{h+z5^t zyF4Dfk54gO5U0HHl`&(?%9uEQLM*^jQg6NSusCg-SH`zL^t#x1+L&0e?1}ipl^4g= z_b!hu*BcjCpZ|@x`u>O=pLaw&fBUuLiTO)o>N@MjDW{$ii|@QF4twjjNh9_<^p&yg z##3U^qxZ*ylXi$F@AU%TbVA2Rd|859ul!Y<{LO#F*UmpMHlE5G%K7o=qj#fUD}ML$ zv*YGpJ{mv!Uf{<1n{meNo5n~y3^`}!1F_``ULCJG=ovAAwZ=ZcW5h9i!!7UwSG0fJ zadmv@^!LUY_v{cqyYzeUlIJ|hiWLjvcjtaPo_FM1FrOMfx$-Y@*t534%`w&!;ra0_ zd`H^_5BxbkeEb*U#PKJb883U&J7ec{#_N9vb8ovb-u11sg!`V; zJ`p=?GA$mT{a7qoyd)McTM&zv^3}cCojiE2;mAGbO$wp(!|yqr!Q7wt#^nK>yz|_m zvvzQz+OEz6pMMP1+Av;oZu>-`2>yu;S+Rm!%Gr0$le8&Z`@BQUus$g;k?MVZ9Ztd(EJ~I43jM7-eWJS|FZqGiKVf=LxOg-{fjE9*18)@=SDL6QPNQ9Gff>S7??) z)pz~i-{s6g)%py+W;oVA%b7KzCs4%?oY5L0wm(ZTF~2hF+WX-U7T66(e#0@-PiqJv zYq7oT3P4AYU@Q*VsyAmIA*mXm_lawMJXwuvwmLFagF?g>UEwG~a~xvh8zzcpAttG< zIkZA4s3MU-sw>9kobl;PTyk#WQC6HWhDJUx=;chEsHvwvTe8YAa69~J;(EwLam&k+ zp~n^*VEl%lx!7eS0=2j;XAxTE`ek%F3!|+C#lA=l|(2c0fV$+v6YrjfWJ;JSzt4cJz*=eXtAWR3%KW-~@{ zwtThg*Hc8})UlzH0>{I#;VTD?wp#o>21Rgx}ml9b9Dt+g3Dm&n2YZ z@JBbCxIy~qS3edXzu-CX$GeV=b@^;nJRZk;(Q0GX-a1bH;-zuLllP66esEfx_mLA~ zlXWKI=7!I|G^2r$lVZCa^QI^rSIoUTt~mRwc=o%#5ii>3=`rfzo8$CjcaI%Dd}+M> z@aHgvVcYc0_l$EsdwPt=O(YAV^SEbQ)9CoBOV<&KBi7wD^}v2ZbvO$ zOE=j|@#Z~vDW%t($>B!)zQ5lRS6_KSyz|(T1NX)8?vH;fHk-06uD+;ZVVm zW48_F+`Z1}{38~ehduuQrdSPZ1rig5WjtM*l9X!O5>%aJQ)Cp6J`l*50JK1(C}Z_R zl3iO1yA88`iPMl1aC@j!6p}n4sP&_j;wCrQq>Q>A&J<)L=k6uei8z;%+qB}9XM25c zEs9-Zt%3KPP;oE@Wj!Utq%C{m!dq*OUU}t_Gv?Mt!>F7Mueds70;Q&xundSPebXF$ zyMB(~J?CI`%`fxb^Q5hXVi8}h0<|-ajL{$gsvTEhN>WgL*AGVCzf}*N4GQ3Og@IBu zKg!xrE$2Z671=hvM~+icz_vh~IHy$WRK~b3XAm+s*Cf%CGdOi|i8_Qc{8$t^^17Hq zbml;@l{nJK5r|vMEuUu3aaKOGw!MTMbcM4pEg<1H+ z$LgG&dCFO~_!ntU!@t5yQhlSR0Q#nBNc)bACYsB*F{NKu(t2Pd1^bk0Zk&_|$73s7 zdGEZHXK1NAQVj<)?s7IA2kftE1k(=jIwlV*Y*RS{~!A>n&d5)4}BhR@xHqxw4f6isq`d}o}>}i1E z3OsDU_UD@(9@zKIza3bD&pKe^TG>HUjsGv!&nxPfh5WCrUoVDdgE+IsojUh=WO~Z8 z#?1Kt)1K>t+vVJFOTJxNt`jV1Bt=?lK9sYyR;HyBOl;z{a?a3X-jQlJv=)}gxWyQj z^Dwxw@5OfHLAZ$U&#s@Vp^W6~(Sm_ropm~Y7Yv;8or?z^TeM_g!Mr&GbLY+-m^W|U z!2J31)z6!^U|{j$`2)ZC&Y7}(>aiagxaomehQJZ;K8vF{tyr-FbE*~&{Lkl)hyA_- zSKndVIk){`U?0T#>aTC3LDT4ice(`xde%Vxje6CCId=@a5}5z}^Bae^>jKtz;X?yw z9E0EF&p&109=tU#+w$e^AGz(y0X*J2aQb&HGiLdC27W6%T0U#wn;$q*HHmo6!2euv zpX7hN@Jo`Nf749cEuK5@-8W4eIQ3`O49FAy%a<*~HDzg&YrCE+27Y$h;l`XgV_=uv zUO4cMcb+`(>X$w*XG2Wx$6X{x7Oja}7A zV|kR;HmzYZ@}S?IPnRw(MG8lI4brGsIB=`sUgD3ixVIlH0QjnbAf?q7>EC~Qs>*T|`Fx>B;w)~N+0 ztp+2RXJ1N9sc4&LJa*;CtApLu$W!Ji)!2-O*tH3D0`}Id$46KlNzQvcim8+>>s*_6 zfBKIDKmOINis!#2V3#=m>iW@-5Ny?ZmV%5enG9O{va>`)T8zXk_ZAx?nX*r*<`nm0 zTWe)nnp9#lek)HlGEb?-wi;~La_(RhZpYoI5C|)KLrT`mxUgiLgj!=tYnH=Su$o$Q z40~L=>qkY!kdbI~BsuR$8naBW_0L+AZS|QnI!IQ-**-jWt7Jdxgx1C+8=03j=RN*3 zDnuE#{>fRd>8!g__IaZ$5pPQQ`-r#H`oDy3b1jvaS~Hx^1n?3E|1W{2Y~7h~VeGqqXu6zb%L8%fNngjdor5<2ZD?$4?mPaZ zMP1<}Pt~F?XNBrLBsPT}iV0?eI78`LV30moQw%w$fC1a4q=bzb+fQE%{! zWX{cG@Svq&2rd%qi?5zN2fN|cue;|Oc0)Lu6pyqYe*H)g(Mf}hI{X^y9hrw>E5H7n zp-P{=>nBo(+QDTkJ{s3ki!vyC&I^~T!9Cf*=nM%*KpxU1IoJBhK|oMezl7<*nx?|xgv`s=P03m$(o9)9GB z7&&@OtX#G-rfjr+Odq>eobtYt;$t6ue>~~R>*5EWdw1-&_pUL0@_2FOqjY$Yqu#*g zZE-?)H~U;};8Wz&o+7z-uc<;GeUe`D@6UsMf3Ab9C@}!Yl0|!CG^Uk-!9- z*scU@-Y?~+Nx@MFydeuKU(PJ>@GL^0~@lb5RDr-?mSuBp` z%giAZXL`~gQ_(07iC@@)kvR^jQ|+jb(ta)HE?6%nXDzNkRp*jQ2~1s&GFFRg`#$K6 z2s=h&(ULh1i8GWl*AMFM0v1vOV1Xf2VF-rXb5Lchp_~Dj>s!lHq0E^_<7!W}O4mX} zDJ17UdyafNjhA>gqVi(Y?s>_<(|ZoHVL3yWb?E+WRJEXEac)kejN4tmmNPwVkRe4y zhZGcchJ`sKWsH7!&W0*eachfU2sp3tH3K|(jqu(e8_bJH1}SRYJ;yqebF-y}aOV1f zU1QLefTig^TIevUu;a@ogEzPsq-f}#Yq80-+XnAB)wv9W-E|=6PEN4vYRiqi<;nS9 z*mLq{xsmHXv*+ld9FiCraNe$8acfA%XfK4KAwl$TPJeGS%?Z>x4T@t0eC3xLPBY3N zB&?O*K$=t31X2*fDhzx1!AT|^e*)3Je5s;WTK2>m!nwgs`-X@ENGk9yXGY9<`lB<^ zsCfuubjX}e;6x0$hw?m z;<^!vwe=ccKtT&ZZRT3*M`KEDXu35n9rX$++b-uWwrkj~pJ4m#Il~bV?pYg-lV|UV z(ik@ba;&%%W{IVzimicaY%yrYw$T*)l5r+TXB$c`@KhxzJ6f<+914nmyXSI$(a?|@ z5O?VMwODO_aBBPrl2f_^L$Q;ewW-g76i#t$=N;Tswwx15#>|NX9IxTra54*7;4u82 zgB_GZIoJ7@ab)9o$wF(JiGl>kl5cV55aX5(BT#4z#ZxU{(-_%3(_01S!tMqmcyVS< zoIAcpKDMzCv^b}MXyl%AJyDl=_r{k`dquqC(|?F#KKi{l{nh*6X_Ys|NuS&>p19${ zIQY0zdsS3ZN+7VZ+y#p@A|I&f56ci&fh z(}|nFk)uYb9=BY2ZoK*VM}xsevB$)5ar2)piR)L6iWPXu=Q{Yrls{d5MXa1T4R02N zH(VV(KR)}pZ^fx+ofpr-P3KtTi8SC4>pvPR~3bPCFvv zjqmtIJoon>kL_nnjD@rAitikKM!evC-;Z54UrToM(H|lxbV1I#?}qroNnecTz30pE z_BTH(;)Cyt#dyjs--UOFx4$9II^^ZC!IZJ~A3qK^;&Wrv=<#~%B;A-xLrNy&{bBTV zx7;;eyk*4l1+(H$S6m!F{NA_X_m6KBzr5nlvF~oX#FTOPIF%&vwcQfe)xaH6x>(Odf=w`>S-s%`@eo!9P`0L z<1fGcSzK_>-(xvGB4^CPS+P63&iTMA;;Gwh5^p(d?-_(~48B4fyl3&^6bTDVR*-*Z8 z0stl5Ryhcz&Oe82Psf~#ADuhbjD~Z=$()5t)5ez*I-4(#{jYP<;NV)c_HxysFXvQ? zM#fRs5HUfqqYO$)iW7&8Y5L0`$Fill{5ryBNQF7KxQa$-W6Ks=8l<0eoYEaao4}xK zF_3xsh-256a`|JBHdXUf0Xwh5G{CoiPx*JuV9o_y`_<_7Gp9zfdd?1p5Dc0r!M$=& zW>9HACF$CNj#9?OIct=7g_Ba_B4*{!@Wq)!w&Ci`+E*=T=c{Go-f*U-Juzr0N#drx zh(Xa@GqA2hINP={W#N-#@gK~YvD%z+O#$GXpwr?tyGWdkMb4!s$S|DKpFlDfXOHdW zW6QaNE8ixCb`6Mx@4kN<5w63TF>RXz3i{wS8D{R8P3Eg$fDu}`4_d#(Eo}50+6N=z zl0s+wB(qA!)Z_oIl;E2){M5yovNmBM2{chP7Co(wj7_lPM>N~$*kCscO4yR-LP>haDLD&Qei)^X3rI%@(nWD-(&U=8P@Xiiq125{%9ArK zc(Lr^Oh3tp?U*zd9Oi{9O_y`}$u7svMau@P+y{L)7jp-xxQxJ-5tFk-BBYTI;@O$Q z$DGBW5M)sGDvb=CXp^_-!&-k#!O)@UL8ckZg{@iBn?(__k7NKDT4!otBlD^PeVVL2 z?px=KF&I~SM{a{~F-^{?&3V}ZPlUi{j4usm8z!}#Db#(YHVEBvfXp2ylfaI2MyZM|zK8P~tRI5|*HA5B@1BFr z5M28CM-Y=YjsuSPV2pjz!g$$X2gUlhIof2C&1CY($eA#Vc=ogQjoqG_?`VVhlsV7D zaST4gacXR`->c%9Yj=o|Gq#TH@n{~NkfR$;d^lxX_3IzS%MN@^JoMy!V*Pm!#{sWA zG2VLc&MN=BJFbd{e)*F)?4;A;)%$Lto6gZAACB=4U4xHe8O_H6)UtHoJSGl)_b1|> zH+%%|F1uDdbn_MQx;@_*r(g8z*loRuG5hg(F%2IXa^2k*$CXz<7;_$95!0vh(Mqin zdL-R%{h;Cf;mAoF#Vg+SllUMW+55r|4vhbP+W~R&W#`7XpugaVePfbtwpLCJ>@ z-*#oZ;;{F{C-7!Mdu`)4X<9sI7H&9y9r3h%;`&d&Gp>Ku5pmdawvQ{na7tYC$U*U~ z@BJ{2{OdR4q$Br@tFkn&!}hJ^Xn>7oGD%&JzGs7{w+uaC&fQ(&0m_+_2(8+kShl zIHRYU5am~htOZ+LkL+R@rEZ)T$xOYOVjy!IVw8Asng8rZ^WuVUUhxr5VZ@w)hrOamGxgfWm$x%czM9VGpkS zD1=>O(|^y|kA{WaM1Z7;Kp-_q{+T_8Kg5OT5Iu-JoS|_oXzj86=txo46vEc8bh2!) zT`Ri@OT)zFc)0Z=Q$c1d)tC+$rzbY$XhUiN8M&&19|qoYl2DrU;JiVmOWQEf&8bl= zC+Ch)v*&12oMlJ1kNm~DDc2}D#V-Mj4xnJG=fBOErYMA1wfJ*vp%{6a4avmq`wm>xz(~3 zy0fyjmO#9S2(gkL!kMnEzOa*Fg%B5Jq4krI0f*%*W9HDy*)z%=iM3@0&uyDot%u6GT|CSSP(ay$*BTi+^iqPXpYsXMFPuBEQxE>E>sWaCUj+(*pA={jtMPt z`sGKB3CL#X`Z;#PnE=dT$euH@tC~?doSRyJLGw$KIGD5k=|Sj*2SYRhS+;g*mbN*g za|Y_WeyOiL*~SzLgA{=lD&@I1ps!lkA9CT68?$dYdd9gehud?N{6E7vE7x#i48<-2 z>?z3__Hu?Mjr-Mtp5iQbW&se6l?KO`XAj~C(xwrF^Hg?fG_GYH#n~U&2RD|!VPpJ} zxY1hi7(Z3h4fjoy#)zel#WHX(3m!8G^pn?~fgjs1!yEOi6H8*<4c5cQiHwaY)BN<+ z&9~kh51$?%4?cQQY&CtOOc=NcGi3c#6h75;WNf|X{_*_}9}=%T@r2lT?0e$MPrfhq zd(YQn&wLsxeVbpl8fPtmJ$3y}@!qkh-)!DQj=&?r<6`D@7sPIR@loDEjph8+(Q($v zgXFPyTz=05vDfB&E3UPTV|abJ4~OfryuiOY-iqfZG7!xZ;LzQ;CRyX zMRCamKa1zxNsO$6fY~6Hj?<>^%8_xaj-q#X&DQGN$gg zOKh~~{ju{#%#aNU*G8(kB4-YDz_Rt8*uec|D-AFcQR9Xb0~39ax;{LR@hee9fS$cl}twG*u{7wDtyZ zpm+T%rYQ|xKWj5L@U~u+X_&X`2d#oCnw=Oci7;MKAnxioGXdFD?rX@|RcCkxWba5C zOGH4baGex6&S-79b@sD{$7;QGrWM<2_Z-bs3k>@Ho+@11rMb>EhkyiJwXakcuqBj& zC${FT4OMEx?K$8y=LX2t`f$*LE4x-N9b8>i&hP_n9HnVXY&g!el`&0;lrHGqsvh7% z48?$rf-@ezvyOINGtP9hWpQS7;C2a+SSB;{nn7cJ_j0CtgDv-doFS7hENN49mM^`H zkyBCdxaG`igUR98VXjvblF*?*Rp(*QD zzfdKhQVLXvePYq8;f%57JW7}@jobtI!-Tf7OFYdflP=>|9N5szu{@@!jHPS5+w~JJ z!8Cv^xYMkrDYpp6!JLH)_w=b=0L19{_i&~hKKuiNW?jyNO1NhIdiES0=tZM!?fOB` ziCKR*S!M^S2~j@m?NW;DiA^0k^MhQr!|gfawtFtmcsk=d4-M@me&r$?#_~DYv*+lo z*fbh^{z=j1z$xuvS~nY-Qz{`kq0o*|?4TNWXgeA4U_6_xe$O!$f7pui(Dj270d0q# z1Ba5Fz82w_oGD|IoH8{30gA`3Amrm%{HTw+@3=H#-@Wk2C-3z9Xc-20$5+1Oe-Zzb zQp217=v`7-0lp$})QDyAz}+{;vycAI`1YqyjICp4eC-+_yrGEUnWqDIJ}nv_g=6E> zYe(aAI#&)XuTNirlswvw9QhhfK6Q5)KD%=nzLxVXU-3lT70cl_dUR~~jO#rsIrVqCy8Iv>5{>q1A2njD9}^)qqfwMXD%SMU)e+Z`5Ho^V90 zjgKm=9AU23T(gM4n&I-RZ@!Y7}{PY zlH4*NJG$t{yHbC=NvO)280WHN?>2bPmD;groofSgQ9=;?!H8%**9GK2YaZ2P=V+_F z&ViSxr4K=bLlRVE&J8Yvsu`7?I4$S&hn_gDMP?!ag+ePx33~GB)|t6+j-RRqr-W#H z(nL}zV9B11I#}254s%}Bo+D?4QveJd40!Tl&?Y#QXiAd<;`*9X8TEo0q4!Rq)|L@jP!u0Y8gq`h1-?0BBBMG9?lGaMfHCG8DkjEnS*(l2Jx92oBu%55Qjds zNM>a(A6eSJ%ehd5V>J*tUbX|I+4>p&mqVbFLNXL8cmnj!1g;hd2YqoTpj zLl(e6AZX$!G7fFwO+vUNMT1pw)(*=MFvj=4wdVw3&f?f`F8Y*atJ*54<)*76j9Oc# z*Uk%qMORHB=w>O)!F!G%uqS#UHUBlD1PaO(z19!lIh01Rc!6rTw|f}|YQ_)>u#Br2 z6>JUX^lhU$cwxh-P%0$n|95+i_})vTMK)~3S(DYSA06PQ+!8@BZJm2KW8#Q1l5blU zS(*Wbm9%OIY^@*thv#fJ9Gmsyup$6c7_!3HaxqE!mO-&37QfR65L!R>Xx%J@hFCq< zImPQ*k%H$eny(Ebbn`S4Z_u;wk^AF^@BDrod*;t$%PF{V!P7-;!_Sp`Fk;UQ@u(-{ zX#7|X>iETL_nCpufL!#zqF90ZR^HH7vvtkz3rF{5V`B8^$v{!6 zRwhSfjWId1xm%`qob!g0ZQ^>{$LmkoCtm*XpU2w{-ZM6uJX)pZ&9L662R6#OgUg$} z5qjew+-fge5-T2GDy*1uN8Eh--{a|8qp+1L>n0-XPzo}GRyTTj#27bk z)7J5$#0JC>Po14KZgh;9FfrD`Yg}q*k3{p|3nO*I z&qP^!pt_DZ;(W+?!di6dtomp!YXYPJf0wt$PS}}mFYX-F)&Q0CP(=_}@h|vdg)*s}BtHqQX z4#g%h7y}|js$MyA0;y?2Proi_sGGXf%CuI@xO<(WdqOoFR<-A34gNxGaxV;WX*p}s z5G7}?kF1o7{gk`r7P=HIXJx2ZrT=&KT#HM7%A^RHekS7y=@0omrTqYXa+ak@cUA-H z;tT_=qqK~Qnc;!W0fB5$=eA^h>P+u{YyGqyjK+{A(K4txlTI7jsU<&*+X}Xv+dWr) zumVh;GHosB4{T?g6LhQHbFffc)ztoQL+j-%Q48M2kphRd@Co8QX_#(iH07LN(bckgYZ6cDg}I-G@V-1-lE%b9kH&M1adT;c*vff7^s7A||pZRB!cQn=!rc!fKZ zGXwO)rU$W;^AKFpq=kPJMjN&dXZp(8RE^8H`9poT&H|&_wJ6R+Y4%*h85jv8CWF?m z2Ul>(m)M-^hscmiU!>SqYqBf>nKYbvqH_J%igQjehpZCNzJ(;A-Eqzz#FqdEKxs%c z`4(rW97d58i}R{QdPziI&J$OAj_Z@y#hG!soRwF@*;=v5xRe-IMh)k}HJXhJw=d`9 z3Y1Rk$63)~1D#-93t@APpT3+?6LMv1Im_7PrkAJ6XSnr~e+pV+Mz}~TY zIg2bgr?;}zoYwv^rgPFC0ZCF@q=z%n97nYvW?~DehchJjrrP+N^9TOu{AeFOHDNMmfQ?;idd!%fZ@z<@QoL^t zT9dT)Gwu06T;S2ZC+04UMROjH`E%~XBXD{`8Xe3pdp;`48%Is~jJ22%<0tt;CRgAy zD`!3YkC?M$Aa;A%i4iw^IxhP2U9#otCKoPRf|$NJ);W+^c;9y4G!HC|+poSLj@@*p z_|%nC<161iCq8o2R`I(1pB`^L_?Yb+d~{ zLgld(kIt@K9{5O>;A6CS`&`wQHqH;O@FgnyrE?#RZ+`F?-Ee;C+>7Jodu6M$>9 z=jiLKn~`=Z3sEN>GgZE}_4!9D7cf&u9LOXVK*}sqy%;O^vR0*gog+M)?U^{}XjgPv zu8^b&bzRP0cKFCwpwMH2){k>@%~urL+qOIqp~Jbw_4+${)`MXb*POjk#2y%y(WK=} zWB5`4X<-Wug{4Pv&J-}G3sKN`o$Is~7hVNM3}Ml*mov#0l;SgppcO^-#w;yn!Zqg{ ziW71A?>Xi`x8&>@$*38hxP?tIIrHf8s`gw{pTc!9)05g3mrPpDL^r1v!xGs+YtFQ* zpVG50+#=eKGd&%n(kFJs#Q=>s9{I>Qf3n6@RtSuZ!|24tPj&=D|2mY-9Bf1uWF#Qx9Ezzq`Bxa2xFMEPVFF&KR+ zkbzPpK53aEnYk9oQ#x32P@HKjMqxHyZ|P|haXqW0t5!%g|pi#0Ak_QTi0Ry@MT zmM&Je7F@qxii2N#czo`+5!0qj#oH8RLk#gn&zq=Gc#109_z9!&DBqoN zSjC!>X?M*P2`-}|A^afx*@Lk-G%X`Gd~bh*I7S~_}YcRSLohq%jbw+$XMCLie>xgxH)_{VY1um2eHaHmW>uAiHGhTyuZNvEKaS_nPmo%4i1{xZ+9 zD`Xf;BwQzvCXUv40k{A4(~QijMfHxdw=DoGb@Hz~Aoew*(-(_ zXF1XtYL7bz!*FITVEcc$=TvWS0B$emsxfsKzZW)xcB@lwlecu44*!2xoJ&1IO^eQB{*$a+LuD zl(8{hXZ`wfCR#O*#92J)51oSPV8g0~;=llXVYgPsqQffpoE!w?P{VL;ag%~O937{J zvvlQQ?7r*Qsk4(@1J0@o19)Zo?YW_~5TRts7~S;)Kjy3=vco(nukJiCs*lanYl-Dz zBq(N*B`D2F(5-YNgs}=jJ}n8^6RH|)d=E}v+YwFC1gnE{Vxo#=JEd(kqP5NZDEa3( zt6=mT%!Tm9yDlcGg}F4*L_~*P&RL@&xJi+}#F<-D3uXjex@DiZ(%IhODjs@&H<|aY zACu^u_#J3W`bUn`mnNIV)6|s8*gZAL_Up z2$b=L-E$7s)Oqka%e^odK?SK$nza(!$x0lCUq9OPo+qp^WP>ODzu9pWn zE7qV|&`P+8sf!J4np!X-bj88Fu~}Ufnz)jr5#<~TlD>)|>%@gXGI?cE?Ao}w=@dAr z!NW*$=B!nu9R*x_*!f$gJ)E^4i*suvD8i# z&h$3tS_oA$={svjFu%5rvKxl8b;Kom9+)ea)IE>O7te_+&-+g7djuXSJm{o2_1G81 zBs|Qye8KFv%^!@YsX99`_1^z{f~?teb zi(mXy+`7{NvG>j!$LN*IV(}6@J@vuc;}4hpKE8C^iE$}V-u?L>#G77uNNhe0H+CrQ zXgt03z+>JK4?OeP@x!nESG?`$gJ88$eCW*g#CF?k8M{1f_t<&M4P+}4IN<$h@l@Zj z`V3LYT;8VMtp3O`6Y*M8JYBV%G_v7JtOxE(#mRAT*kK_ia7EeABo>wab4`P!xk~~#>?X!FMMk}O@ zud2WRc4=yT?k7g#-ltd3buK|GIxXn<&t2!}leqM+Jq+v$UtGz-=aR_K7_P0I-HQ!% zG~t=Z8DbB;KpAZa#{16}Y`saU76(82fV^OHQfp1C-#MaAMl3H|3`f?tOn@~wz z0VL|K2O~K!LwH3pNAC@ZC9m*>M-J_tb2dGD4kGCV;XOCp`q9J)7>FbVojMQ7t%tLd z(z*yGf$ATTU2Jjg;L_eQTDkS^Ij%RYcrb8x{i+r%=Z1XGI?FEo8HF)bZGjJio8bNS zoIQw9v=W0n0nQvGSp{e1t-ShkHg+3njX8@IFcEu=&J*p&;*5A1a@h47!ntaoz{)*G zuJamSGvI~T!je8_Z+oS z#38mFy};mAvFMlwyVe06+jqL_t&y za3H~~GcnlMRV?RB0j=!Mkt{8iPlL-@!kRNz1x?s#WpK$Fzv5gba-ySSYAPKLz!EBO zigOvN3go3EXquI`8w8buJbDibLIVcsHYp$wfzFXOL)WkCY2)N9*j~=M*bzm%x^=~v zJQ!NK9@Lx|mj=FQk|F$P4^?;1(She6Wwa+OTi-pGu-!c;+dP;v5Euu+jHbx6=-*_X zQAw~`XRLH_AVWXRk4Bs+l=4zcNv!E0H8t#BGa4)4$`AWHmCt&)%p?86n(Ufi!l89!CRbZ2aY5~L^zBbxiaqj^Cj`I zcf2*eiO=QO@`#h-ryoBhc396(T^+e%Zk&C}?(y*p9An2LKNPRQ=X2`Gwe%O3bxJme zdZ8o6G z;jLGlAJ01Y_0q*Q`^4K{v0t3^gQH@{9e0eax7-{zv}5t;A0Ca>!-sg!-Tyc=zWJeF z#c_x19_Q_~Ui>4b$8pcy0gn;lCVK8Y@#*)zKHmS;ONDp9Yu_K2y!lnJ7d{&lZw{NU zUDN=j9T^*Mw@19|V_%OK9`@R}0Pp(x?)T!RJYE`C-uyKAE0~S>S znm0Dpa#pT3ULK1V|2?k1d1kCQ7>~l@^|REQw%3H~IdPqhTE9nEA+kam9Jxj+Y&K67XIT*PM7rOdm%M;4^kq{Nghw#Q;95 zbc+d3#OJ?yRlNDr?~6^fC325v;yO3wMJD*+e#m-oKkz)JVDNcDsZ4R;wTR9{?q26; z)3=Exv5A|0FsxW2f&(XqSVcDK#d=r*P^#Avs^?XoE2v1d+c_iZgMkW2;y; zPVmBEAllHLDjIPtfmDiTG0$D&>6&9#ddtvIDO6VmU70a`Z7$D@!yx$PYk=93S~JmV ztImZBl?!D4;Nh@&g<>ic;3pxC)f`)cT0a`og|La@S{Q~JjTDEo99RkgTf+9c&Y29Y z(Lk>86UTPX6)w#hn;Ix)?t}7UFIXHnuHs=@YsPcCFKz~*%TUf#Le9FQZ}(ir$$H6# z27?| z;98_r!#QhDlRnoBirE@$4RFYX@Oh$)oj>)8g`<*axtSC7)Mbw@hYDhs!JO$p`#$Rj zXV=+4!{O>;D{$spwQw43eVPc)#Ub&#*((EUFGmq(@@;yMmO>#)Bj&PGsZ}`Q2+l@I z0s;tqGGKsA3@0I!*(wZT6T=IkQA1jEDI$QdjU}rtXK^72TXO1*41pu;IM!U?B$4sy zDm}CfXUeE>lOKo4Sqo@1SFs2ENaq~0{-%ajhgXj=Y5GD zV`A5duX(yRoN2=e?07*|9C}Iyv6@$mHhwjht%Ob6YKg7XiDfh8W0O^I&X~-CZswFZ zBrX+AG=MAPLT;B>IZO%D1GHe=;wjPv8-X3JdHRtQ#w1TBmPc>@*4fMiRK90g6M@*;PbCh{6 zh$EGXN}~oeaZ6*HI`&&X|C0l5Xw-`hYc9!9Y-y77s@9MG-CB}^6BV!t=8y_;#DOD@ z`7W?*zF{00>#jdN*4bpM_}JIah~thvIA%=XKzo8CaV@ZD8VmdeRC?{sI z!%okLAD?qhY_h{HvDro&#)j*!lQ(Mg?rr2XV$?eEs&{@iMoru-Uh|&M#z((w zKQj(F{P8HN6J#h%jzY$IXaccKwfd>zg--UH0B9p1sE&F&!B7dfSnB>N8hk z+nt}De(pw3+dN)>+F3CMHLf*@C9~rt8|1pFiB7ja@Uydcjz1O&K6wcVP@V zPiWE-rypwy0*oUZ&Sa%{g4Dro?RnCke~Lq&h8JTLa&nQb7nf=I1{3kqURdHRGUB3D zZ)#*bPE{A1C1=(Mdf@uy%8Zw(y!~7x@Ikf z%C#dt>WE%A1(tKVt?qYgx%6K@ucYc+9LOv8k}6pXIyf=Rjh*Yz|8Lo!YPd8>{biEhK0Y_wuRavTo95y2~* z=8$TwGB|Br-7aTH=?6z)(FPM`%$j2^4GpScSaSJDXK(w$gRm6A(92a=))|UM9b88h zc2(REw&PfH3l)GvwIQ4#?Le2y(Dfq)S4Er?PMn!P`7^4MfEME+oSmEOq%$k~!hVTcLHJ0(SE6oB%YZUf^BMeQ=2Yahfu`9psKO1H4zqc$PQ>j{cTM+0w~+ z0_M1}Ge(ad6Zs~9b%^gX1-b@VhCRL&0KL{`5NFn+a%^$wMEf09|1gk^N`f&y={!z!*aQ)@xf5bb!__z4= zXP*<}@bt4LCt@Xic16c$P@naK&9Hk8iuQFEG;HxO>)|}y`qeVEwMf723MMWAxkY7* z1A8V`dw|p0!yL2GX5pfxcyp0u`lyPf%a+Bg#}?pcemwTXf|xUJLCjmQBo-`Oj7N2r z;tz4WGv>18u*I9I;1*tgB-bDJ_yd=J9lYikMf=OwhY zX8z3|E*NW$W1W9QDI5;0HyXzhXo}e|d#=oM#e|vsAnYLba4vlr7U!Ns=+DLOG%Q0b zShNfQmd6vb9*dzv?6 zh47aU*N{KFVe?wzBRH^56S0nyu%1)!Q6TGJ9oJcVQf#>1+A(6;f|&W}+}LF6ZDPY| z6XBD0V9CwD*jl1u-Q|v$LG zuuWgqnDs1d)fRqQ1>7lC1$l$a=fc*UELP$TjppM`i^kzm-EqiCI|pX;W?VkfJAdB% z7&&fYOdLO^xeidT)*TR7^BTaP9~Fbw%JK%Xw_<#%GCs%#u@~b_fA|JQOK{%toP2cl z{FpO;Q9SX){CHyCB0Rdh7;n}zA|89-?)c4B_r(@FZy&pDz83Tg@Dyr(iW@8N>!@A7FI?i9P7}r>= zH?FbEaSdL!Y=vxB;_g*@Q~B{V#e6OFs2GFu(bw3qxW3{VJ84|3HF<(wPp!3F7i)?0 zm9O6(i;w-8fVCXcZ!M8@Thpv{w_a5S76+|gEm+(<-8hsD2X+~{e#Xf)Y3#gy_NN8( zm}t$C4`qt43p`g*T8d@Z<4YL@X#F^^YR~oH!are@<9j}HRqVFIv^f00?eRKyaKN)0 zIxL28W^8}c>fh&FYvo*tt?YVh!AJ;Kyu@DzC`bm2)vI&uQwtq&`8|}gN)JP83`aj% zL)gubA^X+2ez&$P1TZY;e(T3V*LkKm4QFC?kj2UP{W&XJIp7NPr-JWI*DegQO84NP>owAb+@>Mx)dDBSr%EgtR+0k~BJQ+p!&4vLsuU zB}k}2r2rQFB^3| zhzy6qbk{>HGHO|y;Ykh|o3s1cSg{dCMzRtI7@|%KHvYz}eXwFl-_1?|Zq7^nz+N!A ze)zS!_u}9*G!{bpX~S}PATuxlIR&@8O9gsx*VwauTbz5&{Xi`I z1?4=ikmo#wUBKRH6G%pi?H%zYwIaLjcl{RRu;qC4#Y1M{?Q42)efsGa^`PgaaqjFZ zv*%tOk3Ml`eD$&C#}^+t<6J+fi_J&R?-_TU(uIZY)*aQI z$Rm0pV4ps;hL^tbl0C?v1MAO2VG~hsFurl?{f*bBpEO~Nyv(p=jqTm92lD!}eB~P~+34cz*ooZr1&fjeMf+9#43MBotcm0f ztm<&Ez8>b1?y5eaeXVC8%X{uVHID1z zhSu}+yme9K^dZ#rx^B#r*14eHGVis)ufIq0y5~7N<3(jSe$ssWRm8?72>SIo-_*3} zH4{H#OGfPijjLO8X52FGwdr$)mjq)LFRgZ$^nJ6BKlOrZ`O+D^MEgmdUmw$X_Q{vV zLpsMk^1`cQ&y5GhJ*wr+sw2ncVVzqK>)7NRyKmn?e}&OLJ+ZbJ5Q6AbcM^Dooe0bIcT_cJp4O(B%_1)swJu?)AVJ>m@)98ac|2w8maz z5flg?Qt4@1pjMEZ7&S)Mj|eUE9y9q|Z_VLTVOHKPTunzLJ%3c-YB%TavF52@$wh2! zD#N$F=8AKY;9x!qj74NMc0EZAW|qw*N~_xp7X(syXS>}w2fK_DM2@&FxRhW6OW-*T zR<$rK`;u614uuJXn;e+|t!3V8#c`AKx_&@<7L{k|aE!7aHibq~E?b6zkubMeRF+%ZXE0){iO z5Vd^P&%&6pZMT;6x@g_CINM&%_GfKeBNse)?K_=+?SIsr&cFG6zKg>lGS`#*dt`b= zYI1IJwYQD>WtLi`LY7U=#>HuC&B@?fsh^P?bg3T!nG18IUDd_I`SY)iuRQY1`0N)R z8IL{wj4n#fj^945yCwP{lMmf`WW4i^6XUj%$Ms<3nC?j4=sT2r;^qx~$II`p(}N$z zIvMuYRd6ovb(@Uwm|DI1%bl~_4dw3BYq~R(iy7Vvr?1w~U7{EDZ2z;*pBtZl>ZS3_ z`OD)&x&!m=_Z=SZz5kZ+jc&{Sm=YX;rP842pX*u0_(hF5f#>!GhbJwEqE zYWeK={G;c_$DYz1FV*rRcO2CP;7$5I&12*Ev7^3=bx;pv`Ff1KdH~BEEZ3Afe6B5d z%-s`~YtIU%#N}AgWtobay1IVIbhqX;)iX8y=6LnOtK*EGz&P{L%j4M>ULK#(#qODl zSI4*CdT4z3z9Zv3dQ#z??@%qj?E&3QJMOzKjzJ-5EF^Yp5Uq|sM3#A%jKH%m5~G%r z{g&)zE+w8A^0!HAgKZYnFAM^Oigm0Xt^6X#&VjrIHW!hS%cK!(VNl5mH&{z8FYChL zWxa~v!LOVipMUVt@%R(Zjn6;w^7yr9Ue)V*zd649j$`9~t@~SiTyh6eA6TRd)EiVo zABP*qq%KM-PU>3uF$Wb-ljgX5t?!yqL-k!l$@yerYRUeBE>>Q8`Q`EAnU{6<`mEO0 zSzp|IC&%UeI#=9(>v-3@?it_lp$EpPn~&*9i`-piezfFpE6?auV=S(Ho{QEXwo7kH z=?Gz6KkKxyYPb3sB2}@C#w!-q$}LTu-Rrmbl%>x0PA|t>WY^;C%m~PStfw{T3U7`5W;lb_bLsPsL>tXEk~HT&{xE7?l$&{O z2ip*2SI!f`F|WlLZmfdLFY`wN`OcpKw6R><9CMLgle7Fc5aRq6)*P(T!mtT!=HkuO zZ=3UiOV25&PIGq5$+@JH$l{;8WlV-TXVcUeo1FLPgybdXbAL^f8XCYFk?Pqy?Ms@I z)`Y^N&5$!PA%N#dwi5D8j;-6l_A4Ce!(r`-K3K-a<{G$;f$Pe?B5q({(G=EboBt%Q z$9c&GC+u(z;wEk)`57$7jP`oDfZ1E++yy6EV|y7inL=#bC8N7>E+^N@83%UaI&&Mi zXp6G~Zeu+6spgS%{7{>NBz0^`9I58C|l+P|xd&Y#W8 zYx$?`3mIxGyEW%)t>tUw;(DAjCH(*4QO7f;J0|$Y7V&tP*d^u+gBkwwJ6gtX{dG@16YG6XRo_{>u0#|Ie4k z6ED9uZl{)a+%)de9YyY5oY0t;z*b7-%f+PPkPQ7&lDwZ;fn-Fy=H+u1X2sK4p^w17 zQxTQ|E=f4z3nH=cZA8wF@)ZMJ%gow#X#OMXtQ-@JI)&WtsdJ8u9-U?ESUOkxMT!wUCVQN zdGkYGePaCPC%-&?`8WP(JgaNW+i#|pH;+4A%M;`H@uPa_q@H9EXlH^89I!ket|JSV zz2j3;$XU@^jGC3Z2qqWK!#?N9&v#@{%9R+#MXo1`xS-;=eD3)(b-hD z>kohAzVQ=3@PYAx_ue<|x;@_sx}9S~3Mc;;iHC&d2(|4o(ipT^F|l+T+sm`oT)7o4 zc(pc|&+>?CF;gTMbbdD0T*N+RIuAC*M}n^9nX?yE%g6P}!4Hl9<6~bPFJ9KG3QnHT z6F(=$9k<@>__Ci+I5(dC#!IT@+3|#q&qMk`o*(<}2gYCe{tt}zzvq6v;w0b6YhQ!H zxtKJWVmA4ibNCUw%{t4LVPk61uIuN%-Lar8b6;abV*_C=XsO?#ZEPPuO=g>OA#}3Z zY#TSI(&~5ji_R_18t%U4Sl`WAJ#{-%@J0J(9vfl$Cw`n5bD4+fY|H+X>!)xV`S{ab zbJR0!nRlwwbwV4XHeKo`8|7oxuT0;}c`ng*$2A`ohT6oI>F&9Rl{stkr@7`#=nZnQ z<}ALXr_$&7XrqZ(<}u0~-J<1NB)(001h*8tBP@NFUq`9&uzA1u|6GZ}4X zI%&qWoyI+&i@C=dz?r@Ui?7++5Qj3JXX?OB>(cMQl`9Rq4xc-qCAC7DE!_5LC(j+6 zqOpTBa$)V@{06xA*maFda7q6p>IXPeblc7|x}MNF&u_$8V7uq}Plj_-ayDI`@LblM z{_*OcJI_vj{!7n{pZ+@!j(`4h-|zPm`Uru)=cb+KpCo8|?fNA{JL`vhD<3nTZ@A{( z;&DPOVe$Zk`F-lMUm3sj&ptDL_SYU8-*fND@jc)6_HpXe&3fO@VZFzampba*e7g9S zv93RuotpO5%NWtJk}Ru~PCYpM(pbMso`uA(^SO;`l|8)XiBZQd{CRNAdzP;1nR+f< zUVcR{0eb|h2sAd`dyS@rqv7`ib9tX#A7^`?KTk{MM7>Uwp@@@ey5k-=YV$M{Ydg z_sdeg+`*!j!O2<{l^XXPcJ39mrnp(Z%mZEib3o98K)73H8O6X(zf3)FvdtYg?w0TI zdw^5R^W)LSpBjJf(~pktzvtli=#RdC{L4T55kCn6a36zU8O+HnT)=6~`M5wH-PevWdCIj-?!2)JrZu_Q?mwFaER7 zj{o`N&y0WRy|?QQ)BSp1tnT9LF6QAw2f3l_C&gaZ#Q{);GZ;YX)NwKu)MQezf$c2D z#X8N?s?;le%ry3Z0JQekp87e@?75?tJ8-Gxm2qD04L+w=DLnk>>G6+#@6qui?>IXC z>W_VJ{P+)jhwri*4VWV8)B#U3E*+mOvUNypLKvl*h3RJGK2vf|rEl|j-UpjFohQ2B z&`g5;wQ*w_`yHGu7H7pcua}np=EuLNTK@j{h2MRC{G|`wH9q+6d&f;T9oISbi0=NX zmWsm@X@2=OG0Q(YZ$(D4saK?w!Q|=MD3;~8tIu3AKNoiD)B&kN$VMZd6K&>^bs+G+ zkN5d(VJ`5?_1^U#4u-_{3c~$6PSPSok#N{F=m7kqmT*+C$aL8DzlGq%9#F? z5G@16fxdjb!C7r4s|sS>!iNCH#aBAhk=vW$>|`-FqT=g5F&&squp`J;Ht@5Fr=5Yj zy|L2H;*>>{e+-7yX5n1W-d&TkadD#~@Zy|2ZRdg*Wf$v>Tv$c?6~|dWyH*}Ia)Dx# z^K{3q2I|VHu-_7A8PBA8h8vtWaLo}qHAj?0by}#UhrLPt3Oh7aKe;sLPDFBvvzoA( z2Nzqs#PD;v==_g$(fO z;bb(P7N@_ex#Y>c#5Cf?#C=cM0x4t&2a~|ba(2#!b~pyYs{SY4!p5~y{(7K>weQsN zekSwQdqiKmGM;$y>G7+d{_?nK-_`M7{RclZzW>jDz>nE-j5QB90iIoS8K=axmJt!V z_=R@Qd!1)+r?Gp1-(}4~zfIY%u*n8_Cr?fjdSrN1?Jcr?kM8!qJbwNk{Kojtf9Xr( zr#}3)@!=1>(=VCjC9>Sj=B1FVW#8E-hRmCgaKOeTPM8R-Q2Y>a{H`D8GCxVsSl6nb z>usjcUvLxEGm2Imi9kJdyxqY2)8zY_E~xmRlt&+Xa{OPP`to?s$-U#h`1gN!eD6oz zZMPg302ll!U(9Fb5rdi!T{k$()ip;D7jX9`oH(1e(5a`ng1&DhLWRx-R%u=Xm33P8PSjwNMyMn?U-Ua*_G#Rsqz zJ39f_^+Pam)hE_tdav!@`uTr8e(vK>j(_VT@6cV|cjyTqeR{FZRrva4%Ik+)%u&ap zCrlqslO!H+MkXc%*ik>6;P0JnFoV}@?rS3j?g`epC_@9FVw}QLZy%RJr_8vU?+qlwpi^*a`iKZ_`5Km!i z61#B@-kS52fLG!ExR1x1_M7J{%gP15o9AY7JSXU$Y093QrjIxS+xEsvsXVvf?7HTf za8MGzd^hqOB9&(u6z9}-sSRA(6lOHw*5`~E$Zo|k^|PgncdK8JcGhnb`&;KM)-$O) zId9-Xg-L$PYfc{vlIaA8EdlCCbM#)2Np!4jvQ97p(whuxUl!VRa-A@nRdVr=o#V;Q zQbW*#N%r(P$lNmfj3jbcINJz8fOc|jTN~Owh}zPzA1FlXg|pyJ$uv)7+gb+5ItHW2 zT3RXDm9y(T&3opFint}9PTZbr%_fW%&K-B5vEpo$EzTq@CeoIzcDvS3v70kAdTqou z)mn45#E{x3j3du*E6zP98!WhZ;Es5WJI|KZ#)3R=bM^x!+1TPbYc9+cM3LqiVyL!* zbHJpbBmH$b+oU!!v@L!;n_gi^Bp28s0bJ6Av8!_*kVHqfOZ`ytK=2hk`~E-t{I86^ z@lU@t{_CImzH!Ix`pN{N>%j!?@6mJaL6a@^5X?US*o2RSo~pw%7kJ6GPw36Ds2O9P zoMfAq2jOADj$>SJBx_uCk{NA9$6|r^%Y)(O_nLtqgMIp{j(5KOfpP!6caJYV_?7X4 z|IsgvU;kTU{NSJefT=VZgM{#`Drb^N?rFn=IOY@Eu0+eGA(LfJ1-iZFCJ0!r9|*zT zQNN03Ece6GF}3jsULtu$pJw^r{q27`{^6&e9zXNZzc_9^b?dmQI(98xSVD%Gdx@7I z&L@D-uljk;9mk5;l4o;gIP1s2j1V%Y)-t4(Uuhf<3uBcja%14H_Y-OjGQ@VjK27tz z?|J8V``hjvzyG<1#-IHU|MB>pzw@t+@BQ|7mNRj(J_C+pd~HCU-027zt=Y95hF%*| z?yMh5X|-F=0kqBfAxWF{tGQaEO=1g+j==IDWY2g`Pagc2Kl{t$QxCr~{@aiKz_{g> zn^jBMaa`(7wl3WaOx-(5&&naXeu^+TI+3__Jnb1$KmBABMu?@zE>@8kH{v-51ti97 zo{UD4g;mjz712>ax;IO9KM z32Me{nuPn7PFrbfeq|?)Z&bfT!joQ2(8+BXm}xm4%*+Dk+!OTf&dvB%H0`dMH{A4LT!#+p$*uQ~cfaF4y_Em+nd4pZzz+d*6BI#J>LH zImH1w%eHY%uHdF@gL6lzH2`kS+Fgh3nJ=8pw{RW9Zjx4li51SEm33if z3dEDsE}T0W@H;r$xf$Y4%-}f3@Sqhg2<6f&qL-Xs>~g+B99z)wF>ZMoTO!A^rTT_Q zK-+g90|Q`br=*b3@O^XiX3o9tGHg zINLn9o1Ej(evN9};_O_(X&26Li|w^Jvvy#YTr7E}M_d4m!QPYBY#Ue3=prW5G`8_Y zXJ2i-XL8mpdMgm`RzJl2Ra|wQ=QZb!kbQIRc#;CqVdHgpY)dlCB zxBI1;zSyj1-SsgtSs$|J=2Pk?}{!7k#QH zj>aut;fF!x*}&*pFRcymlT7#w)37of+nWqyVc5k|`uXWd&Dl8Gtk+y*g{y(jb2u2h zIrVsqPyOCQhTUpX&a)k7NJqvV zF%aI*`Y|iB4vw+mrv|n=vcS(HNeTmry0K_nM!hDq=WfuI%a?rz{<}Z&!SPrB+&jnr z^!I;DUnOxxJPOO)iiNp@+qnt@hpzfLzN2PNP7wy?Ncd(73jPZ=Jvc|2&PM&L$h?DV zSQ*A^)3t}YQ z%d`?*{f+whqy}yjSsox4XK>w@jk<7v1X5g(#3H)p$H_937S60k)+JvB!h6I2{P%u% z{KWh28Ncw0ANR}SQ%fTox3QQ1Qwq3UKaqk4Ugl97S51A`nR9I+&5zA0iiVn-WDx50vdoOk*2Q13)5~*uU}{pB=yV^ri8WKl!3=*|Iwr!7~EC~t;;kuSrE|0@{ z3&s!qg^%dN*7e)Svs1Rpa}yCGKQs~QrT z$etNu|IopMapNY>Hn$VKR^Umo1oyhV0WIuL*uyHoNLWVtQ>(xOZ^xIQKIJT z{T63~<0iR%5P;R3sUQI)(w<%8!ZH0tV*M&!;~Lv$MngR73i#&Zabg79iBmsbiA_*z z*PJUC$#ZiK+l4bIg$qdi*?JewOcpEWf-Rhp0H}@sPuV88#Y($Gv8~LF!9D<$XF;s% zXGAt(n{9k2XC@~!a9b}yjAkxkVWu+2ZsDvx+$0Q2ka;bINfJB8q=XiCdJYMoNyI*U zK$CqOj8i7KZQvSJc0td!r$o|{Fl{AlY|D&j)b1Lb@xYoG@#}shi5(jm+Qy4oeK@aiVeS*V6j>`m6hP;hPVgFa6BlVP z=)hTfOW3RDF}=z~^%@m<{;XM_U*o=o5tS{ET(uk^<)^YYq?BnOsPr zo&J*Pb+%f=#Qm}zA;iXq;>WtPeM&8X4YTigq(Ho5Dz%(K@VGYFh)*7cKEpu5-4V0N3Fm1o!7 zSehBmh3gRR#}6i(Ifgy%RX>m7&$@sE>y0@CmoYE3y*h5tC$ipm&mH5-U;l>3xXwJQ z6J)j(gT1g=6G*`1FEUFsNV8mB@GzOU6BYZ8flmzK+j9;EHXsDY;iLf1P5WSLq>fQb zdFF*P<2!HFCkgArf%tw~y+d-7bH$pwgfZ-H^+TcTd21tchD&{dtyDg?&4NKpnTP+s zdI({D$zgts1#uca7?9_!V|&M%(^J~KuZ^!r;tuu$ci%Q1dHfr?7;CV?0#D7*j=8gb zj#n0@ZR2>b1)(`Js7zZPYzbwU`f01a>qjEjxayM&q-9<8BacBv-hW{*#tYwgalH4A zll~;(t5@}XxY!6MF~F*L9ZTx)WuG70)G=X)!dRc@`rK^J1h08Gj-3o#*el!smK)rp zd!za}7jdjmUZ)52zSOtrD{@Yse$F{rL93g2YwH;Bf^%jGiYZiH$Z5v0u(vkN+bHD| zLpa0Td<-YsRgzi%>s(+$jO3a*1INZ4O8MG zd)7hs`2su4u~kc+)3JY05EO2DIN)P$em>n9LFweu062}HtagL9mSAX7#AtLIv4Bu85=N1&Ne8)Mbn%Udppk> z7xsEB1L;30r=L2zb0!M*GLTb6D1Q`U0GK7&dM+L(XT*qK*y_vO+5;?VkH+H2RrG(F(w204AP&LfH7dF zAPZ+(Y9l3_-NVSJhV5r?HaWN7_3LNEt@_~^^ujP*ZyMAV&V?r+l*w6HgPtwJIfLR1 zjJxRQvq_5&{p)k?TwocWrGC^nb=j<+x#FP4gZJ@8eNyNnkNa*QUy%_W;ci|ACJW)o zuteTB^=8jWEbAqfeNmC=mA8zYY7N^TKB<8^2t^bh=YIyY!j@SByay1O%mJj!J`?u` zbAZ98dcOMV#qq^2Jv{C_yf6IiRU7Ob0|v>PW49P3`6LcOWZ!znlPGzkvu-=Ib%LL0s0&I?sg%1Gr--43-If*H8P*7lX{I3}q7h*xLaB z9AQF7xCT&HzQx%pZCJ0r_l0N1X}uqLpDxNcEV&-*i<{T>F{$O*v**TVzw|Y| z$B|Fom0>mXJB||pfrX*j2qr)Sk>?g?c9`r|KcKpG{R|f(QOP&)87_ma-@`k80_a(_Mr9j>7Z2FFNN`$nRwe!Xtzc@87Fxz$22mIO0uQ4624W%q{l zD{O#dOBgUb#NPt#FspM0R^<4Az6bV2Jz4UJFFvXdxXSn9;*y2~C<{k()0nyMsGpRs zTVdN#Ec_!5&X;+CS=fQkP=4lJd_4%rYHI+2AC)~=6CPz=SqmVu#{&2^3w896(Zm&B>K z0t9>4`Wd`%%PE}WV?WOfW%6%=>vi{5IInV%c`;w|1Ujwa(nDUkSl4f3&7p5z#+Ie_ z#xk$wY%}SCpBy^~0GU#EPy*mxIDiSCH0>v6Dc~G)%QH|;-N6GbZL5CeWL)*l)G<0v zdr67j_VnqfAxkex29~WkPXp;BmyLN*KcJ*u|8I>1A2hU`oONc5+RnuQ-YlGE)b0~U zKA1X~I!+mac5vU}?9x!%xQ>ji0+b6N8Z$XfO+sS#vqGM6kzt2V`(d+iP7$RJfIHd9 z%1#UCQWj83okWq`ot$NlZSlaH`GvE0h@>t+l)G_8ZO-iD!4}){%s``EIWI;PtBR}9 znlok&KRX23g|qPr)Dy}a@MSpFJ+Pq2ZgZ~s;epZUW0!!JCj?`?dw9^~du1PuLh8K60-8a!AQN$fenuR;Ln zlR6zmrdg*rnZIO{M=_IcEVY-8KDLG|;OI3k=4Mcg^y@Q~`tb8Emb?dbzb>lzMAYZL z@%;Gs@BHrgqeo7U1G=-@%{cfNac0SR>otcqh&F83#5MsqOFT(+Ke%`^1=QFrxCLcJ zx#L=f*kSKE1w6_k!w%DK=AaMU`Q-0@Zanzlm&V0QmwXqAJ4)n&eDc6`^?$|KOZ^r! z*H6P7F^T{w>gQkrf}44)a#lpTevo%13)bc!;Erv{XZ_5k6x5Oc`XdiKQ0EDf*Jb?F z)6b5NfBe(qOZvW1f7n&|fe%gEI?sp_d)G&?dk#c^lK!T?MCGQq)ysm2ac$wo`gbXfB~F?HPmqB5#Oc%HW2)t+o_N7e zk}OebKC%JcvFW?xP2w^+{br8vz?yOGHO87DlFo(IHj&nf_O!PRojvIs&9(rcPn-4Y zv2lb0%n^DuCw)ljc0c~i#d+~7gz&6=ntqo`WWWy?fL)Q;1BhOCaFvReh zoXgJ)v{=m(9~|w>K&@~WkvxnmiGCBiw2P7C3>MrqXXDl;$4Lfw%v@w(iM53dZa5b; z$vYQ8krrDMi^Ov)&hUt;0O!ObM_L+9ll*C9K>@CCgN`~jV8_-D6DXXM3pBgt!U_1S7%h2v@dO)9MMRpP3$h@S`Z(^5m?XbH(XU}xPrK2s7*W}#hKI$e-%;yIQHIN?! zKu|4P=*W=(2)kqU8gBg)^2siacuka?1vezdG930cjiZOg*G61=Y;8=!#e6CuYtC^C zRd9-P{y8!(gX#iP?pvHupq)GSiRdDNjU#aCCKbW%v2nLCWZ3^O0kqm!HK31_U-doQ z;%pyp+CTQ@u$HeN&1F?T%x3*60SV)X3eUd4R-8*B=UNvA!ZaEWL)x+)TN{%?&0x1R zN8F}5JE0ZM>%^{TZgYmyN?n}0eu}^1Vk4@tL6jB?Bq3xfEGrv&0VzBRQlz8Fcp8piEJN3_AKn4 zgEL$Ov3+gu;Zqff_1e|f^%B!7`o72K#^aAYF&_H*>9Oz7P2-Nc-!Yy({V-*6>y&|w zAIz+Cq9Umj&h&Ptr@XAupx|Hbm5Im=ECr!ULePv8dOCVo^V+q3TNnY-hs&J0X&k*- zALya?cRu{c6XWe~zfUhIzAK-4>RRT#k-Ur%_`S}#15Hv*1p{j|QTF^3$zF2FQlsVN zndBw*OoIp0<+rLIJcD6Nr?NIx6UjwDmze%!Pwe@gK;HlN>~p${`^1yuD_?(V96oyM zxaZCX#y77%g^3%yX-hqNN^j!-l%0bx>!;yHwMt?B3FXOn4dH4B@NK z*{Ae1I8Tf(Kl;=-dGnp)+wOUr&M$hYe>KpFmzdeJn!=08NJ(nhnF@ngJI`~?HBuS& zf!WxsS>OuKh>Qat@HMXFO$wVH>{xROYg)44J4=V&FTd}`+s3c|_8*J~?s{yz?SXs8 z-FK^&dLQHs!sk}*|OjcpuB`BmS;Nm6_)m|=G1yv&Z?is~vC#0{1J#ihrlmGJiU zMuvaf$K&AClq(lRghS%fk0g7hY5N_Vv0tp?9@$2&~Y+<`{XE@oICzp2^a|sJiI3^vJj9waje5GMzNO)eJ`wX z2~Il@1BsQvV!S)&m0n#JHIC{pfK^{(gbv0{4s3AXl`4i1Jk+G>3xEh@BVXfqgS0xp zY}5~3n7d~)jA+79H?Ny_m^bEJe)cu4140pzTE@N0ILh5Px63lW&PBn2*hT~pyd%st zr;&1IlZ06u%?9hG*|&zlUFiZP{POu$>Q^~kav^+AeBt40h_E?N;_%SGW^GF@mVDSj zCWnrl8u!2B$T<7rv*VMW|N1!crLT_L^hM?O-E-GCb@HS>q41zSDB{rAe{jD~B>qxz z6`D&>kO|olvHhTPe^_{zm` zLEj{;UewpYymrHlDa|SOz^ZSv^0d{l4ES0)AEOScj@D%DvrH+;LUAo*Ye`!afw=< zKR-_E&gK)RpBZP)UD8vbs^uN;97m6z8ZVrAVZ46D;4=Zn1+ZFTgWnO=tC+nPTht>(mePtW`R)wgBAL7$IZhl#RovuLt-?PNkhH?)2B^SSVFCAB}7^EXjTYKODglW5pK*;+g1JE>itF#Mdn_PqzYq4sTr(oko#OjEpum`PX~WZC-jSY zi^65q^4u#g>-_qxUv==(dA-N_z|nEXz3*2oPmUX2engr*u=g$;%uC2 z947$cx53#A@M}#dmDtvvgMgWSY9a9|7tMJCmsq9>_U@c*FBSTRi%ZQNO0(4<2ZN+L zIm2V-0=>ZU7$hL;`dyndAkBHs2vK3H1Ls*2GpXJlCAzP#nV&f&SPPwZ`>O^4V+`E|x70WfG8O@$SYs zra;jQ;Q@I?Qn{@;ni#OfaW1PGF9&}C8ls8G+jilcSm`H8iO04Iom^;WN|lk$M`X5+ z!N!4yld$2cjprf+v1prHAf*Cl^DAC*t_@OxJ7q7PuzURc=i0* z@r*v0=4+3CQ4b!kjyrETF;404CVjBU;Tw7lJ>xxD#3oia=s^k$y#ZYv@@|1v zORp;jE~)Q=sA}+V;l!^e4vu_mj$S{Axa)dBpFn&5eEwe1gP<4BoEy))aCW?S?tN&Z=4+G-sf$H9UhsG^;yltGgeAl>m;oLa=;+gT~ z$3CySD&N!%v=iet{T;vQnC`UPShc)S7o)le1zmxcdJ;`dft)7SvZ}z;#JRb6IvBf# zFe_jD!30BH*8raSLB@mG3$LEn`!rwiMJ5*~FQ}H!KCfEpYhVr^KB`*YJWk!I2j({( zb39`D0xRr@U~Eun=Dg}ynhAtnS@hCG5AB{yaNsNr@`+o>-X#_WDVM zWW{k5)09@&^Z2kmxz+W`{=?(8yWXKs?tN9q<+<_LvuDPG5C8r+xNq;c&fG~ zXvuMTM91Z^BR7uys%4mR(O`z22PsLWm@6VU=h(0SwH+i!1xhBTo`EDop*{fo%AQ&v z#*Iggk0VEJ8MoebVjMVpBoNe6$1|u)o;9E; z%xtnVU(3QAfcbd9l(ezFIcB`zS{X>stGn2h4RWFpJ=r9zpL0H>}M>`gu3TUa9W6#T^nc61j&0K`DWh-1ucUf~C8$^D?MjdlmxXm?( zgY61@o3r%BoHk$q=LmL&M)=uMa4~MqmU8W>W2uA#K~?G*GxV4aDFRm zZq`q(%{gqd?XX71U^P!AjxAY6 z+R_h6Pq;Le$tY_{dIt{Bl9&QXNTCF`$tM^gWZ+51K2XKLzS<~|Ps;4UNhq`7ffIF! z2m0>Itqj963ilhJaq$AAodH9%!8!ccI^pg_ws4k{eFLy?j$L&0(X%CBS|~A>Cb0pf z0fe@3ms~WqV*q$cugA zJ?J<${^-#&dYR)hdT-gDarnTVapS=oba8h;9{_Sh7ovy#W#>2QnR=eBKg7kT9whOA zmOCFL&2`c^_2J@FEHqzVXtM7=$-DoWK85vF-Sy&5$%PBA*5CPYUj2&~uZ{~>zByjK z%u9dw>Veu3{oOepICV_#|KmMVyl;$`lj@Ud^-{3c_vj^?tODqC0u&PgL-Ljsmx1IP z^ZjRXuOe1?a)#P%qy+qIxnur0?K6 z$OVk=cnFsq!iC(hBd`T@;N;-5ez_yA3lfR1>Ot%U-SxVp_YI%F(Dl>d!N#+oarpcb|+$aq=m4SFKs*iDCgXYf|7=_@)e zUsf%j{@OQG%hTiFejSt4QpY97;SpW99M+QxM~)o!oo$ZQ1N#r=!b4XdJlOX&2(=|{ zZF)+srRKm(cbQBdlbk26=zWRY!F-iFn64%3N>2d2s#;!rO|`r_F6u5c$J|jpQE=p@ z`^L#Tk7_+qOD#HZdD$sBx`BMH)>GxcJFh2*$*^|zQNNFqi~+JxDW|WIhV&)`dJn92 zY4Rjj>@oJzQAd{cjb-Hal|ic8^^=8-wed-1wdUHHJ=f%f(VTU*(tA1&jpHW|tDdLE ztvbhDzI1-Pq*^}tmFINfep<(*YN>PV;RE~ha_U3+A{0al?G&6BGxsXOS*3-q;f*vGi+mDT!GuG?> zQ^=dM`!%F~Zg!;48W9(-Q(|El9@l<64wt~Nbr;ty&Y7=-7*9TOuqe48tpT%h;bH)C zrm%39ps*a@0ma3JvbCGpV2ISMb20NQ>1J4LEfIX`;&onPI1*}e%>|q7Iv0%F-po8e zT6V?Rf`pv744X$dGwi5uaGn#cEt@m*7csa6H`tXe$uU&ZE2*K-P-{i>z+zJUq z+1OSfE>3)8B`7OOZ>#c05!Vz7G2@73*>>9Rzzu^6svSWxxd|Yie%7pD0;gg+1`AxV ztSin1iD;8Ec9yE+Fq3BvsMs6V6TnRN8=P^hM%?bhnZ75D&x&(}Bv`uI;@k47WK#JFLXEH8)}k$XJDo-44$12|%G@ln7m@;$vQcvW>mUmpHvHI{c#FoiCYZ1tlNr}I*lW%U0r$i?K7ng(kbx{*162U+k~cGUT-3A80z~3`p*Iu})M32l z3=hW0)vPWuwUfD}GhWLVJoRK^oWMx1-k?^@e zpX|ABpY8zY(-MyzJ2XxnIOGR$JSbwW%Y)^9Afz~o$DEmAVlw%(SwDsts7{?{`#CL3 zo&ke%O~D}2+Bq_f9H`*1FmCS*=s278GgLP4b+2&kuRg@|JCBosvZ+bO-R45zy@5O) zl!J12Ky}pLk(FKcgC6)`QZkt~d9=xC?qf7YzIK zKzIMX8(ha5xLDB>3Vu0dXgRmMq>>uGrVGd`svqyiysWSNxT=d_9w76bslJe;mirFq z@0dRM@}O#YaH%ESGZk(1AX%8ndJD-5`N%F(NJ!Sl8GD8(TaF8TIa;ob_ujTl5(meB zsbv}3cLNfDifK2L1_h6f_9$3r>;qddGG;*e%FuKX%q++^7u?ABP^E+ZJ9OjCX>BhT$SI|tEnX)XvDGknr>^^UN!6|1$csEziPQ(Pga~berTLJ$Z@HQTxQ|9 z30WP^5j^;?+*e~xmg24(4r)?ai@lQwyOn))!Lr72)F&YM>zo^GYa_E+m#QDN@$xV( zk=&7;fem1ZHWt}IV)-*(|6kgS797vUoX7)fn)jjWqB@?} zarx3qs^yC>sgC+e8P$R((O%d72Gxuj=GfFRsXFdgJ#X;K)LA9O>~)h@6u6c;4!O|m z?Yf!)Z?kIXmQ-YS8sdu`G;yu8Z=MYF)p$ zYrDnSa>T%UOANZ&0^oJ3Fg>zu07^jG}D+J-M>z4y$;k?F$N^+t7nzNy>T#gghspWQ*+7^K@w}=$q zz~*LLHREE-kQkZ+^LgP34*vK(^Z5VLPxnshQAQhV(L*fwM#83l(f135iEI;hk z?Q@1LSDXQz2vROc#87LVA#FPDR=l~x*m3YlY;fHSw8eSiCWJ|_!AbrboDHNIuj*IG zvh^=ca;+HVqW*er#tr=HBOYZ*OaYr?v2{)ji5^{fSAZTRC{E=s^NFJgn$Q$rS4ghp zDrSwBNU<|6{^(~*f6bZ204G}dg+1d`TpOrwArjYXh=`~-t=mJDG zS0(?Zo-yZHb{Pmh^W?!R#PpDN?BRk&cWRF6!sNIwPV{WLba^&kdM-eHvBL!>Fv0SJ zSzTZ`kKjs-Un1C)sA^c~FNQTnu7*sxTjzPn9cmdU9u~XSFB(9wOqc{!e-jrq2B??% zSvaw$>l#r}Yq`|ZV*zoIz=Pb> zQx8~WcUdy-r0VLVLTK-G2SHsFQKJL;lu|v(a8M6~c`(bJ5nt4Bfx{gcU*za6jp~eV z)`ixHYpMt2o{qEb3FaAf=ELf&xS5{yCbA>X%q!}R`jMCI<8M39l{oaQXz~P_s&iYAjE;3+hP{Y{UrDu_4)TAaAp`LHK!N=smBizjwyRGBW$E3iy z(BXSdsb`K!J;|dB$k%mINlM8*^j#-Xta-amx)aU?&7nRfwdV;3AGOq)Cw$ORO9AD5 zrSN1HuB`E)>%3)J9zl4OAxzY!0kqu6+d8WyUi1@1Ikx+PVOs&YH0@aSoGUt<{dUw3 z>Lw|}rG5#K80Iy@&CZN8-K9e7Ie9+n^Py4QB;z9f(BT8R2o27xCFfPnp>=$GlP8q) z#F3xqQ@weD?vjql*SRZ69lh|?-=lLVKR({HS1k`7QZ2ba<(QJYCpKhBZPw>6V!SXP&XZw^xB|WXgE9xW1+OHC|AJ?aop^V`rg= zQDSyH_|lehbI&fUrhbcayq2wTdnPp<`!*agFrT@Y*>R>yxpmHvhx|7=%dbdf-m5%2 z#)3=4m||lk+cZOO=A!ML3m+`_VW>abx9bWQRTAFHaE^;*T^|OWRjCUX4lB;|O?t)I z;{a~vB8aGW)Nke)o5Y>DFq9dzatCKTf@^2nc?lJ6&nYOfbw`{l7as1q=6ZhNoORj0N#PhGJHBka`Vle*AXSHqc8jSHzfV*nR}%FtXfQV(1J zGTg485h-+3R}6YD^tj4^r}7fQc{!f5 z;B`S$gG(nW{p=mU9oUUq6gvnK z;k{}LoG-{ZHhChzrirCb>(QM|`fBX3ts#A%GuCSlU!u5v29jAE7mnBjj=foet6K7E z2M6$4YAde-!l^NTadayp^Q2G&OPlD53U)RdZarA0qc|%F`(Whbk2w)tdjreXgv8!H zC=q~x0NXU1Nf&z?2cs;ItaB4PkmNH_7%!MXmM8Ud>u4HqhZzuEJmQnP&pHq4B9TwI z?L!3OdpNc?>KB~MDR)xC!m|(>`KN7igC=<)XFerp;N#LBv9=qA+nk+HAPc)fu?rh~ zDr#}H&ax##&KC|QPs{@9`WY{X>SBS&Yy*$e0LimB&?gN;^6$+a9P_XW1g~-&yF=$guIho;sYXV4SUTo#aX{uf0>m} zawRW(Oeh<0!LqD5+ecz^UU2pD+HKb!vtJTz(2nRC5(EqQB%}qABzQv^2W<;v-^r6N z-q1}7V;4k89dnIOLa|Bfw8ugUO>`y=6Zyx!Fxr=d7DmltHE!%OFaZ7_Fo*3pVdQB#2P@8V?rY9uOWd3b@qt&(4Za)4CDUeVjRXBD zpo1XTW>NN-+Z0^>oWpuZiCY*fxGkDGEI{Ca6IiSlBic1)(is=$Ai9GYw)(YQxnvbHR3Qx2(e#pGLvm z$jcNqda^^02}yNhu&SR%i$<($i(zMie>PaeDi<{6fw8-#!%Yoy*N@l?$_8ItIz+te zArquD?YYr{avGppan>-?!JzzXTm30r>20Sd8~JMc8OR}XoCw4%80{9zX1ns2fio6j zo=<8FNcZID1b`BxHJ_j*oj4K;YuYma!Re)MVRYCaw>vN?3V6vTO-Qg=wLbCHp4mijfX#K({e z%o?e~1#0G0h0~6)_*<16*q%6&`-ZsZRCW_>tA60(2*HlAdcrT>Qem{Q<`(O?xe7B1 z9{5;lY{ra;ljfduwprzWeVkyK+Qbt+a^Tl37(%dMjV)Yq)P|1hNIPT(GJt%%Z>Qcj zZgDVYd7-YkWe(0#LU!)4DHv?*VmI|yb54X^IEzoYXWs*1q%EAAWf6;7_Q-cV&tWm~ zgkukFD;Mk?U2_Bji}^UwV;q`uERby1Z*qNyz;m^&X|v?Mr$_71v%@M zn4Ra0TEAF1)oi+c=8ScD*i?R#bL3>T=NdHRg=V5=YCeDb5cYqec|jZ7-z|a z=RxePJSVEQa&2$VBm@6%>=_wj;u;J<`N;yKRi5Kxq4WzfULMLeRL}*3dZmXSUaLIg zx6x#?>zWIV#K%Dx8=Mg($~AN0xH~!TzUJ1X!g(#Bzvi+#=XEaPvB_Cn%o#ADEr1xS zMUXrvpOGs?(|pM@xs6BpIX}Q;+`ir;lI!#UX4O!W%@%tvVch62w+Ln!{I_Gt(f?l? zoAHcV@eRWo0eusfxR#?rF99;z1}`npw+yef=A^D% ztPmHUV%)qvEL?IykkldD`443#R>s$8!IYi{pdQ4QZLs6msx^{JB>`c=0;hP!E6R;L z%W!Sc>j!(}jC%i6OLANoG6)P?yx6OCLNcnYbj^7#&TtG$W5?XFASMr3!g2vuQ zk4GL)jwOnN2Us_*``S3}#E4+Z(rKWIwg^2fxfrXgIu*XVR_F~7Pqs7gn?KJHq``ww zTWZtD#mymh)^Gd&6g=#aLJM!*;J6^KIWJa_N(+vyDj#*608?w;m12yGH*~h@S7RgB z#-|DO8TMLse|0R`6bs=7I(;I0_G@zL4N1cJNp#SVY7^gi*_1$PCVuC}5S%y0`XoZEaS=V&SxKr7A+ zO%*r#*{!x~&M*&7diItrBX*3pn`GBmbITNq^UOtKB+4~&;kaQud8^a)3#-BqB z$zXAPOPo6wD}EcC6Uu0cB z;&d*^N=${jf=)Nv-8r{8-dmgvR5Bn|oEKd5%`1BkWs7-O1!K4KT&8V9cbAQ1f@@^6 z^q_IEL?G;q`XNueB7nec;f$wV*A{RM+>xkwkW@s*EoX_;0zuDZm62@_>(7a3&=^Tr z0_|cJ>=jg;%RUD(mN;l{Tqdb;L17x)q<)RN$r;Vkn)6b~ow$h~TvHGM!fxV%S=i7* z+1x@#L$GngR?Yny$R=jNZYbN;B14~6y^`bEd7jXPZH@~1R_a&(eO7tyxY|$7iS$OC zKj)Z#2#*~IXtnU=}|^~aYEc8jj#3T+MJF4 z+7-3g&5NDrc;M1)KBy26=(u&Ara;od?c>Q18@Q^ngmyLOKw&pwR=CKF5i_l)SWVgN z$ZlOf^>?pd0X1Gn?U))n7aO=M5|W1jc4|%9`x;2GoHOD8{9NC5EKG9-sGxvwf-Ks^ zFL-N+q0Sm=xmb;S=2=GMf<|2?OwYLl#wx%KTn1CVvwpavUT`(2*19HZ7zvXLjaKtd zw~xP_^=sc%B;zEwKnVtR!A@u#d!T;Iw(4iTXwvFv)c}WNkG0q5xoKzI;!MAD>L>(O zYuN&CShUwZPUJS>k_({lnJ`&fb`e=h~BE7wmO z&&d>m+jBIK>27fbqt+Z863f=vbc}MtR1PbH>P~Kq4eEXWpTeh)zlQ8wz!AjlHJ4D) zfJ&SEh*zp><)R!musyJX4FGBip+njAzu+s-Lr=%4N?ve|G z+lA(b+d=b@6Cy56Wy=TM;zPXuj;f{oPj#=Y*EBPbXl z;{80&H8%S$i2B={+ic+mC!|<%46vuSTb>PG#|ak9OSW;bpJB4`*tsygjIh&R=K?V; zDXx)r`j`Nlh-3EgjB%*NsR6o3<}S4I23qlCC5Cy;d*MOCL}W52Y^u2Ak8tiwZsK7T ztHQ+wT{)Rg<3@o}t-Lm{GuY(3*xKD^jG7I&js@lF?21dc=A2xZmu=JYNlRlhDBNfo zH#{(~+=jvRT<{^!uH1?0n6 zLCn!+;C8gaZFlbzHiXr;IjpE3V~ke3!ZQfWr}I3cl4k}1vLVyAh!L<7WGu!gX)AmB z9@>Zq*e&&ogQ2`>*T&jja}~ik1+p7FqYInJ!_Bm&Bbv&y6!|Hc5#$eNYa|D^v7HRO zgNwOg+4wJhByGJeP|h60(Ay2p%fR`xL1-nf!e?e0WSl_}kWS-SKl8<|^K6!QW2 z)~?f?PH_ge{4FyQV6pKQzUJ&8+9aYQ#0)|GHD}GK&AB{qcWd0Hv(&P&i}O+lhg$nJp8$%1Y%OzaNq6PE zemA7QAG-b!sknE@*xJDPp zij5_*&4#!BF!KFtjEm<+F4px!uSPB~_H9r0K_~xiKnZuw857w%&-82ToottSNT;t^ zSpMPe#04qO5LC{=)!&XaC$pZlc{DczggxDGF0A5JCWXsfn4y(cWi4cWz&eHH+g1*@ zs-Gja5@s?mzgj1q!w!=_^LiTQ?yHDc;G4Mk5sW_}6%VYM*Mb%s>l$49uAk>! z6Wp#JK8v?z;{nJ4nsBpIe74t|9I4;#oaIwNaHHE>dWK%**}51pbJxbHn5=M;TwtLU z8-P96LJuwxXw5AnOTe(a{espO+p&??G-6`T9kH}sGeIrqIs8n{`Lzf7LJLA-XDtiM zdhMJCSfbY+&R%#Z!Y13qx4nI_Uyk32i;wGsp4YtC*y!#ye+{m`<_wROec?dc7!e9# zLP!}cqILbisO2dIbF}I7MFvRng|nKcfkbl0p@+@VoGVPHa6w2u!pGY-DlD(l>Q6-T zTB0=Pb=013eBd^NTNF+U=gQD3L~=3RsCPjGyXI+`Hnm50UCvoZZN8CBuL0?efu;ir zyXS)zxyQveOsX<*hJ|gQ)xMEs&P7T?G1HtIKdfD1S+b537dcv26`t+mb6dlcLy>@_%daGYgK$ldEFe<@~uY}m0)NjeEv zxtR3>Tdg_6zdh(>9ITFQxfISF1Lp#M=+Fg$`X5oxA*tj|8>eBX#FUG3^sI8q`oKn%79iV{WZ`V`lD;|4e*X^h zF0kZ7TV$XV+)Q(r&3x?6Sx)3aR^X- zWh)Ur$$%r+ES8C}*7aQX)F*Ye9c!)UZ{Uf`2rI>ivDKM#x{0o>!cERHPA%J}+_Xy^ z?1Kw7z5Eqt>C(di9r5F{q^@j;)wt}dfU=IWw2j>oV}r{dxGIwS#BnsRk?F6=2{+L8 z7Iqr`)tlZ-l3Z|6ht^EntgO8gHWAk~lB?{Ow$_EC^n102WD+}gl~cz+!MqH^K>Zk7 z;>psJK}TQLFQzCBB*Wyw4u!MiVu?}}ah{M`qmAX}15N@b&$3Yr%bH(+%?pHPK)*2? z7eUw0ecPmVo)6gY@J9aWm|2H|4cIe5B9r4p`yKU@m$BkSA6Dj5IE28YTV}ur+(@_U zH)AhA0_ph@q+&F1eWEGYXq;cqRqJ90=Vk&0SvQ7RE&<^dRmX)fKBiK9;1Xd)t@=sc zxK+Ox+SsZvT}e^FnR)6U%R1=U)Vw?=n`t9m#Ri3N;hY#VEW)+}8#^eg5ySJ3ixpV( z5J&WF-!-tWbS?LJZraJ)pboKYqz5-%6{P|EBvW)~nC-RKoIvnvlE#&n$E@3@kDp+yv^PC~K@+<^n$0szJ3iIBsAJ&?XVD@o2ubARfNp?x-Kw#9Corr+x_=J{8>TcK_e1z#F)eGUV-^To~0nkXob7nse-! zSNN{ioPoN2PFi70fweKUiIf0KE`qbd#b<-FbQ-4>u6A?H6|Oawvk9K5IDYcgHTB~G z0Go3dN{|{%&Y0Ma&cfM!YBY0kEzWpj6~19X*y2;zjt6IARKQ?YT*;Oc*uc2B>*cky zkfWE7Z6s|)XJ?%q2#HT*_6J3RQfCjKn>@?5ADr1)GVJ;D17h1SO3T#2&0oti$%S(v zL~UbrWn^5WhFo)AVzfCnEnU*<)GD!+4-5(y*tfzNdm;q8Bdu}UqH=1J*ul{Uz7d4d z?%J1yWWi#~(wYr}Y1f>Si*mLB9?nJCPk(n-c#U0&YxB)qbnelH;|6ELE%n2CaxUD? zGp5G24L;0oX*MqsiPpMU*}v*%4l*k9UF+B0O=FG?SDY)*!dX@Z?RnR@BCR?9f2_TY znjE`sWNZ8S{h#=LJ`-yNz+_feYwOII>SB^WAP@vt)h%iN2wU=OhAK~$p82_R1ugDf z=c;SgaD^A@&*9xz2Xu25k^|?Z$=_^d=Vn>5SQua#Pk5+g}j50QpS zjj>;*Ro|ug==C(+J+|SWGh;vf!$rQ~X4^a0&pBKjUD>}6eEqP_JMq`g3?Z#ILE+g- zN!b*amgmm>)C_n}n7mVq{dTh+3M%b#lQvFE@!@#3tE#o&%%AVSll$f!?mW&<2jE)v z00+y%3|IdMc{B$)SbE{ogB=9$jM)QN999oFIe07GHb<7j4bu4d5vGVd>2yrLZ z`+KX-OUw4Jcj?=mGdaYmMbK`U_N4#T=bX{u$oXO7<*B4~I=p%oWL)v>6~XKLy??*o zxpG~{nLAKXTeC^qN79{)U;5V*Ro0PKI^+9&YU{TBdjN22Wii6M*Sp55ukJ3lf9>4P zFs#@O>1RGU*0LaY;h7lBJLa6bJG#&n)Eoj0DAPb;@O5iO-?!gG%qOy1sKu$r#Y^nB z&y3Yi9yJql2JhCz)OIpXmLZ+p1&#Rr4J1Z+K`w8#I zE@2%Ob3WnL1{C|8V}TcMrEu4mmxyPrt~uBwng@q{c(dNkKG8Dk^1-WN=4#us)f4g$ z&Dt|T*IHC_L>-;2#n{moF>S_(oyRxLMp0uDXY_}Gt-y!oXqZzM>l~Z4cs$l(^j7l$ z{?Hs)$8VZ9;~o!Qv>we@?PdDxU#dg#KE~EU8gd8;Gf#{xX5DJE7OaH=V>R4sBMo-< z$gIKM-Tm`VWjKf9t-02R@mUR@fJgJG1@@`St(g?7b~EMsP)PaN?->kRLu8JYkqA@h8<-_K^; z0GgpY@WU{MKJI%V!UI$@I!y$0>=Wf)Qw>io)<|s>fWE*FRk%~~ zVORz80oW>O4(|8N+l0Vd04>J1oOn1_W|PLIyj&O0=U-2|Lh;Asj>Xon`+)C%Vm+4 z8Qx}e&Lo31W!=&D-*7j*PBin95-9u01MjY7iI~69Y|=w$ zr?ozGKQ*6oBj%$P9FIzfIUMCIZ;d}c=N3HLhj$L=qjk{*)$aD{;3)udVZm1%JefAIopD~W_k@QA1liwBReexrgo`Yzt1 zSul)So)ay?e~^jQBu)>n;9Ik<{n;lm z0T7>u_koJ_!0ti!5`t?AWK_yqvsgSh$;&i9WF6nS^5jpS4h}%ZG8`==JQ8dCxK zTuv?8!>fO!K*qx|F>pOuOwQKEuL|O-;L-3+GtrIN)#BMdgR_ve;+d-;i)?=0xv`~A z#598PiS#bK%I>>eE#*lTJ#iHt_bOw8sJr+ z88dd-`-O2dkW(0n#y0<-x!!lM`Jb2PkoIdp3d)5H5)rCiGV9J9c2HkY%sCO}VSkprm-`^)hmv>h^D|n(aMxV>c z_Dqtt(%}wsdmDO(i zM>0S9hco%qGq@jj&V1zraz=pNBc?}WU)yK@F02RM1C$N#Q|G}hZW7+SWVthZ@86(O z$KKO0>{%^fh|MvY49&;RV{nH=Q%sK1Noc&g$*C(ja1C*to-FdQOzd9DD>za%?XROBdoZxt8v$*sA zgX3t%JNYpSrlPBMqDw!(*dh*npf-NX;ypapdW-6f*ofwczlN7)qHYE3#Z|7`is`cE zjhJkocP`L5jk)OgqZyuf6I#s5dTXw#<}7g0wcYi=@=xEVitqc6%p3pb{zW8bBXy_3 zi61#n|G?~7vbf}S*_yHD#rc2sZ{u5w!d7#9E%#UMbLRvlgGro5%B{3o;AcF%!IR^< zbAI;5_U<1+eeVFTtY7*k-vMROp@O`3`gwo`lHjXmRyQv@GH?ogf4Fni9Q4$p(4Nh= z>%-!z%A41o9L?C8&zvfF6yBQshhr9G%pQpNyrgdqlkUEz0VM|U{lRD1@U?kZ%B|^W z>!I|D++-HZ&cTrZcb$nHTg;YL30Wb?^*7CN#9!?LlJ-+`j6uP>Tv!~0F+#$!in1!H zdvDt@f#|T{1;$2$W9LQetfeVjuA$93s}n%Tqq)2ddNhY{$>3(p{?SY|_fiHl{qs|z z5i=7wBs_RsCVPI6ao&0Mokz&G{ssHgBCF+HnwyKn;j0M|eZB8o`4DmHve4y5Yu1>V z?U1BpUXSiuvxdeznuA{65Z*LTov~k_P`os!?$tu(tk|rf>6nk^o3|MQrp`P_qh=$X z8e}V_|DEb$v>-lT`Y<=lxohe(|AQ6D3lP6Sn6gGfArRsmwiv6qv3n)f*4or3rBnCt zLIt*b^CU%HWH5_UW2zy#M*|TK_p_8Z>)8Ief7GC7NB}|a{$<}BQMow^dnA)K8jFK3 zs}bJy27trT10B8;ZL>h-@E_xQr}&@EA3*C2)8F+^Nu%lMUv)l;Lfk`mhH{VAb&X$* zbF7{bTnyjtTq*X{M>FpeMrj^mR~j=-?CRQmHP_!eW-y|p&k#U{nN|!2?n3tcn~JDA=fQaKE_p(> zKJt$J2QLOFO5V*!|6X@42m-#{IYq;FX%N1X$?NYD9+LBQ)malpy+&_nE0Y}tUgVl} z`yxDMxUcoyzsvi*f9d1~huh`s@3nc&(_DYmKZC-u{bQLIyu3PHy7wIOKB*@&XJ+i# z?cW%%N!BO*J6q$}-~UrB;)Zf~dzZ7xzn?#*f|x^w4bJT!tFGhmY&f6T`@X`x?cnUf z6Sf)?Dc45VPR72>bkzeZ<9`3uqOnWzWCdq+ZoXI%Lyh44!Ao|SHwz??&3<@EA~*0^ zpF?VBW}O?G&7&C|dNFo+xXO)jA%X(@)I1E4H~M(+B5+K~AJf(%+sU~B7#_`sFXl&c z*2|kPwT-|NnSJdKukX`S=dCOe!91`AvS);(%cp-BtAFCeX))xvbJe_ePC=9B>t}|V z!>#ZF?>h%?wUqa07N6AXoPBFiBc>{xJxNY25^CRK`(yu}GrGF-oI{eRnJLEUAJhmW zJ?9|SHM%lxE*#4(q7~spi6j~;SM9o$q#lzPebJ#0(`_tkMPXBdI2ws}&D?7|tebhpcFU^UW zT9Bnt#0_^B<-(M)D9cH*8AmgGiC>DX^H$(f^B^bFFPb5faB6z>4>R2Iszu>&beyYKk2vpPKn?v z?*F0oOOQpE$#;yVkhwkE}#BDlCLuDJ>T4M5QtyQKEwC*&NYwsT6qLP zup}C*<=En$!u{wUNvF>LlmC^)X;l`LlYFad1!mut;Arl~O${zN*!ztod|Bu3K>bDB zo+Knc2h=luXoiTdtNc6hODalQ^Fm0WkJirq1=;>jN`K zJYV})ea-R7J%aKm?<~e_M%KI-n|%A1^Q{XIzo_`ap1=v68rg?H&&?#jT7@C@_Ah?x zEKugBe*}>08rSwm|G=*1U+&y8L8F{ChGW(YV9B%s;;wKVbcKiqEh-9!JPbJBreWq|f{R<|zhR&&DsBL%* zD}oPzDhp-s)5pS$e2g_`T(8yj3Ego(wYV;lumlqQuO z&0CAYZq2Lsr8zv0=B7Nh?He^53zH+XH}8omcWWAB zxEt1Niix3_W&z*0zu&pCoZdhSYre{~IoWL>3pwpRrB$wwf*06sMniLcyQPAw)R z&fx$wLoC~n)fx-jF+H{D*~OxBc~~2y$B5FRR#Np0+0hJUxed?c4?Ebme5{h#t*XEiA!uNVL3t zqNW&fJpJ3aeV=SC&H)1#lc~LY&bjCFhY$Qv$H=QcB$2zl?mwiJQ+bb)U(yD2$=ugn z3w;zD%_a6?k+Wh`qsZY?{jhpWRZbB{3rjfM4sW{ zb5cFo3B#txEPw3ZtIh<^8B0`N@0Y}&8UBO5uD|xr`k-ae2L0$Cn)e5D&LMLi{oHR1 zGc2Ani*kaU2%I5mCf2oY?pP#{JwCkLMROR`yn+PBH&02Ms&`}TtHGyS6P;qb@`lM? znYFCWC-0->^lyAH(Zw=m=3Kss!f?)epS8IXU}Pq~fM$xS;nfyX-+!?Oz~6Lb0nnH- z>`CT-vk~v-`w#BV&x~c^kC(g~NleZv&BCD=q~f^F6AS0mT#TB+A(nHn(zW^^;q1>| z?BcpfNFuXlyU3wwjj(V3HnqGDo=oP-45aZx8f}c$xz(kz%@@0{U|f9GnOM%?<42uw z^uPYtI5@xeFOKkd*6Wn2kef&}#u85I0k)b!QQbbD&-?^hxOlTHRvM>O1bq#5$YpJ# zhfQ+or3PjehJ&rP$1=7;QR-Wij}N7an5z)rO7co(q56d*KqN zy3u@iYb_Y=gRkatKt#O3#cuwX2x%=u1J28A#cF|@ZKi$|b~Hb#)o`WSI{&VD(jnK_-)bge??sa?$LZg&igXGuy33Ss^2Sk9YvH;KV;0|O>fBE-+08k%xK+1i zlZh0=`)D5Du%8M{V0mxMPc?cmU))1?9-d^$@^p!p8e5Bp*VJx%lGXfs|Ax&vPD)I2 z&z^^{Oi!w_=9|-wy63(rroI#YL4h5Zen{X73AIEsKlpS!iHmLDS#KH<)}s;S1u?OZ zsrAjfapjRw0`s^HB2SjqQ^%~=RuVPOQjX^SdFPq{UeHF=qzIPyHU|l*$Jou%bv?K% z%DoeJ!+=h%GfgVb@ua|aFqMxKHPne;NNf-51+v6{TC0;0if=F|7ng>F6U=;cnvQSJw=cwHq7(>D*`)1 z$Gne;_~6Y}{6kjkn?$B(x}DLy#mVzzaPjSZf~3aJ<7hfsCs9A8aEGj4a}Ici11vr; zBkNoLN?AaV*O=dSV_b?0Fsb8QazYFK+CN?OFLHS=#d{AnxT7Y{_ubH4-e=5)AuRd57+4w*1S5j3e40mpZE9HMc@4+y4(bBJwQG$^#RPH zD52TkpBQ5UM-2mnx8GBVdXLt5-h+Vq^`jPQ)|bgmdApA7XkPy6e(EfBo!nzJ4-wH& zIC_@fYEjte6+icawK5VvT(Y~)G^yl0j;ZtD0kwbN^Xk{(Me`vd-4XrPTowe~_*f6$ zqge`S5#JfEGbJ2;JC#QT^MU`>DCw&k?gArDMLIpTSavhd=I-C4c|}YPDKqt}&aZb)VEl>8^7GE+H=Ri_&GE27zyol>ElWj< zAt_{}O;`CHHQ>yz(Ti3bamz~}vE^m4mo!#Mf@ZnA7k4ianoS)ZcuVL5Vo9n-3bKtj z-5McyG;24q*y3)@C3tG_Xl^Y&G@}bCD0GoMDQi(PdNJ@UFTnR301Gflz^!KDuxB=6 zxIGg-UqmlA6rY-lJ9QpLgN*ysTs*KxGr)(phrVlZX%6&g{=c|$a1-x0K6|(|j&TM` z-gO3#-~zUPUo|gDu=4aUV;x>KWF1aunRq_^i^;NUJX%^~f*;LW2t#tP~lcu1Fb$qMp-a3n&8H7xJT*gY4NMDIZn%**}Pd=lFB(f2V(C4{vglmK+peICVdTjn;3q2z=is zN?_u}9HLpfXFL4tO`3<=$=@&>cr{Ruo2QK92O^F|`$y%>8OKpEynS%Sz|l-JMoHMs z`SnatsRuJ!L4MSkSdMo0?=ZLscb=r$Jm4`HH)^eM%sM9S;f22^G;VND{|KA&<+*oG z7!v~MHS3+o|D}Jpf7Bf#Vt6uoX@Y|{X!R1Ob87K#^bbne!mv5A|H&KoOEdYJ70s=4 zR_YD*aDf6B19}Zx{O|p1{>2fUwe<}HU(m@5_v+QS*`8ViT%{yuurD@q_gSdf#4tDF z-@0?lwaFxezFBZD@2SP;Koh9mWuA}bqw)I8fYbL>o~2*S*<0sCMMwLBhWI(##fu&W zwOCy1Jd#79CTjuTyMK7eeRwZ!;_%B$TGoL1nirY-ij5`CJXvN{9PRYvjh3#JU8S+YwCJH@(Q)7BA#elQ;cJFmuN=8J;lh0Wn* zTi!9nDBsT z6j=7WY$%b|ptUH`MC7r&L^K9`SqJ5QaldIc&1ymO7X8J`l-JT33l`pp8MZ+#v zSrk0hsUH?KWO}@#8OM@j`8nFZvX>ip-zO*RqknLeHi!Wo&6pIk7`PA9fBeV)m*9;# zVhBL*Xa*o=_W-FDFaJ#~XCXkhDHB#UVrFIkSR3I(&um!(^_h9h;{J5!+P~FEa#{Pn zg7aZ=w-!0^p8gF7bvA01Gy>R;db%TBGd7da$VkBR-Ub_EfDaA%f}Z?xtdsaj)=G$k zbgX^uZj5=rIp=^uK=ygU&seQR@o&{;Foj#qd7o$-tP%Y5aPwx@_aiJt%b&^TSeM%~ zzJ5}GfU&$^G#8M0)#T2(+>8aZ&P7#2&XL7NRZsR)=R98e4 ziajxL-U*%&jZAFDWK(|`mS;7yUt6QPKjDfiHfum9Pq4-`PzIJe7FV@DHA4i(m{#QkkpfDDBqJQ+ytcM#d2{~}Kp998)tY-h0 zDb>)VAh?9=YM%I4t? zO0wb_Ix&ET3ytMX5k~XF@etNFp3%&Xmud1mo6+p?IW&s%;Nq|&;AbrcC)rywA&1-b zYKA8P%PVlO=V8VGTW5C7)aTg{dw7Bn4`wvS{Zli>^1`#cP_?M#(Sx6}Wh5e-;mxwO zsSl109QdC6^5DD^9e;Bbf3alA?z!UG{920<6TeZ!Rz~)i%GAv>V-?TI46SCCwI8<@ z&#v?Po%^lM&A*w3ndEShcxxdyeZllmXB6mXk+Imzh-qp4Q_O*FE$%z#dBGF8B9YN-w9n+5?LA&+?mi%u{ar7vub2jwsjU2fu1+o9OWmZZ3tI(F@n5 z+4Eu@G5vF+Rkn;%)@=1KNkrWA)I9x+S^Z228;(^O|@oGEMu4VI1ysL$WGRmY%F2JBIjO_kFf!M1o^v_A#3|8-6T= z>)DNtIr-6?{nQWl(?51I!t47wJU5jY)I6E+kN&Omp~%8o@zgj>!S9_bcJ$qe&?j$< zqh(NrJeo%b*1^r+AC#KZo_n{FGVvD4lccK>4EdY{78T+HTfEkymnBiT5)f`;U_XLQ1@w$Ol)2rLmPQ#xL}(5K~pW{>^CEbGtU0u;fUM6m+pnkX@1r@fW_o#Y{b;` z)ZzhE0{fR{&CR^E@XhtWUuO_=XEGcw{13LwBZUzX7QNacmy~HlxAixT=_1^ehGy0QXebSaQ$z zsUvHsK68~tR-(ck%Tmjmz(X>;+28q=`oxW4X*Rt7_|-b`?rnxoQk_qK2fM_C3>lBZ zJAU)ozjF5=pyqGfz~!sjduB5LU$QK^%yY21nXY~s_XLfv)}0R}p<>}4UbzN2c@(Fq zI8y!?>cCp|z74@+$!z~7QeGTao%sf6=uh_Ed$=>8^5=nW8??N6-ugWqyi-|VAAVV| zo10xVyAu0+&b{9!LFAB=Icp+I)MI3QoDXkn!CdEar>%70Z)b)(ED#`UiSU0oxR*mP~PNTULc=mAp3mIE#rCaK}PWVeF7Jn2Q6>b97WUc zX8)?0zAG;KH}4RvW_TqmE8(6?*xIt0vHcSh+ugrkzqg)45cTigx$PgxMo%6pS}}3` z^_}xvL{|&aUiJIjgPZ<6RY*8PIpuOI0N%2H?cb?IHMchsK{4aEJ9lZmYVmmnQU7q~ z{ww|rrxq`}mC*x?_bT!eF2^SJKN{div)f35lO5|Pbv zPZH0T)SFB9)Z#8F_T4x4>iww2a5dZXFSZ@O_iqp;%KD>!czwg-Vw178K*4^OIKDy- z&jHK(p_%aDiRHz5b7dJRu@135jMsSm02urC{x#r<&+2dP9AUp`)+Oz}Pu$D_6853F zcWzFI5SHP7eV9Q(V87U1V}lYw9Ptk9q^%C`YJ6G&)h%Z0*bOrz7a;#nH^x1K*&hGr z`G1Ih;f)Elon6WlEB~*!Pt66lU$Z8r{aXcnuA5z7nWq4^&z#2qW?_H2bK5_dJGgUS z`*$13eQyd2@cx^yHYd z!;wc~DyefFaNzjTzj*NW?8TJxiQo6}TEtJ>_AgtP1+(&KThxcaRgXWpKmUp?yaA{6hc_%eFYdL!Fy5qX9F|oY%E#gi?^O=i%#$s7d zM<&yFAE6kAH&J^ugs`5wVt<^#Hpzibd|6=2IQ@GoX>1hzRsS{vgw2T_D*DK;-7J|n zt7}7uub-{wc`epIdFHG_Chpb056xvBEl*P#&OAcawYqjM5Toh4m=bTOkkh|FKsi4J zSW9WbRk|Wi|FDi}bBKfO@Up3OH4?(>`FU=@O%h+~4IsnEkn(u_CJ^tX87wd1nS4UT z;=XfbO%Bk5%X8zsPx7LqqsSW^OTKz0B7z*yp53&uW0rHc?kiE>@Z1F&%{(fz49kO^ zvGK01TC7i8CZ9*xDvFh5#*{*w_dWKtf%*QuwXr40+$1hGwwa3i>pKTeUZo>Bdzg@$ zO_xWXIDK{L{x|O&Nsi_aOo~{yf2Mc(`F$$UYOGX=Zp{^B>~H;hX`WQ8fg?9KmVEuw zoy$iGhpBMDTX;x#)15uUo_bPcy>E&qQ@OSxM1y|bys(l3+bW&sRMef^Ae*a=jAv5A z;5WT!`**z8tw%kHEWXGn$b{Cybrc@ z*4gQY=EvuU8hH+H8QK0-|CXC)Ufmj9WiRgO--l+DfA(~UdaA=a$3Yk=csbfXv&Qwa z7G%iap}+=G=j~tp0Lr!8cmIZ^P?0X5RS$nOuNR@);>SiFcB7?Hy4$}i+wkhVG#e># zu-=u%yfr^ORG;_B6G!^y_bE4cY@*A1LDaw$n;%AVM~Q0PCk_B{zGmGZPg*l`$D=YD zW0o)6%gc&$G3eXD9}3QfGb#5>qIU`qUhu}0V>1xg_ucphcc|btZuz1o`Y<&ubH}TH z#tj*6YkUzM(N8?eCTwbz5lGiZ-KBLy734DB;f!(+M$wrXm%luNSt2|Bi z`uqfH(I(a!=X1mC;H$#--_pm%a(R}!$OVmtHl%EE%@*QN2E+RcyB7LK-0WQI81LY% za}*X<_^xBzEA%)0gBbn%y8CBBIQNysyMLRo4B|6w|6t=JtfI@%)pBJm`ka zeNX?Mczw}Y%pxJlm>&P$KUHN)+<8AlkGU&gnM?O*k$-E!ChOf2+55FzqCF?RzPBH( z`(8IAW(nL`opP^Z>h%ZB&4%)Fbl;k-NV8v>!F;`Q$pZ_e{IwPQEY7qGWuvP|E;-}%~Re#YrZsInzbqdu9G=>Z_UqH?B8xzd;_cfXoidS z25kSj=VVpV`Do5|@5Umxf9@~M?C)AE{*Rhl(H0iHqggd_pF{nsdG)PkBCx&2;f+;Z zyv5v_YoX>-=b)CCh|R@X>GDo4d9S>ue=0KMTP^%|I^}~5tQ>hW?>f(0gqN5PrPwzF z#Pe;Pz*rDOBz(i+2Uy(+jxQuu0fSf~oiN5vktLDTl?;Mt-=8!w7w|~|-IS!sw7AhR%wiXr9 z8zvLe(Y$xgbCEmn*5XtyXfrmhq;hL;x->t=mV!OyGSP6a=Fw=r_&0YIH|sgu)a6hO z=ym6oR}Giu*p1Wv`95haj@Sca(f>F%-ud zkYGa7ul)gf-E zjQp$qfgBOOl_el&lJSs<<-@(U^*%Y{F$_!acmD_)VDCl^YBx(`v4Yzgv3>Hyv4;&n z*|^WS=_@?FOI0D`9#IKU;On&SKMWmBkvKue8kI3%9{cvh46!|T4nX7YJBQ7)FQw1+ zS=re??-LnBkk59Q_c>byM%7j4Qa8YJU_juhQ4wk$jgX)2p7kW1B7A;kpc752p{$up z+-)c-xkhui%tSmWrlXCG2I~~_4C)51e4qUjgn!1ne@jB01Bw&gTG=f`5>A{~FtXJ!j88yc1pHerqHKckJU zB)t$#y1D`nZ~RxhIRjhGjTjvGz_BqX25Y}rYlzKs>v(h#_tq>GQRX6U&n^Y_S$Hjp z7mOpX-Lu4@kUU2n+92?mi7n&SEX~DJ-bE%WzPz>;#+RjO@VQrxtJO@P@mK-br{WU! z@ZS9sHyyh*6K)WIix-=wcb#MXYt2M{YL;{~lY-G&+;{Fdi$4qpLr6!WLi+3{9;dwI ze7tbiUH~5RB5XE`e)A7?i9Xw!<@v-9OxR_0mwChy~NmbOj%y&(21N6yA>O z&S5b0sq^;FI`uf@72HI1y^34qg9(Jt;g2cJfwhAVxHBy+;DkbTp8aqZ<$uJ zdw3_Je{b$)rq+y<=Y0}%wGSklciz#j)?nhq@79Fay2pl3LP?oo6Zhn3xAvRH`Wjc;=Si}xsFzr**R@1F0eEz)}8&Uf8yta(I>`U5g2=p zWNldB?Uz0s*1PfMj9<+-Kd|^=VPrYHZe#e+yhzi6p5eZ=P||4LpKU>@nUK+}t_hbG zyOiO{ljUlbUTmzh;lU7>=d@7+@d5#bgzb4HkG!3Z9Rj&BHN~?>^Y{K;+y zJ~d~rG;2}dZ<-NxJ~PnFJ|PUZ*}!#=*5X6634@w=Ifz~RuxO_i*zpfBd!g3i;n8iv zcP)}Djh|yV1m;8;)cFZ_v-nFRa=~6Jfg&e+p5$nj^Rs`e z7pHvTCGT)o8_rM7Qwv=v9?fJ+{AZnYzclx}-!yw{0=5=vZt>t&A9)!Hyfnwn09MUB z8Bv)0_OAvkU7>g4Oe(yF?H{{y=Yr?gj@D?nW4?J2(mS?z0ZBvdT{r7}=kQkD)R}N& zHtRn5v2VF+Ll6HL9v_B3hQxc`@ms9+ubkoT=g4HZc&!;`c>RK#%9rhC zUWq3=yv7c19_A_0FhC3L(f{?%$rH>rH{2>vQ?&q5owi`}l=sJ-13ANng9U7$j=O&t z%oYq<;cY*%W?1tso!87$4cotQ)C{RPJ<=9Wu2VrFkn|Vq2^yOH$1}N0dqfb9snh8n zLNe~oL31+;$VBKr-MP|@kWx>0HaWwdpvLS?mZ{{y6j7dspo~wQJ*@+k4O_0&uq>h4<9i#Cv+`z__a%-_ZQIe+E9h zdoa{^#y5A-Go$BxW;~h=V>_BxNcpO{3?eVebg4H0Kkx6wid%Yy@l|=)?aWu z{Tttj722s}<#aCAc$eoSGM`A|;`eTtXwJ9*wwGqjYJU1>gwy5(m9>15cZ=27_D?Qx zJ$aXWwycKLJbXN+z}r7EvThl-W&jK2b5m7$E^GS-HyZT@ojm|F+aOI73ubX~XUAT3 zYrZ}+7V9Y|sSmJ6e^ADLY93xwpm_)aKHsN~mbd28?Rh_VQ5?We%^0!jBx?scsRco< zdv3O{_&Cr z3wXGf~Q0i7V^2uEm3Izxi%% zrMV#qXo>(bW45(X*f9s+Wq1iw4vW0pCnDg6rw|5qHx&A1iAdZ+68ly2kbY`zs`9R8 zc(hBpnrj5fSstD;>>gh$g^=OZW+3ixXZqAE>mFT1d7#gWhioPqUir)WXfAMFTMMG$ zVC-r&+dsWQtmY*M9yKq`*}r&)xTtK{kIvQn**_rFOf8@Zzg21`k`!%nNBfT8mSUNteeN@QkFxwYJs0I>_5Ikhc_@?{EyW`f&2nSwwY@ z&2JI}#21lr4bi%03&_DTT_7K?rVG!N_uuQ^@R|#q EXO=7cY z3OgxhYi#4oaqPcnK9Wr|XdiFSr6|bywq^VNYXMG1wd~GrZU18I4|i2MY@;AM3>w?3 z=7XuP<>W|(WzM?&OH8-%ty1!c)c5Re#FF7HS-IJ7bQRRn*$mvp(#M!s=P|gwbZnZ! zR0VRj#x7O4H3a~IdQ@{UO9m!uFnf65T0y=uteWkgu`eYAxAt&!l-m^K`uhGOD!Ddg z0%Zyo)w4Ub!UA+%?O(Pr;$zl-uVN_IVg_-@8b>Ykl<4BY|BSlt{?)gc_j7J_ls8e+ zaO}J$%|om$o&x~EtNkl5d;E^9f6=@o3teqb*4_(oHmJFn8GCECu+}+bTj&0!aXS0zhc>rxKWMV?f8Nx2jI$|tjE5N>lTMI0;0SbvMWHfv5gk>;y<(~#7*>ed;(7f3y)Djuf zKZ*R{tz?K@@jSe)lPfv)@|3N+7A9*n@cPs&CyY~asPYTGyOCJ;r&0M+>7H=7@n>{~ z?zC{3<4X*@M!q#`OU!!Nf7jfshOP!Mu0QZ6;6hI!=-Gk7G3Bk()(aWMcM*0ifn?uJ$OljAa~}8ZQT-a&v##WDrlT z<>ri&?O>Mo$a= z+&y>IM0t48*4kx_UW9znTvhiBE~CMoL^h7ZS#+|1x3)d86)E7<3z{(*c^ugp_v#-u zw3hqd?w^`lB{h$}y#)w>`xbPxB^EuS%Ex}r^?kkG6VW<<_K#YVN3QZU@>&0>e~m+Z z^iUgAP5)qiaj)jNPp0g@Vx6#NEkkCuY_fpGdB{jpcNSv07fpH=J4)-0rAi0DqrA*n zM|XL%84R*Y!TDl$T+Xq`Fv0a^-aD6{GJ5$A!9?-ERy%cmea=Nhl?`JAh!LK(y*t^4 z6P=rIz-6M6ST6&M^$;t@vho z)?lp1@bF;o`;YbXkBH56WM*;7a*{Ud@_?;N*5R&g@0|X5Pd2){w`k^xyYHN~_G(MyXY<9Y<~aMS3Wmy! zeuXWvXtmYz#x$C^OfNruu>@RG)+V`JQ&`ke~ zKovlCi#l#t+S7LrA-i4l*a=X|PK6b&sD&3Y7peUNrz6? zFvyEKIRofd^$zod9nGavka)$F)V#aoePaL694=lApSy9N{Ila!D$UBTx7oZe~vlb=v7(gW|KeYf>1f}6@_vhT=8}!@f9JCI&qUW=J z_G{}I;Aj63uo|B4Q-A0m$^P=r(Z9WOYCIE%pN-GisAcNB4dz6PO~~^3&JU)V;RNgA&CXEscV8fZ!3-~)MwT3>fx6>3pBWeLVg@?8wB{_-`5AxKTwH&6 zzcj~;zUo@8OLI(LHOKh2CuYMpW(^9P%@*v$6C~5rqWwGXm3UY4g^cFne(N9DyI9~! z^U^$Z77IMDKh@&ke)R9lom;+n5_>eCi`JUW>0fsaHH*JBpPwxu%y=|sC6GE_{af=7 z%|U@b_K*H;?@R))ypsfL)0xvr$iA;$=99xP--F9`-jKKE!#%u&C19`4d7lt7Sf5Ng zCe;5!o=yyTrByt9k(~7%*G()s+JqM;E-qhy2ojfPnT8wtj5l{s#*}wIu04jpOx(Z> zX8#ntt4-5<;|J&1Sh%GqM_I5X?`qCgd70462V(adbE2eH4}b{wO{5-TNc3>KTy7)p zI%}B7uGz>jyyeCR6XOq>(G4UM&yB#;jpT8zW<9~ij%#a?;O${K{-S?S{Xw&}P7*IG z;&^51ukQb-Ie||tCj3)#DPKoz9vq+JxpVgN^ zecm}z0fjdZx0!gp2H}ZafFFXRZ~JGB!OXZhz;xetS7C!ayb0t7MR)=862hI!nz5wg z_i@!>VFfb}7c055SPqx*Z_wK3`DiZWQ**AHgId(r{m#}UJ6?no67g&0o*0K|7iU02j;g^XQVgS7x)!W^n&;@ruJu#PY&3WT@#c zjMcU=u}n-Xa_1D6{;jj0bFp)Nad|cs%ulXE$ASUZ0D9+EV4g0iMQzOH1D}<@Tz7BJ zSTY(?Eo_HFF^5;=dkSCWyz9{LAw}~>eZK!bxfkejYXRu9e*usL9Iq^;y7pMuIw;!N zjA>nY8aw-Lmix1R1-Hhd3F^F>e>B52`QF^4DFHwFXa4xDSMP@X3o}vtZIG06=Y;R% zZ?4hNq+dVh+LT6&HV9dghbLNnDSDKnXYv1Q{hLI2n3(PATOnu~3BVo^t9eD;Ac%Nn z!o79Yh$(jAaJR<$IoEFfQ~!oT-b?fFo0ocJzr5(c^7OCLlo^SR(FArixA$yEv-Np2 z69+GY`S}eO_G_pIP#8J0Joty#=V%7Tel@#iYNj`D?1TNs?^7T>+iIISS3X2AJp;|+ zNAvMMn%|#ugu-z5uZ(Zr!9gBDuUhCzUhB2DLCP@GKg(h*fW8JvsOzP9Ph>q6QEs7u z1Kli!U4+7SKYG6Q4-EbvnumEL-Tgb99+lRDEt&pYRSp!@(} zGy%REiF*fW(R^gZK@_huz+_|pGEIpr?-&o%#i!=g5vQ#Tf$YP}4jqk6X7sSn>-n(A zp18d1%>?{*=StQXg7~F=94-vL}KKEC!3kB9s7oeMkMeD$RQ zX-UlP?q8J_;}1830jN&*tY+}H64aAgyp@=o@ow@W3d-C#Lb5vHT1EOd0&a&d zIN!^}nx`aR`xk(ey#Vq#VQf?M(?7eTggD_P=OlRgH$4;wlfuM5{cG6XIWSU%i{D^% zM{LH{lQlU>4fnCfFgg63o1GZey6?IS;KXOoAaB6sB|*=j3y!=ziG&XxKc;?WunFqs z_B_%b&HWUFE&1@PaWD`vOxESIzK!vXrc(==aB9(5BaUXIwHA0^pL2zGzBDgiGk1P8 zm+NGWyK8Dm0+Za#Q!CC|u8jbsd_ve{k}FfcNAO%;j2jO)<5RQ!8<+lsRGhrxq2RT> zrZ(CxZc^oieKkM*BNSCb1BUfXK8|J_7jL$JpF79C5#y?#jfD8g)td93fA#O?9!+n} z5;0Y?xuvY;ImF*-CT`AhYbH2D&(S<*9Q#YN=$X)*Ks1-(`m_k|bLWcRy0ar~|Le5| zgU0M;+`DVD@D>D+tSRbs5JXlCBKA@==8 za-Xgb=w#Wz!@Gqih_z>1hQ{l962hE;FX#Ty3~#v~T|MwQfw8M>GwpMEdG?zKSsop5 z!L)Vu8<*}fv@cH#N*$i_&zkwuz~;|`LwuQtJlL_@)WuYK!W@g;r+4Uhmbu`* znN^q^u@SU)ZnF;Y;cJ?i;fd#^IhL4gSGdeL!Pvm_i!X;#az@kd&C)1j755yqPh@h$ zE9v4tc}dgy%?+JUl0RJKi3t(=n00aUH)^XH47`DJmPRpqGV4*}@ImV6J}|Yfgr4!j z=1eEm(GiPvUM@I-!yF7Myk_FF{);=;yy5uhU-gx@nB-ItyQ3@sCB^xz77cmg13qWz z8On6=&HuYq?RqSZ%Yi_%a>)J@eR)XR-H{= zjkw}W6rY}XpX`>9oEN&Mf5bv|lx3U#5z~Zy7*rhnBmR{t5kGl9m<3cT^bq^~Y4Yr8 z^qu})_&PFIv+t9ue+WWT|JEuPc;&v%)|1J!Y4^FjJo^h+c{nd$*uitZ)jmupdcL=6 z?Bp8(FT=<#-G&X*43}q5%$Lu(U;0<($&)&}!kCwjSO4suwKDaF3Fj{EeO$#0$aA@y zLGCwEl~^~)%Q4G&z!wcU%hpUhTJt*n0}Y+IT(}-Jbu9!KxT*L4Y}DBD5-^o1jGFkx zc?owuyqFx|M2zO5>$>h-F)?$9!2??5tbLQbY;YI9wHP&}8O!@f?i`Zzj$LCUY=X$1}_&($5R*eTkh4P<-y?=1#d9cham83 zScc}&b@iz9#7+OE&uF1lyuRMKueEq`$g5^DjuvE1Zmij4*BI%pGin_zV!`ha2Vyi2 z2ku`rf2oD|TMq{J)x6rY#RT_i7NL!^890w_@Dt$E^?)RJm*A3s@`m&D-3vhXll3XL)_+mB#E&@Me^I)v8MY2scE}qM;6LDvvapvB z14j*cMX?`kt~zPWbhsz1-dO#@n=y}SUDgDst@;Xl5QH4f;{^HRd+P?C!q%`U_vaU^ z-!wmAW+a0IuR9k|kB8=`7R$Z9mu8F^)lAGNnn%^#ysg8J_g^^Fm^dlPpO?=S^_)?%ZcIz#uZ79iBf^cuh2xhAisu8-!U6wUGF>u3)5tA7dFyRmhCKBI}Q zu3t4L{`BwYM)OZzg~$jn{~@7+M}HzXz%yj1O@BNG&_xrop2BCj(1(XrxwmQlNlvO@ zZ|%qumy16gdq!~C!^<#6AwM%&DtI5Eo~w}rS0DQpHiog?8H*nl91+fkxw1@q=N1si zo8hIogfqW!kLC*$h;~kWoxRpL_4{}Q9cC72&f}%|XcTZXpVJI4q=$>m$BtUi2z${< z$ZCGqBG&5+hj+xC{pN|`WjmS$a4g54`_~f*Wy)4PzbgpOphxbCX zKZD2vHH<%N2JyPNxpUb=<8d;5Xx>^7>9}&O$*2DviE+Ybh1)H5(96X%V!Ow?=&q}g zldR*3c@SNZ%DWJ-cZPlcn-=D&KgLd{)X<@6nMQ) z;&|10@`!);4^yLcy7MTrt#;?J6kSWSB#(0SzW1XlHOQ@@7QqzD-)vFOB72eE?*ITm z07*naR7#w+fJ{U9$M;DKJJ2VlT+b{e#6TwB%?pxJ?R^E$Py(8>XbrI9y=$>12=M1o zi2G|9PtSjVqIc@uLWevgb%P({@Ve@x=Ghmq&b!Xg#T&i{!+z`ud9?s^i03F*4BV^V zJ@N0U;gQ>Z`~n6w$g#HjK8^FXm>Dx%opmxi5cU;T?QfO87hAQ@O= z7+W5%@vct${AlLD8`0-;H&7Z|zJ6%dwQ)~6a=om^j>Yw2qd9qh@an!e2t`o8DujOg zrDnq4qujk$p_4mWJkKBvV(RDD9skm-_~H<_EAaNo{z+DfbKcnUwP*j^@2#7__thr* zQH!6N?_8IfXnOBXEvj}j&sk7=^yB)|o%_4&K1bDsW!j zvNivK1tC)I__A5e%h3E`+{MI{cU9hutP>rfKWnkLrxvx4tr^+(AB~tg>p98YiHwP- z|H$Knm!aHo{aN$r3rNO94=>x+qF($xb7mHf#<1)^!tiJYM0E>oow;8`EHCTv)CQ5G zyc^%%)pot5gIwNGAIP`<{prq4q&oj6Vwp-!8&6o!Qs|0`X9}kv}fxXNY>i|g~NT!BlOfb&bc*L9wHi9 zmZ{Cyo<0{hGV9Hz+*o@E&&Ik7xyxSDQxEu>Sty#b5bJaZY8(_H5vphqbH6D!tiVfoF zANRmr;{XKp)VbWNq)7+5{UgG-&BM8Rw$=+kwF7fWz#sYtMvlOU`J2y-{Y-791Z6bs z_I&qx%9~}il88+AU_Z6MobAv4!M*h>ei^_XZjHsM@0b1|0hXOz?!JzPQ@tb!ul3rn zcmHsr#c&gp$f~^JM(^;V^W2RVQVy3;T<>k!jbpWXvYNbGi`MuLcaF2dLo-=A?^NDe z!!c%%R(A3~=&WKxuh>lJIDuI-wz-z~6))z=v@5W#hkJSbN9%cC3^!a;I&H)>r&Wq` zEggbC3u@yVq!g{vOtGUmkS%&hQTn&%`&r9>g>oWOO5RlJI<#rdy zQ|HzK`^03$`^Ww@x|G_11t)J}4(~#G&Pyr*>-?daEYEmrM(=7aLp6i{-am8)`M-MS zk~7KRZ9O>6pEXy)*78E1u=?2EyiXlGA*X!q+^NN)%B!-AcfFsQ$;5Ep{-wCowKXPN zU!L%zhQxw?X%=&m45n+}q$UM(FsvgZDIGS6Fs*;kxhg)2|QytIu(!4ikH6t=(qg-DJ zh}{c;4_-svWF5b7K*`@acU`VaGeClQzWP_j!;Ek160r9Nh%kbOVxBl^&FbRay20BF zK~0?(FVphkhBF+;e->pB&o}I0T&tF?#b^#q$8Y_MSIB7o_C6u~tA8pRp{z$AH>$S^ z{iF>uyquTqXkd4G1_~#?Ni1mSZeD1vdKdtBZ1Z1BH2k6Is<1(FH{eBF(T7*PF~?5- z*1u;v7IE2W$Y$m1`=APVzXO46QT9oPSeJ|C+c)>%6h_ z;I84}4t6-c-Z^<;%1F%0@jhT1UY2JB#E1UT7RRYGAW5pu)W7zxSnAkLPyZBLB~L9N zW`x(m*AJ8&v+IT(cL?KW|F#x!y)+jrlMoI!HJ|Fl2kr1C>vdz}8Ddu??r4p&UoLrz zwL9II-2jM4L4D*-`@ev>G6>GYc*jw zI%C}5giDd>vr5Zw>~lQzZxEzg=U@5<^wmGlxSHd3$a!)kE?%}R~X!I436dL+2kES9-|oyz!_@34e_4$3C>D3W{)ca z8+7zwqxk`|I_EH#0R)xO#4_pa6wHCiFzK@%YH;uVVcB{n_~KnEV*CDs|J)z~JMd>! z4=XpBvbM%go%P|__eP$qD=!Sm-*d+@T7L9TlI6}OxP5=^N#Hx0RYuSVRF%=Tnt|{-~9vT$s6EO3!!Bhimma*ZS1A_ z?jQI0Xnu6O`j-PeXDV;+TMvT8`Xx^_t87(K!i-{>H%e9-FU`coHkxG#Xa1%Wnjs@e09eeINpB&* zhBKnZx2`^k>S|}6yu{1A3bf?3Zj&o7$s$y>DBgf5dT2)p^R zUca@FpZJVfE0MhfnPS*qnoB$YHw!K|JipahIhlsr?KBco*|cWIsP*`6Ufee{n^Mug z>zuHFJK$!KJ4<$!X$r7VQ96eJ@+po!%=5Zeu0x^^vJcJ1E&(~m0F)H#>b=k!&wGGD zbI&zCpbVWz1(40ryv&6?nKo!F@Sr(QDWO>i26=068z=sKwU|c4R_pCMyil0nNF1p_ z|J9v?UN2}3oZ>2n#gIM(Jf^rwKx^J2B^q&yUM*55_Dh@f2TJ=96ICQ z;+^+jd6-+nt{%oGcWs@?bE*U9hOu-@rL)LjKdZBM!30spVz8#w3N_X>E2d|8!Zc(XU=tr_TMk;{FiIwm*U82Y8eQ)lq8!`gKJ zZ~c>`hc55o&LZP==P>0}PfsBzmbL9-_wW8aF;x$0lf#sCznWz3v|O1$IvMsD$Ug1U zE$&(wG;n>~x$L1~I=r*@PYzh;5BRL}0LzPm5s&t+m+bTXhnFk%vw!7A!19(ZI~KeM z(g>zr4f@A|2ncwwbh~%smPH>gr!j4XiV3bXbX`sV34@9INj3=??CX_qKK> ze5*ULZl{5`8?QAx_O;$V!a+FBf?YNe3~wx3jXnVj0GyF^zb?XhI*-$^ha2!eerA-t z_vE))kOVorGI8b4cFh*|6y!?*Bc_Ay>v|o|NWbx-@_7ADA7Z z-H+nc4Eg`foue<|m2!BGVeedcO{4xEqsx;#A+<2O%6Wd=xkAj=>-(jDN62C7sk6mm znVfFT>m+#y?*28}*f|BD%i0}bzrO!K-?f+&FP5u+L+(S&oXNlGG|#xs8*G`@nFH`U zS>u*10^C20bB^M;42$1pXo@fC+$zT;ge8#8dT5p?K+O>Ir{-~#8DP2LZJo3F;Dvn|39shHt!HSneb+*NgUTy6)*Z6B zA-@ALbKv%2%{sDaZg-#klcPiz^B%KAFeLcoTg?}*K4?z=PAJhJ=am&g6vLg%ukFLd z8ybg?PtAIa%xd^Zz_|NYOH*Bcm*QE-d-IZTIPk;MkKvj%35aGkCm(0PfT>33l8i6@ z7$07?eZLV`?(vt1IfK8ge3E(Mknqd*-xeuIayI+$X0z_~)erAK+`0H4EciWHR_j0( zIx>FtPpdu=x8{i{=PDE0oOk~cyy-UAMcO+G_rLP@WPjVg;PZ7SOpceKIZYh9MXV6x zM&Gyo4eKTP>0eKpI--|+@cx5lVE%pe5xg0O1Es+*kmbR``TjnYoZe+XU_98wwa?Ix zHIN}3Zg-~13U2)B*@!-w&&r_Tj=f_vZ~hpC`7gK(_fp~*&C9Ea>@l2j48HvXQG;`) zQ|CR?@Op$y6R!8!9hxkD>0bo+L+C&BZ#9RghnWP74vflykXtsY!YX25o zl?kv$4TSsHWx!B!_&@vi+zsLz$=v>Bp(yIpU!X9m4ZQw&keqwLYaK!NGkvgIBsDi! z&8BX=DMqtvGU7kH#2Ij&>`IZjwC)#$@l*2w$V>bLhKqz7>k60dV$SEF=8bD^cP_IE zw}Fy9j4?X2eD-f)tND-pTPB_#nlUM6`ezYqv=-Zog`GS1)WWVC7g2H%pYf@=Rvi9% z?p)#sL1JAUsUh`x_lt>S<2XL3(DSB%e-34bpDp(;!vxR=GVh(DXwhXuey zO+jF&v=JCPzku;qy3GeoW97yOFHD$el%u?xAAf+uvAk>5B?6MeYi4w-QgxbwBp0b* z7}j~#^41*0@YYVyrMa154X??<^?NOVljTgeX3q~#Yhf0W%4k}{S^><}TYu2*$3DD9 z3zMka7#)ABd8!m1SD`v}o}RrmTd8w@NI#KBGiNJG7j7G~J*S?1X||%8GLftO`@PQ3 zoooMyh5H%*`aitAS*&i^b)C1XZdW~vELO2di6TWy6lKY#Op&52s|gYZi6h4bVp$53 zAPw?v#L0u507eib$Xn#(K?d^VBrt*)5RBN4VhKSaS&14-iaJx2M6q#^MY5_`tiHdu zZe@I9%(>Ru|NozJ&!wcSd(Pf#%{k_nW6intfB)0mD*bhRFjT+JpB?wUxkvBN+@V$H zl)f}epa0TlQ z{^2W;CDpYB<{_i~%{$Dpc7SZIH@xM~EvsXjRA3YVaei(pF6LEp)kKcuV-q<&J6=1Z zi9P1CVy&HB@R^(i5b2D`#>1LAmrkORcJPvc9J#}*ney1iJp{AP*6eiF;83F2Kerg> zwG2L^hRKi*kyI@Tlk7G--e(~*8~rOWuEC^tEh?{F*1T|-TYyC^(dI&kU8&{TKQR32 z58<~ubEfD$u&Ci!&u2YTp;_m0D_QE70*Yi;=hDd@*d%UUN?k(Ox2@4@Il7$cA33Y7 z-hM90Pn=`T7A|Y_B{}FdgZ_BCS<2#7UE?RF&mvil3 z$8e{A&SQdTKI&iPF-N8JnImRMFiW`13p*nKUtQa_#A}MOyY}@!#7=neiXb!M^8C3M zK%ArYdq)49RowgjiP5}k|B{EaXdYD*Z(GojdU~RO@M`6lv(H@RU*ks*d3z@z@=D3} znw?H5TeH=;Hm!N6KGYm_h##8S6`B1Rvvt^{3+-T@)5hYs&eXy@+`E6o7@kvVbM=x9 zamLQ?pBa-a)2Z3(MKd~4fJuW~U5ipystIH#XxnQ>OYAro&01zeGoY}{D;s4+JcIeT zNX))}sp;$=;L5$@mN5lnGBks=y?DK}G1*;bueq$6=jn<*G#9UDg3IBZh-$A{Yx&49 z>s0WmlJLg)rAN1-Fi)Ytd!!Ho}ZD!=OLL z?HI!?ziDC3MCjm7_RrZv<_rcW0?koaGgF2ayLEtYEfjN7Gv*VT1xFq{Od{1QEaHY2 ze=5g*y=Ud%p(!Vjv=fuYNzHJP!+ub3hZln8wjH;|ozCn;F?bz>nTpRAh($Csn^4M& z+jtfvQ{1ikhrElNIdVr!^JXvPv81|^*4Px8X*?y#Zg#ARO}Z4b?%9|30*wb&26^1P+35;|C0{&9a+4+GJ$q7~*;i z&8iw)wx`aHwjsG;AS=JpV(May60Z70f;ncUU@`K2$zh`2~$iye23Y6mnY9(cMmrL zov5@5WLqhPr@7AU-{F~4ocB$J@WZ?$DXX+8fwxh)c+H3g8N@;KtVJ{jK^*#ZB^P(F z{-YV;T*T)+cpZdb)@Q8kSU`sZRCr@&9%j}WO;}TMfPeuGcR?8bFtS7Dnh9uru9;x2 zQ5fAk(}iz|!WeESnzh3!MlQ<~a^z?pvoEjBgn;vP)r=iy)k0^(Go&tZ8wCzM@XR{1 z0_-GXAMnBvMk9m*hu*|+1z|>olY8>w1A&9jRD@O}t~47(E?IH-9)zIw_L(D=Pxo)U z?mKJjQBqf^iZ?W!7)2V&p~<1<>@f(Z5@@eEG>(&2v{{GP!98v6);xK|45xuB%P>w2!>w8vKQ)C<#+~M< z#+ETAUJg1|=0kEg(!WN;mK@>W#gdrWzvd>U=aUz~?U}UzT0ENeU{|Jaz`~^|CWdz| zPPnX#kb*|1kl-Bqvo>`JdCrFMyp z#^%e4>$F(21a@ZsL`xg$UlR+GOtU9u;N6%7`PA$<@pr`3OpeNOsJY~na>94R8C*mm zAQnDM$>XbRsdLEeFWyOp!Bv~4;v=}H&E32>5+x;UsDWnbBryh8rI}f*dAqElbsmKo zdsquu%~Vp&?jrWj@H=0~`7O`3~5L zT&eKl_{_z-BD3dYN&lP*_T@Q2UNL8?Yud1{Gj;RxrxaDqid(qP=pU-s8h2`!{y{XE z&h4Lb7Kv}tGXArLGSo=<$ihfa`o~(iNX*ALK(X7{#lZxH1=rq)Exz~w2$q}Y-bruL z&9~V+4YR&l%rn>C!gC{DJ%Tf@nM;jvyMGH_xOMP&!9TXCN$nud-dGU@cjw7^vdvjM zLc?Xrx?G@tEv?U7l)%P$@@>0xr~WqCr;-Ey+?)<*uX|${>{ z0y*)@)qwytSh_%Bac_)GK=n$zyj+FXFI*0)21CNYW_`Zc1Yy4bhbz1#FqpblMuik_ zK?i7|#U&KNg_mQ+)_gP{n1qr4>{^7}b+cw|1s-$xVqMu^)xF*3wwk>Tgb&S{zzd;1 z!W~{<$pbvLQ~eugCWBX@TA$s&L^a%4>m{eu4ARojKrKB=Gv=LU;zn#Hx!$VIp-s51 zw>Wd4FQz%d&1<2_GqbJhY29hY9K!^A<8zt*oqy&CSv6ne%%y)_WAc@IKuo{>8n- zCk9r3kxCJYd(R9m4(A`vu9nkQ><~91)JXs3bp7>Lx2yNeURt8L$gdnJI_3;~lTLoN zn2k6*bJSAq zH(q;XyK>jvqfA6}|2mg}Lo0rLqER2Iv7@+HzbB>C*xoleA?1_N_jL;*jI!n~&>Gj= zCP|%*@@0};zH-;Lz4n^4zNuV%^%>u-`WI=!iq8?|#d?9~#4#N>w`i%lG}Y+ec(x01 zqJMY}HTN!ar><{puf6`tcKI$nmm^DYlGMOLd##H;4*TZ@HMzoo=1I)iWPL~UL7I z?7LbVa69}=%>?gxsdMK~ZGv%*);#X?JbE3|LUw`c7OH>Cp3HtqGhDo0oWh==x%*d& zlh|4#*s@%Ut}#dwu+H6cU6M9&_!f7E0Ht`jh}UOcfzdqqDur;d<(j>ntr_0ZVa;nT zilIcU=i);B3$=x!8Ty@O=#yehDx-0?)GTmnv1+cQ#d}J#-<6HL!uRt-sO|mYN!2k# zweBERd{}@tABE|8;}bQxO|$X};3W>{4uhwa6OPHN4P&Tbdu#3&*+ui9HG>q&P;fI? za})Mm9(X&aGqPBCy&U90!s}Uce3pFyyhd$n9}Tp(Xc@9O=~#a%DVYZ_0L*_Ywjan zb3s&-e#mDcJ32@D*FlpPi_1IEdL+f!8oQ#V?Oej1(hLRpI_Ht*iVqiyAX#^eUo_QePHED1nLO%3renZF@X1MtG3My6|#Rp5_LcO>5S1 zGNHjfuyy9JxgO;pBQ|*5Nw6Zf&E}r50GQEftkY;I*B8@QE?wGgyz=b!fBwp+x4-sd zAKxCh|K0>tKVi$>wBv=(S;}y#&dxUiE`H{m4+V;KIt*0{%wC3Eeyivb$5|L-YY!j! zt`Ba1@gr~Be&hE)tzO>PE?>Gl%HQ1Cqtlwf6|FqHVLY>cB(l)b##-ad{&lakzw`Si z(&7zcmd#7H)=UBJ)Sj+hzO=pe;?vtN{`zOOfB)b3_;!!J@U)htPR&)7^YT>xaO8_C zL@af71eUHoz!+Pu(YyZP4+mGd>N0uFk)@H|n~cU1UA{m2u|K)}x%XY!e(&?2*{)u? zsps-axXoF#Vi-?^2&`4{$IqWa87+L79@aUU!)qz#RRH~j8y*c)^=0A3&oT_Wh0qLx zKik8aU$MPYy}WaK`GqI9-~RL$w;%nB-?Lr4a@oEvMDh^_h3-zkMV~RBtaF~kM1{iy z9fHGD1e>No^&-s@`z`-&g-FA7%hbH-YYad1{eNovmiumOUwHhn?b@Zcwo5#hCNB+S zl40%NkW+fhWTD}#@bUb?H0#XDzq>MpiSXS16?gC3SpPV4@@9|etT#}aQFK|auU9YK zxjpx_FK=J?%9Gn)`d2=h78)}(yEy$ir<~5`&2Y)ClV>c;s^9{HBso&p+^#CdtZ8%$VM-rLtalz2k?)Vx&I zA{tv5frnHk91w2$v<_cl%etKN26Ej>avQvOma{>ca+`(uT$5XxEy~ooWS}BS;H|~N zdzR*o=@9M^bc$h@2yCVt3I6bBu3xjhzB6~5{i_PO7TzZtNd;WvWz$%@&indPgaA)z z#xwB?_sD&$*}q)VB{y~AL=`fMzB@+c@Ba3|OlA_ml53=f-S}>;92ROW*kxGrYVPx{ zOCb1z=?oT##w89LyhF3*5HyDSDc)5x9F8d-McZUvi_W@n+|7>;f07WRFSxbrqvmDl znLLIPOCXEp!lL;p&0%WZ#7v%eS?fb1SI?X$ydw_@fGB`BrN*IohMlW9zfR<^#Ga`c z!bP)IPEnc&wq~!F`c5$+` zW}oBE(Rp+~*+190YatThR?Va`FBf~TXtwYU%}f9Km7{j;eLVWe1KZ#FYd^gGtKWY2 z_LIN#Yuj_rJh@%I<4ygfMPGc@KlX#y`nxXV(I-zJ3gC4b0eJ&&S=bqQ-)VddFiqX7 zX3qz2aHD_4>wFNE2H#mLY2IK2@s@tYi!U~>UAeTqdE=GsGhg`Z_K$z{x3{18k3YWs zl^^~dz41e*uo7Mo<{aPohf@Oxx}v#kvc;rQU?HSMv2IdC+rS z{~F7^Mrwih=`9ni2G)ZIKJ`fJ4}Rd$?Z5p`|I+sGT`zAx`Rl*Az4XG z=kiYdAos=XH$VM*+fV=gA8ddBzxbE8KmP;YX{IO(Y4S2Jz069p@67$F3lMLf3C|y& zb0p3n8x1v=^s;C!dBGk&+x-yKW|Mj>3 z+4joI&+3cqJGRT0^^F82@gMgu^1bI!O-&1b@>cG}-Z{OGQpdRflGo*ZJ-XM8hnGLO z>)O4Cpg-jX<8J`+T-G;%-gxze?GwNEsqIr={QUNh{;MC}zW;l^O+jEgXLxNa&FEe0 zoB-iEFR_Hx@cyhXhP8iW8XDzZd7aMvZ4HYiG+++M#H?*wbJ-u>k;gAiB%>aXXo_af zm=}IoXKIhabT3})XKFU4c@txOYpl$$_SMrP&73qKAX{m86C2m8b4X{dIv>poi{@uN zC!K+mjLwnO%#|}IE4r2(uy^Y@hI0-ri_=1OuvEYt3?-Oibt{bL`+W**a; zm->wUVJ`p4b0OqXg;E!Nsk6dw-t_l?N8!WgEW_sXiZGc0Me9b6h-@59YA&hWV^gIt z^*Dsih-}i|i7l{^6q{^{g*}a8PGNLSeTKflD|^3)4$XDY9366V;Gf*eXPwcU;utIp zsEq6i&B65sL#wM# zvw>&b;Y{$dN8omN(kQbvA`p@v^v{9jN}7)Ho8ppT&0-KtW9I7`xfWzF;9{DQ(Y#>| zJM-F=Ge&MU$dxqI`cC~N`C(Ju>FId`o#7>{?u=8zx?DK+joD%JGb{f^6+-YE{byvPci)smp=Ccobx@kM5KDjNPb9dB+gyrADW`1}*wdoI7a{pk0;XZ!bl z!3zf$d3>vDGR0=iac+-2{`B_0{KH?|{@&00{`Se2u591;-bc1a9(qXM+*2=Un&NNX z)LnIo-Y~W5UPVb|Ebh@i(yW{hL4V{_WrWk?-5S{ae40D8ts;JD<}gcetyb!aJXhn%`#s z*k3R2x3bb4x}llePT)IOvuJYrn&%M-2Mj%OBH%|eDSb({ z1I=qKye~mv>N*cz*-yV8Pu}nlJa^f)oT+GOUbLD!(p(GYJ);(1*K39~dsnr0Wjv?_ zI?!y@;BBCPvwp34?#v)-4xD&J8ZghsaVZ6q`@1-on_X7M3oKh(qsX;bS+r3-@&UeY^{0J0y}(%wQ#KX zxO)%a=3Fy{*t=+sF0PEJc_g+5G}>?A)O=J6IBWzTEspEpL(Q(ms=4(NUePIk^#; zo`qM}%9GqqYiMwG`vMYyx?8CHyISluyB5OtUL9s$E(^E%8_HDbu`hjX`-NZr)b{hg z_POo9|Jld4?b@~NyWjl|{W|J{+ue6v)1I&DJM_Ha%@?8lg=qFQ5>yXzc1AuWqC1=^ z&mwZ{$I+1?-NLce-gZ$F&-U{Z6TU_f?&gi{`Wx4`*RQ|6z4Xc}+tbfKxBdPS z`|jQToge(B?fX9ZZQIBG%(re2+?QX&M04HLEiF=6-&8-1l`olla!-B%B`EO)u z7LnFmf(h`TB=Fj9TRG&-tggKIl8s-r>2KNYy_8MVF9tf_)E6AT`{^%lzo=gR%rAd#`v<@L)$PHD@87=d;fJ>S?!8a1v3G4( z=q0bQ3d=Lu&t~?hWcpKG;5!Z!t#S-exJjGTk=y4LoBUy@x{g4t{fz=;5HDY3-l_ei zm#=TH)pPmy)6Z;QeEhlXU;OZc+h6{3AK1S4dp@LZ9K2uWP~QmANH3$ys+r2}QZcLg zxPR10j&w8_lL*)QTwmvQ&xv_RNCeu8MeEKRPcXe_c5gj6yMI^|Pc0K$cXP!z&K%Vv z4jx?a)WFI>b9S|Df8)o0dHdLh-oE|FzxHiz2ClN$-I_~- zHP_yqbL>G}o}(wkrqpGwQj6AX&$6lh#>vz(HM0lnl8(dvp}4c0-@n2Q%_em;#Xu(r zF0J{f7I>^VcdKEF0@D#3h1r_++?oe3ct?;;@S6M9bKS+`Zty%YD_%l7FY!ch0cBjx zytXLKMvlp24s&THZpWHzIU6T<$ucz$K!jLxrIV=EOf698G@7xrB+TH3=Hff!buO9< zF9NG3q==oSC`@hk%vQ~MPvKKA-Pu1HYt#c*D*YxyK7RqjeE^k>tO)Qf?W{Re)kK-c z7@L!YaEpf|Bi!M20aLxoAq<+DgRtiIL1{nKXsIF@RzPpPngO@93*e0ym}&Fc6)vXa zb}GkW=xXdWTUv9sW^x?znxbMapn1ON6G#>fIGxZd8?v?d&+A`sB4FbD#We_JKhj(_ z-MW8MLV?BS18Yg($w3N&l4{(IS^QexzGg@@oJaGLVOyUUEwW9VIU9PfFu&;hiQn0N z`fvXW`bp;{;pA`4LultPt0*c-?a7RsIl-K=MRYBk7HyiCYT;vAbe?z}f7im|h3OM# z5<%v3V&}rmbDZzKHu*Epy|R7ziLY*-{JqDwpZ&yV^>53b+8%%Lt?hGf@GD_gwhzAT z?(JRo-?QDPH%Zs7-R)l$AU`vfG>KeF@N5= zd0lU0_2x(aVUFiser5aI3$JWnd*$`*zDqZ@Z@zY8d*8!%Z6EoL_ijJ*v2WSl_f3y% z-}s()`d4gWp;rtjQ;X=__pbqU*KOB7mT8*$r#-lotzK)T2p_qo9h&qLfLFPgAi6Bi z8_wDxQH#*gKfHU*5XxG-LqjrbUw!7K?TIIz-hT6UzqtL}CqA?N!DCNvUwG+`?Xl~; zLAi==S}@bkKWLm*!1$%?K986x;^*mYukfYu5aITRsDSQ-tD8``AzEO2exnghDWyd ze#685DK&Z4UYamsaFHa!xqB$9{Qbt~qW$Bn&UTo$|_ zHIQAlx}2#wXP=)vXFU1z3)@%pT>kp+d~y4y`ewpszwou~u@~>$9>2k_-Co(g8077-eSlt z-Z6I1iNz2&bOooiZ5swjmn6xckS5)``2d!ImqyDV>scq zedVd=-OFG7t;e>X|9?NXeeR3TY+rcg^7iHH>gA;?+jl;A&-PBe#@?fE_FcPnm;OnB zz7Ul%zTw0EvMu#Q%i0AS@rN}UfJZCl)~w0E8(_10ExVsf{Rgc0M!~DEzqUQ|@~i6Q z%lcL5H?~Kv+}PfG_l@lX?|xwW-VcBC_UAtG&D(qQ`ug7YJXAYER&in>b&uQVU;jN7 z$s#eOS7HnQ;J)4dp$Ux_=$}*NAy9|{{gJwla{|1Tb^OZN4CG?mV z2mmK#pPduO8JYnPe5Rn2r{e`^UVPdRb?V^*qD4%lZ~>GhY0R_mLQ>qp;VVJ9Q#4b6!6U*6oHspbC$_4c@4=f z2QRh@X(nzj$w`hhmlUvjUJ|Jux`k%ZY$m;_s_#zn>$QLV?|gFmY5kD}ftU+yJh&jIuD0l2+k7g(tVCzxvGf_!G}>pLyby?YF=3%J$e(uW#E+H}sRVYukPL zV)PsCx~eZmulnEMUA}x-Z+tK7Cm)ye?|=B}gkRIr>F)F3T_w>?{Td}d3Ap*@&FzMM zO7h0_>)WgPNy+oCzOg;_ivCNU&%C;Auj{`6`S6wPqwl(F`_Q}Z(Ho%qwnra%aC_uk z@7zB4C*HliU;nO=pWxA(9{zPE@{zapG|uu`d^@%0an4~_o|6$Ay9gCJZZ$0tq_NAv(=NDAthpuh!xc{#0Vf{q$zH9XIivAtiW&azlJM|w8xx`N> z=_Nw=5hY^u!B1wGQ1hE_zL}p~`U{db^;44T+w-rzu3o;TUg}eQ-rjk2``&k5+rCX- zV7`xDzU%G!d}#ZSdijm|3HvquWc@1tn6U=@T_Kn1g0&z#ap+?)3s@HWEx-Ejr+9HP zo!zdLZb!UvIZaQ)Tk(gQ1v>A{`S~oO?j@yrU0(=1r(cWz)E|6#`{I|L+PODaJM~lkNA9`0-E;Mtev+pD7?VEv4^8Y;l% z&Yw<{4h%oj=DFnc?@jgdhMvhc)X!Jd%V*TfFTJE3JeO?n;cMIXJ*r;5`(A&;;E{K| zV|%xr%WwbI_iXRhGs<(>KMA8aH~B^vf5_Q|lKs?K2A_^q|A)?m4!?Q&jHENojSF;H zHP5p>*Fp?l&DE#Ts+D&bO#$iInk_n+(|vdo*S);)=3Dv#{f+Hw&%UT$KCyl2%U^Xb zAJcRB2YQYD74`CkC-q#uPA~7$7ovAek#d-f!x0WOI_Ki z&N6@0M!z1om-?^hzIo%#?YduMZ}|27+1K9K9`9cAI6r)K`$4_Ne(*i_ZtvG~`N+fS z<-60%N8kB2_wow=d!`zk4@$?L_WdJoDx7Q80&vx#EU5J{+P!|l-#FjtpOJFx`{%ra zH$fF@3aB7Uyr)oj>@|lMN8GTmD6pnwv44Hd=!j?*tANzxZ|aNAkJcBRZ>m<8%yrC5 z8m!)-C&3(Pmif%r40F^uA9?7@PvLrsU&OlvA za%kZi)!BIM8#4IlZP+0h@f0sFEOg8jS6U|t!tgb z3;IYiMvW!(xE2fGT+L=@;L@>j_Z=3nTpCkZJ1B2H^1l3&y-Q3Mb#h zR!TVG>w=mOBbqEKd3AN&Oenk-c|nCI^NLDJ7zpr3G~>6y_b3_rIH8&BQP7oCjEm6R z-jMURR;Y@S23f`wNJRsV`pm?w_}|>G3XjvLL6S? zX^qKD)S0OX!|iJzvEnC2j4})xB#Ysw&cqm8n$O}DJ!fNn5p8j@_F!H0DATUal>-;3 z)|YB%)rN}YhACMN>Wp>NVzPlXjVHSJ<52THcksy+Es!)Ocgn}0RQ}>YuU@=?xm#aA z^7)9~Y<&Ose9)K|Uw&P0l3vV5~m^^PZ`+4V^Md+BFQ0$$WqnbqUaFr@s+V7-pU=Lm zfA6b4x|c6(FTQepd-)Chd)e33&+B^gs;_?D;0>pkcq7FZqx{!p@6{KI_o|oosFx4j zdu@B${nxg)KXAW#`RMk@+wXBN>E9K75p?gp_iXQY@V@P#x8FB@l4)UeNiW&1Dw0Cv zHAeL~>Yrj}-I&*K|0p5eu2egNgKO>II2{!e-b8!u0}`&;Kdnn+D=}=Gxf7a|^lZ&` z7Nuf+u2pN*`5rx!e7;9tsBhbMcr(ww`0Dnod#Rr^>Y04y6@BsfwHNhlzOsE)z5Lqq zujrY4eS7|;7q%B(y6$fTysU5JyzVbT(o6Kx%d7gg&)4+D%-!ncJ$GH+?&rDGH-tl@u5>?_`1seJsd3kgIvhVI z^rZiu0+Hs!=*p&N#RPUdC)Awb{yCDx=ziQhr!sT#M>q+~y0X;yN&Mt3n4r#FiX1Jd za6Y4&#vPOvF!VQQF6*0dm-Sl)_vrJz`pIFBXVj}_o_lF~>BU$4+W;@q%ctu#mR>%m zFGlq`{G59E^2>T{)ie2$dik23%j03 zH|_LHKKu@S)92y)^efxk@d zwfZyh>+2kKSCt5^;^o%;>!{+c{t?x9L^?MU*^@37;ElW0ne&M(t>&+46jN3vtmIvRM1j+Aev~oK&DRBV_&V3Up&qAd5n1jA z!UfY@uS3XMZLM~Tj~t0dsA2N%?oz)0@m(dNcNf? z=m_U&%~&G6&s^z~!+RTo*|&*dayUB3nY1f+a9j`jXA}Vmc04q5SG{7_m>m%2S^wUqwvw661ImPbk5O*u79mQyAHVFo-Y9+W3&;YdjXkxX@*jJL}*Q z110Mo22~|sJ2e`!dYLy**?CZ5aFgOYOEXy<1>7m8=Jl}P;yAes0onp)EFFJ%In<0E zl9lETKGIyg?LXL~RUY)u5Z669lA-(8x@0}lyyC$f_itB=*3_DvI2`RtwkYVzx=)K{ zXVTfSWCsvkF@Dg)(${^Zr{?6mwPr`0bLKkF{;sIjY)A4Aow7Br^__F(@+Kf^ebt4Z zd%*8EiQ||I-QEKfRqxu9|1FW; zC|%Nb?l0@j580Mxb|34nF<0l9I>rD1KmbWZK~%x7L9JN~)~q+XXmu}@pP$CiOMcoV*U8Zu zX{kaz;9#EDIZZ}v?{lT<9k;D96=XN_16R-{o4|^urrd90uhijWBzvinlzt>;|=xlhMvnCx_2-6>6C~>lRGg`VuQH% zpZe<+f&IFVJeT@H$vuC(2bdG; zo`PNE@2Nzo=6)_&F}gQd<=UFs)|hS%cIJCrUe4;d+`C-scf3vCjM3*hfL*`NbIEHg zzfGV|eG_jym*l9k(Qmq4VHcj6{!mY?^BSw)THuRbUSsun-g9Y*i%vNBZHN6>0Cs5I z{ln$awP119>s)jO-`B|v0|O1sk@7Zo5PAL#0jSY>vO0ZjOlRr5+?R25=BTblhk0JH z*y_ENr?qcdmDhvLfx_c6ml{IYW8!1E#hGhO)~pEDB-f-};o-V+Yrgakk7H^t%wucK ztO}LpI3gG9jmL7Jc|2#q4PmX>B=T907Xy-2UmMdqE56dz8g_rTb}c%jsT>nyyLts{ zz6ke3mv}CA=2{c6jPo>iW?-rrdB*D;&xr}@VpW>Qc#+q+M0Ee4i6!T9EjBc;*M+Hh^`=U-*5n3mD9UcznT{J7mfb7Go{RM7v7ukHXAuHTQ z*M8t-S0t>{5gkr=%qxuFP;i&mTs3iclEPTE00Sx@SETc-@r6nMNK1U(H1%Js%^`dD zZ>O0wJu0?0OkOzKY#6+a*L~GIJ;ZcR7jP4dCKPksvc+bnX3;!&Z?`t+a&sr^EaNIX^}I2kV)zxP+Hr6KrgmTYx4 zWG3f4DYJj!QNHe}-usi?z0`zxU-=@B{~zX6{;lpG!|30ND6vTP@OfiqnJB`O`r-bT{p(yN$ff(2!xR<37_PDIwRUdz4_7mhZ2!^J*$*A=TOc%bCl+I z#AxjTP)q;aN{P%tM0P_SBTU|L!uMasE4f2B|CL`pM}!JVq4iA*!<@Yw=k(7^QXC08 z&A2Xh=9K1OWPdV7P71JKthv@GrSL9A=}C34m9UOw&xJYlehybO2bYp{EpR$jYSx^6 zuO{vKhp+2wTo&11>q8?^xu4X`J|ZSq&OLlw^yxWk&32k=|MdQd7kFulW|qZ^3tl(& zgyz9}i!)S%vUh$jsnYWN zd5JO^(Z`z05@TC%zSwxqKjZf=nJACK0AXo7uF*Z66n!P&VNX zd3z6j*sEbjyp^wShqdq)9AwW@#HxkTw*p&w0b$L#5$&-9&06#};?4_#zw00ewq3bQ zHOZ%DM;q%|Es0Gn+R)O%4b!2=S{3Lx4o3^L?VuJ8t}~Z_W6dFK+SH@4?JAlU7g4Qj zkx=Kp!*s7&XqGy|q%qA|@2e3=4*N%1 za+RlEj0q-pNa}{gtvTfH=+Sq*nYGPYr5Z<#v>|8CDFmEefwYLGdGFZP)9cnnfPVs8 z!Rxcx+}wj7QL)H@8aVJ!i#48HrB?TT?aEmuU}alZD;5rbN4%tMc1sAGrl)!Bh6sQI zj60<{pb&*MnlqQ3v0I=oHE;v)yMKB^OTPNSMfVaD1B#y8P_~{gtq;=8ZLi`FGj=ll=$!^?YVU;oJ3yJ_JJy^OT&L!;HC{oM5CN`*fAlE3YwTDq-cSYS zwl_7=2+*ViR}^npk9BAd?8DHBhntLNpSdEnEb&6HO3-q$fvuHc)Xn6!<4OO5nmsbP zjm_n-UMOzgKO}Td8l+BXGqMf|;Ycm0EBnXRd1sE|&~4VuUUN|+BMN4cg~zY0DJ)9u z4s>4OjT5paI$v|6P_k^R#Dos})V$aZG-nSmIbcYzC8knXS$DjUxw6i6Sm*3mSH)cD zbxtaxIlNJQq87M~&1LjY%TigBTIn`x;hlM(>zSK@_%pJz>|*e?Q+I6e&U4VH6Pk@* zpFd&XQb>4ocX)B=HZ=p(z@}oZu#jX=%$uVuiR<98D$O)yoH@9i(RqN@6H+>Yg|{^` zjTp~-fuWx%8@xQ=h04Nl@;c{Kkdg9WAWBAxJcbueWk;eY3^oDbtssYa?OfWg78=>qY;<|U35*P5NxzeFia zxZV&v46lnLxK5mXoJQ*xR=Cd>x@A;bPhBOs-CCzPI zqdEO!Bi>9wr70f+9i8aIRQt7;8fBc)jHk~WQDBc`$$;IO&21FOa63WON%KR^_HYSA zlNwGWj*2e^Ig7Vo_Uoc=$RpNz{r_C-xm5TMU$BA`pKkui8uxt09v?=3ID_?SP5w~} z_I#+>YqUkPt1NQXL$i3olpc^9uZMk_6}Puvu3i7+$RC_l3wV|@XWru5X->$@IW)81 z<|Xiy=CYED0{Ig{4aD+6SPw5!3!MDPD9u<7G((vlrB`I(&9DD(?>Tlgi=MMreg%`> zu{It%$?ODxg79E2X&CpTHQU;X0hMO+FfX6<4+YV>w_8xp{God}U`%Tz~OqNO7OrKjMdGqEH?MYyVcw-Mi*>$CL}Z zKgDvgf6A5TuU=1i4(mDPN2`w2+Wc@)i&2c|w7#Jky^N~8?5k#Kj&6oIb?@h7&ufQU z#NPAANpRRcnqy0NCz*hlULJfJaOqC{;9d^yw{v$&OZ7V&1dz` zq@y5Gup_j$_K+Q*8H~SZugy6hmoqdM3xQ|%575x;Mb%j5YPuDWpHD#!`)4De43}bd z<8=Q9FmUsFBO*78c+Sxb#+nN&7KiDwYIeLxYenH; z=q_nFo8rGM*dM)UUb=ftfT5#obmYDT;r z-f=Ejb9J3NK0)D-^RO1EG^8BF!|n3Ov1&Fi`w)Wu=^q>Dg~$P1d)`U%s8PT%AS6O2 z$Z{#KA3iyJ&kI~U3$G30FlC9v1|{6s%?){t!m>*4<_m_a!;C|pP#4u)DK4bh*wdQP zFdhhS2bz&H)n4MzgTl>w9I(1r61 z&921>&1N8Y)x5IrHP`MFwQ82-q-F`DUWc!95V!<^pqs_!H+K&nrwIatk$+vw>t1NYlE6Z(Mi% z!`eB#Bd`C+&Kx?#h-P0jiDnEncAAB@@OI{&pD;+LiDoVEHaGX$eUb{68isOz=EMcr zQVUoK414j)V*W505di%o0rgL0BLiZEziS%|SNOt-TC`>5xLqymwAmMP344ZSFe@*s zR%RdE0Q5OEcTghF)m*U`IdfqnYmG&7EM1qq=FvYuE?;S8IqIy16HLvNki9nRsB;N9 z|20Es*S)~vVWhuew0UJePjl@6Jr3bg10ItV7Z|%H#;F>=_Rk^RzxB)wuqQ+F;O&YW zXuj~7gGj2D{-9nI`J*tYNccc9teCBkQ$dNh0V=5+{e;)8b@_e)rry3UK&kX3UG z%^q&DEeg^MDB*_J++#NtLoqiVKXx=GCdZCmigohC`@@Cat-B%iR%Zw#`AF!+T!;tOPxkXHZ&@E{o>) zI>)wM#>cNzIQcjj4ZvQ>qpF%IJL?k5SGC!0l9emPN4XDz5a!r(w^$z%7RBXt^P12u zU6j@^G?c?6dtMjY`4Y#WH{O~%mi9}RHS+^BeYa}tdGcFfv=$={_fvwqhGwd{D z@er0;jQz6~Zz>4lu+HUkZv40I9|_o}JLBFnQ{-9wlV)Jej0W&MI`z=W9z7h?Fx?d= zqVb%-(!34{uft_$z#U#KcABH&STjN8b9@n<&}>iDcIIikY3f353t^&9%#AxwvoM5_ z+jVy6L7j;gu8TOBn-^clX^LLfu7!mpoN@DwdgZV?>tJkUX{Cf&;`ZKm%nk$27 zriN87iSTsKQk&9@1HVa~Lh}=v1p^50Da|Cv>s&aI@?P}JMWd2wa;q~(o}oEe zv3SqQXv-FeJFEq3>SQLNys@mul#FnJJEht1(qt|f4*ExuxT2X54{L-w zwLnH|Zoql{GpmK3R|_#My-J3?&HHZ6x}W!&;aVW>R4v#fd$1;_)m++4SVlr!joa0% z_+=l_Y%-rcQgoFOF|$RF>whcF0ueVfyCyOW=F*I*20G5_ALyh0ojh|XQ4dww)9xR>^1uzRiK@$*^PGDe_0IvL ze-H&3?gS;Z?W^XRI{+GMQZ50`=mnFfnNqwf~ z+L+~K!w@S#i?hxg;SThLjNa& z`=|yLOMtUdgDn*dZ*-9VtNJ4%U zN;Y$Y^g%#D_Tc@5z^G`pq1KtNnz6u4=G=>`xKC>~+*u(u)X`~*>BM)Q=2q33$?AQG z%(kRJ))=D}u1|K|d$)dL#Uui1%!_DLK+*LJe>7v=r7*5GlsUWTTFAnH+xMO37=0zT z0L=HAdvE0}UeH5l5f}kaCxgqr$&Cg~?ptwj=*`udE7hz;k<_g@mgSLVFsYtU&5Kb3 zdW*=#ZWLr_R-#LW&3XQqQV-Dajyj*Cxw(tBB1L5(aBAZ8&3${C6Iyz#5KdLpXKwb7 z8mAWcQ59d;*-?V{C4hy-k>;3nMYA(kfVjNw-OAi<@{&*f_S#i`C=bsZHs|10yq=cz zNHfkFLzdQ^A_}6}XYcTJu43UOs&zupb8}TqJqIelVV#}zuoi(DKWl+8%UZ1m z6{W3`msHmo6NqSBG~2+sYGKXf)T9g5-ZM0h{fleNp(t)o&3jynC=xIYc1S@70W^^n z!j^??Nl~bv``NZ0aX0Sp%(2Jz8q+|ycba=|omIdyG#eqe!^Oj>(v4o&ri=S$4MLxD z=BQJ23U@-YbCRc$_L(D3l%SW*0e~r|C54H7eg23toQVbqu0-t_;0>d%a#G`d{<^jk zGkM`LFB6ZpaL?TFyZ$wXNO@1xB3$AIstjEVFNtwh#UJz!-SO$J`R%>ViT$vDB{jTO zYt4{%UD$=?aMu``g#eRk$7fNp7^jP83xPEk)EEpk=Bz|ngEEB9J#$RC_nPGq!J+1Y z4i2j|FHAGfj66&8RM)R_*20C3NF;2@KUL(lI5j)#%vm@rm7+Dn?9m12b(@_nL2xrV z|Jpz7JIy3GsTmS|Dj#)X?mc0`jzzaVbGF1>XhZ6v$m-w4&K%^e-_u%Wo)UDOD`{tS z;jGj;nMH1J)?BLW!YojqAKPpqvd=R$(7d?Ge^&oSw_6s3j1po-^R!XG<~122xs24(4^~C z1u9@vvA2Q}rO&u?=CZ>wmnuVS$`hEFJ1q{8u<2p}?syWRK6J>5jcWvG7R6y7*Ltag z7hA*3n@HPWVX1|0Oc}!W%R~%)#i~CQgXZYPkI{h!UqrLe%Sc9OY%gwqSEW0I4M63u zjNy=&VpuqtPF~N=VY4p9;Dlfqv(Bu@ABKP$nrym4q0jUWd}5-}beam_54gLF@!ekk z6a$eI@sT$r|I|7SWb8B9BfhKbYI8@diaBB$Ud&A6|Naq5;(%hb~ zs4_Ux>p2Ub>#Ugb&YT0yn`o}t60^3=oY-uYX|08Oe&(55`$v3ule@2z*A_v1jyoAq zyRg|m%*UEx>AaIWniX68t`P*RQ)EZ2XD;9M0@QKnGz*f90)=F}I zqKu#(v0*>iKa3+i%vlh%)2wxb^tJhyT3|w-KjDR|Z05~k>c?kgI1WbHO`-YV1vYud z+Km`B-S~2wkA_^L^OAieAq$LA7gp=OxyzXP>zwiK5I&o%K$$0*j%ta*GYS zwH|1uK+cDgJ;3Xa{qsiwi^1HvB&d09gTrR@@o8_(LBN}V=dgc`PBvW))?JR&7z!B& z35v5|r_5H4h?%y|Y>dFZ7k7Az0UK;A7tM~B@3sw%Ho(xkn-orE35y_@&lKafH=A4Z}8UQG~nN_vAfc8%2t`d@v z+r0BNLsseo077$f&p51e+rjxy#fX- zkGPCO&25ifU6)#z(l427#Tx2aikC}o?Pvp3$!VGU~Y0cpm>_9U_vlcMd+L~*HW)px6 z6SIuLYzuku@Y$a1z1DIZ_YZvYCO_AXAH{USSv{6hg|bjI4~OodA4SUI4pU?Pe>}if6X9|{uIbxR1xNZi1W@|P_1*-JaU@7HKU=) zLF98^i$yc(wKP9-(&_GgmF8wRhp9)Eyzk88QFQ}zAD^W$sq$c zpwWvZYn->;KVsl5ZivToQoPQ^<~&&CoN+Glt7Ed%->rB(L`X#UFPcknfe!nZpPGgL zLT64;t17FPN znsc^pb>^JqkKp|{{X3~y*50wTu}@80>*2EEi9FFi$FBYBbL1#pMxEi(P(Wg|W`fCw zr~LBz%-KiR0$OLpw9cJo92%3!i(UWxMW<1^SS!h+$gGvOAf%6|Z!Lqwidnp0;MlgWI1utbQXU=i!;li*yMRZ8S5f z6pqmxi06lAPWH;0J{OntMGIcdSfIIhSR1JeF0MXf_D_{~@|xipm%HS-_xS61_OaWH!jA(G~8Gi%1sY(Vn#>s-abTbUg) z-xzo~>TIq(jRAYjVk*sHwb%S>E!O@yJxt!Ha z%yG$jc;;Hm?lr^W(Nz=0XIlN6X7S6Tk3Mrlq%kD+X|4!vkQH(B5^s{gi0bFWb9*xb z=HXcBVcq@1VJ_W)*XWMy-jB;?%}4#~DBaBsu;xsiR}~&=dSl5JRCkA8SGif~^{gZvvLNoJLsOR=(mi`qFH}jex{53U+ z{1|-}6b^G}3DOz?F4WGdi1>ZeRR5n&@CA}_5Nlps9vgpu#VVe zvfg1aH@H}Q*iF(JSfr%QTgVtIj`)Q|OQDupOwAoVHHSBOid2i>SesXuwit=A2AXFr zG}pS_9n)D8GOdm+^sUaEqs+~TS(!Q^Rx)=j<{I>N0W`%~DaaCFCM?;{8X*cB(+ z$bV4h0hc{WIxaCCXPp4dWY$GFW+4|%c9Q!@vq{2Z-?E0jhs>SZy|U0)#`H+@5@Vi~ zoB6s&5}>)CE>9ihzG`OA@|t0%FDoya&OdWGU#DsTS!!uoUsi4m(kzXN)?D{9G_#kn z!`7@j@ClF?qO*Hu;jmh3#->r4hkqoN28C2+^Mto;76E}i z6O?PM&0E_d4^CnG%-K-2D39EL3^ca64>eoIIB1GUV!^9!MbT#XGgfXa;4j`kw5@+n zO|9ZJHG7}c@7g7|t}WE?SqnmQ4uhNw(3%*8owF9H^R3TZID4O|5H^d@J-p zy;BePDa`?`nrC3RO(|HfT60^vETey=;Z~Z7pPEU4=0tT)?x$WeY}bV|ZoS?{E6fh) z$+QFpnsKCASX1cQF}cS&nWS04qh1G^%}W9Whe_9ZPKbfC^JEfB+qv`E*8)4pS$)u? zLHF<)oR}sVL2aPUQDf#h8@;omT7P5P%n_!&gq=lLi0QZ~s4XjAH94q7%Q)}MIZ*?h32rK^yt<^zptPX4o!T$RMg<#$ zulth$hS7o2yqvkNMR#$u*T=XsAon|fM8v8o+ zoRIFQf6-D(LgEyyu=`he&+H#!3M**36UE-F!?{>Q@(`lYxvhOX9BF0Xts(eknXx9{ zF-?qSXKGGnKdYmE$uTo^7O-{ZG;7Vqb$SruIez|(+QoEzCX@Dv)FK>buC;fLwSTf% zyP~EZ8^zL=t{v+p(HEU9ASMwgd**G4=yAo&fiz7p`P(2ie9ZFTbgC9ncqmM$t4utf zxfjRaMzn0snFtEo3QbW;G7o={u?$`rlg4DufX^k9!z~MKA(_ZrYmQ>oHuVdDb!NQfI92teTr; zFqqO-OiXmQ=1R6|hIhQMpVZvExp%gr67^v%@Ca4?nsq+tp9z{fG85w$(< zM;>OUv}ZggY)&6ON6wcEe8j-fwXg@xG}iVyD_Z6_h=oA*>uYOZl^DECd)3^2-WHgD zr9))R>#!^|4Zm3|6fag;4m87$rd6}+u3XI>%>)Yw7P1;}+ETm#Y~uw?1m=Yc7-vqn z=1pW6p3+TtZ)4O@!46w71qak#MAj#mi}_sR=q)Z&z8^ZL@Px}yVK49)Z5)!?RX zfyI7q|AaM}0_X>E8vUBVa`0*fcGc|O6Y64|)xRP&vo52~VMc8C3kY(cJ9XwFb=3?X zQ5u8ySaS*jFDKP3V_(@n@lfDvLP(?M@cD~_ItQ!S*n=sw4sUXS4|30qu`RAf*TOR5 z>DLTolgC_1l3>l*)vkZ!t9o?*yc2QUS~D4Fpv&D_DRnjxj^hi5M2RSPeQxDsX+=AqgBa~5kob>^CCXf~g$^}HOOr`Bwd zz>Ld2x~k#w#sG+s4GCP5Jr#&$6t_dR^Uj>`L?o{1ShY$|JB?GurP*$j#C0Ux>R!mHE@4s8| zhkMl=9IqLbfsi(O)@QG?#TYIgv!rPaTKSAY(VF`#6WJ{Kuh)86>%6!&S%XNT!Nr|h z)Htog2-%$`Kxuxs`*L4Y{Z6R{pv{zHBF4EjKvD318=dO&CAR z5x)uLu`W`a-y^iS%hWg?P|eW{&N&PrAH%@R!GQo*_^Fv$@X>%!8&VG$ zu98d(UYioA$vo%*7bmn$g$6^aF0;0Kn5j1Nd0$gh?iqJO_jG@?s+mbiO z&QSW3!!N1e1{S-PtqGd;aR=D)4DBkk5sXmXKky_uOY;azXHDr#g*dkiy}?uct46oZ zKozrUuqaEjlq^Z)1a=I~O|)t*T)VO)RwD^LEh$x_;y%>uw5QJ8)QlEjE${0-bCO_{ zz16IyX7b3#o7f`^Su~0oUhw4Z8u*UQnin8b%+5r<#C5)NH4E*?;_#A- zDKO%W{^*dS1yN@p9m~d8E;i3??Mrdia@1m+4IJVfTPX6A{S$PDODtD7!rg%Ij9L`! z*=J61y^*E}@#x=@+%@vfbOG*hmgYEhEpTa}e~dHx7q=3ijSmcbDl)e$ZNr5zBeh`O zo6)`dhq>d;rA4g=MfdzxJMdHhU+5D%-uiTd+)L&%-5QO0|9Q3&008Z`MVaRPj60X#=B@a;Keu6 z3|x$@`49VkJetwK=Csm{q|Phb@Q+y_;QE^_Yb_L=SSA|KCe)QXszrXi7BVrWP-O4K zazIcc=S6HQymA+>qwotM9?}44 zXf1Vv%q+&BBO^Su7&frC)?9l$OLIhvQ@S*#T76hhI&0B9t*Od^SFc>k`p)97TM-#){IJKgE=`ccnfBG7 zL!{ORrgb^X($+n`t!w=zUwd<(T&w2BAX4*nS*Bqez6DpL!v)K_fa8d_0euf-GTygYtheK;g7>+^Ny(m#Du64Ex>W0tBPRD=_KS6EP#Pb-28F#xTcr`Y`E`CBs@W{1t4=HmpaD&(Z zOVpTZ(!QQn(4d<_zCO)~8d8{qdx!{PT^cklOllm6lywa|)?D5d1e4c?KCM@K!wMgC z#b5*6%iX;f2JLYbup(B?v6puTs(cG&rUEUvWjfFD3Si!#-MtoVTXB_oxU?Rc=VbD> zM#n8to-XSWva^guPwL*w=Jxu~r}Y7DT}JB8a)eL(im8NSpIXbkBBraYb>H7A=%g{E zT$_TlnrC^^2qMGo!VIV;W4^#TWcYe=j5l-@WN72J?b;RIduE+i_?4sI&*|L}Q;Xpp zkOncl5%S3Uu+#62Rz86p2Hq@rFSUC=7kd%w7VNFx+t&N6@s-8dnt3Y*dcL>S+6j6~ z)MQam_%{0e-|qd~0(MyHb}P;K%@ImzMk&&rP*)gzkcInLv-~m=$tR<0niW^bDt_?7 zSoRLo8r1pk$HSU!Pi>}ojkWTYOc#xZ zki9d8W@O0N_7QPPGaDx*bU*iv45Ld{!+g?@^tRbfNwMTkGu2Bvv)$ClX_?y+^1Q?nLMc52FwJj@J%d zgxQ_BiaF80M8HmrZccQ#4r&1idP;NU30v)nh3tcOUBk=he7fKEnS-17;xJ!d+QuFA zXKQZdqYoGyme{!mQt%MqLlrt1fZ>Vf)wmn$|miYrA&&&h5Ya zCr@vG|63j$9#53AAA_z`uPwRDwQjvQQ!_dI(eH}tRKrUGU#bI?PU}$$3z(O5N!NP) z3!FL!V-|e3p}Ajv;UdtQ#nF3fyFDj(T~6{V0BlKt%;ThH_~o5gW!)R>^)_LVZ@3i% zw)Z@ktN|wh8II9q@Q5Wl4DQ13$3?fkw;i=0&5{pMBNrOww3~}H2i#X5Wg*ZxMqvk! zyyi*J=!@~Pxo%p3nHh_-NLUTc#Y4RFMud2yVsQhRyyg;^HLrNbAM%Q`G#}T(0rtBV zY{%j3kuCI|W%l}j8(v~o4Xk^t@R~cK@xwnR9eIvsK@8VLJRY?^)|?|4P-EF!=3EIa zPhhh_m4{n$8D9bO5$R~5>>E`JUtjSRk4;*yyu+rarx}N`gZ??qyogAPr564|RzKDJ z@>4Hvzwm2cb{}uPbu)CtjSN;`|1=q3IZME9?bPIJs9*gGGKu6~Uu+r-u6Nir){7P( zPNGX(yBNE0m_{oM9yVy!hPfUwh0H7VSkxpaF9>x*Phqeb5SeQ&M()ONXK!5#oNj0)H)HAZFs%jo z!)YG%G|eGz@>|AQi(Q=+Gb9XwOaF>vP&cNzN3h$xdo>uf0NZg8)!dAUpd14qIvN;$$(GI zGQHdjU{}pAyg(NBlV$)KFWe`u0nT)(^Ww$7x!2l9EzgNzJwtgf?`E47lQL?fsfvjB$3_V_(f;DiotWUYs}G#&4U3ok%(bGtfb z<+Evhg!hUV`6o4_vjSK%*w6Z|nbi3=mIdDf)%`{JY62xZ_4tYav@@ z+TH0p&C9j^bkVG8^j?6J`;)&)H$CdL z&ia>d=U+PEOa{ZeWJ<0>M%nh~Nid2-xIcjAp%5)acnGwOt?)PNE3YlW!3&puh$?S( z347wj=2VMW5o54iO+3?h7K{hY>r(rO3lpS+F1$XQ=$zl6Pc#EOap7h5`RzVBqHiUgB5u6RW1f-MgPpc$-j{39tlYBj<9!OU zHOpapR1(YZP62+#70o&%mym3B5@7!e zI1>RE&FK?~lHZLpuf-}wL|k;?asd;weW|AfFJmz63!=B?;m#wO(wNCw%}y9W=p4!} zR{xxs3_sM&OG$;WF2}9}!$>A~c{DULIK~_xn=NnlMR)tee&=XLGczgZHLi?2>+SQx zU|>AVjGt*v%sKBov1)IfZ+Pb%uUb#8b6w=sRu!+-TJr4fYkeRXZ!`yR%w_Ep*SRkA z$yVRf^9hfQ5q&{iZSfxpR*mb)bI10qvD{JIawCT43AM95d1cE>(bPdOGbZ<2Zg4wl zA~0&io^|&;KjlqK&UkX2>t;D@qqiBKH63_>8o&3>2uJ6zpE=I;gXReY#jxgej>g`f zubLBmVTnmx{Mm7>MO>bjKRM2Mqi(#TFW8N`uH-%LSA5rq?3fvc!lh})x~6jUiQ`;%ci5n3I}c|&Z1H41q6Urq)Hg&ITXTlvX%6qney)kX{+Vcc zL9VDfbG?1O^2Ec;IM4BpTX_FDPQ>PZjkxhnP0xtrJ?DD+#JAU6$7IE(@%Y^+=J+)` zW;no$FAv$YwcA!l44ii}{&=0uAHt2!_c>zHo%P*lQeD3rwSS_V?_G)9Ih~_Mr!r;;7-UN5Y&J3B&*8_wl(aIXmd~ zPwVEjb91fw!R=Zk#@kLld-w=X$s+#s&WZaU|M1b~@GAm3jRdCQYHX`u{<#J|NW~}0 z?$JOcD9e_*dEvL6G+IT3Y~B+%ymk+R%<%&^PzEOfrGYIOdFIgaGZYx=?3v;6u0}#+F{M#)dDa*d#hP)K~gN> zsarqr&S%Ym_>wQpXa7#kPyK^Q2e4)i(xkWkt;0X}4;Du@oW1Lep=0NH>7O*Dj>5Np zgel~i7a!PzTborS*Jhlpvua-Wl+N*-nmjmR2n1y8~?9zQ2vX)Z7Reoo4RlG~k|40(7yH1~kSFw70Few3UX>_P2r)e&8;|bsSe9`QCA*hM%eeNHKY6iQ; z)_i}@t^dQK;8lYpM{DXmacUgDbmz8a^Gerio$EpLuE|R+`sHJkTU`-|q^y>m24Ii0Bo zoX^R=bFZ~1y5?!#!O7#FD@J_4%Xf3>@<7`BDpPjziF? zdDaPohxEcjNXkIje zJ6e;|cxpY0+Rt?Ai~d=2_)_;-H(U}Q-*ZzqE5B&|s(-J%Ni7E7IWs9+o>$EhV?D9v z&MlLRX!na|4Elcrkq1l2GyHFQwC5a2IUjbp**nz)@`#t#`ikK-{8FUzQ#m9=_$&tdLgl@y>=OPCZ;o1bU$rGM2tydrw;pX^iT=JL5lui2Xy zfxUB+_uD(y*vWxHmd~28qh5d!6V1V2`xoMB4lj}OkKJ>V9{QI`Im&_-&!ICt17k>- ztsQy8jnBWDt66)NC`m80VQozdhEXZD-nh$)z1&)e5Kg@IC~nfFf87WZq)5u#+x`+%&Gm!_-XVt2W3tQsqPhK3hFIRAss;j+m(B<03dUgscC zqkUw3sfGP-G>a_WoWI;x&CURGG%+_X(e0mXMhr>0&RSeGFB0=P)*Q)~-e8?Bl~+$R z*AsK}S1C_WtHwsh=JQswOz;TGkAA~;*GweitV`ZOiXP3xj#4p3U+Kyn&B+x$(-!8< z)=V#{(WrX5bJh)e`xpJEPL7w1Xhi`}BEp;qa$(an1|IxkE5>dDHI_~56>E-o<2NH= z`AemY{c{Rts#IJxm)EDRUg5~GnA<<+lW&3=3;42Lv9mx=WBuejZ~7-P_)?2<>p7xU zE}>S9jjmz{lAGD92}*YnQC^_II{H|%L_?l;&GA{N0-@(OnzLp%G72MwHUAry(Ikrw zB4qzi;u&C`%rR+}DEyU-oul}_*Ezt(8zl9M7an2>X40B?|4IW-nj3C*+2<7U%M|N4 zE}9c)Zru7c_P8zKm0b(gubRgpZ*%qeq!|)&z{Tj5YD!y{U;&`lz9#>7Ub;j}eW3xSsDEBqq)C%;j_h4=H=!3hnJ%u3P^=Sp=LKI(X%<{qdc1;w@rPi}ZYFkkq<> z&WJKu(VT}p#%Z;55sQ&Qyfm}N%``Uio-bia~zG&l%Lc!PmgD`6M+BsKS95DwNy z%{em&APE=H$xmLpw`Q;jQTnZM6q?Sp=;vgxag1yTG_L*2x$QCmfRV#;q~$#)M}DCB zP_xc7gycYPG|w6%LxpHfy&n*6|H^sx&ml}tn#cUCIrVQYKb0W;gE09#O9Q!)!svRX zR50-#1L_|0wa$sRT?C8E!LyH($XyEq@0w*)zQ;S~ym!sFJLjAbu(;hhsIfC?O?v+x znu&^H!3w}Kc>LDKer)&m91ueH=g%QnY`28D%NUHsIhvPkeC;1@u*P!)EgUj7Ze#n0 z6aN|l;=|-$Ia7;;@aLhQKR_35_Wk^64TpzF`<`RpoY5QxA@GL_t&q;jF6$ z&M8ysTxG$x&gK#g*6^}qb=OSJ#2PK~m;T|HTELNvi3xXjw`TATTJ>q2QVV>a)A36ZkX^fsyU}ba|oX`&nW~+y!O_1*W5Y> zZ%N9vG?SO)7N)fUSdRW-lga%fAKnoa%?E=CLKmyB#6sbF5#L3#yzJp+;+Z<{KmV{j zX%27Vhzzgx44lK~csZZ?x9?m+2(<<%<}Q~9p9^tluJ-m1NbVdgTI+!n20dMxZMbXR zwfIbPKPNDcw9#B$%OQJhJQ-Kb7$WwnIr?Aw2i`2<)&DxDFd_&C9_MxzF*+F{d`T2( z5lpanGlc@PO!0a@7(yM!f^c!etECU1HM^iOW~@@3+@=sxKZjYH?3fW#%{ks?Zj3W_ zqYy8r7EnO9H7A)hAGP>Wb7LXW2v;;5De>qh7i?*EA&CNiM^DXgYnT^Ys1J1FQj%SZ z)NI$e?7J4pi5)V(G@8db>>14f^y8X6_b)W$*Xq_}T#;;{|twndTPc2BaxVv!pwSQr< ztTk~G2CNM4G`;q3yw(grKh7V9+zg^~C#&+S{+Z2rhL<>pZ_SrlEQM$kaK*mU450>^ z-M_3am&$(Eta*jlF+{3n`MEfz0?VO-qz{<$vFWZ24XrA+t!#n#^Jb0v2Y zlZzU>zUL|oK)4g9ywWx8-kJsf?mZ_&$Yyr#kNX!D?w=cuZ1Jr^ZtCy`f4W^x%wN>` z-oMC2GmLNU@+4fJ6QebG$jP14KmGFbt>%X6>C8T7))*qcyaKgn6@Oyd{Lt=hj^1AK$s2Re_(~IrK2dlyT9F-gO|82Ko3ofg`8O z30~{0utk_W)JV98T141NKI%|<<;C&6W)7ks7uXDQ?$9Eut23kJp6?8S;HjN5^J~ z=JYF8qH~7PEJMy?k9^cI>mT1axHyx3U|4FNYGDy*0UvZ@QVXK7440i@Ebd?ZmrkXL zq2_CHlgYLJr+mRN5*Hn(O=~oL%Zu)5oAKo!e}tNw!*R$_$zkiSa?}t#QQrNp3sYOU zC&FNOiNq#G2ba+RoG-i>e7TJ`!Qk>C%}b5I@WKywkXPjdK5O2*(We=cYe7^rjM4il zk8ks?{*8_*S-cJqIYL_J`Gh*e)p=`Pr@U!)+#-Tdurj^9zEM z!%GH%qx1m}6pZF~{R6b?Ow8xCAU1dv(`%=iY{^M(r_Dl$-9JpDuf2!BcNyQWY5w@m37Cps zmF_d-JXZ1Mov~|yW@2cF58^%XWMJ$SYawO$>dpa9ERjE{#h^dZoC;I}`WWvt|FiDg zzRyz&sr>n!>j{rjVp?}@_wOg4lV87c`(8v5GvoZ6Y|Xw~^6pv~>^t-)?wonKcpg8z zb3goUlso57!OF(XW4I+=xe}UW&(C;q&Mm$4Z{l^3U+*6|!?WwmK3f08o#TK{e@?A4 z9Tm9O0!^tMHNeYAEzFxquF?F5-gEa_kdr&NYGo~{+o{fMfWpUt(4ov-XY9hR^e{PT~cyb&2gFAx-Iq;D9(dJzm1|}eDo-@7Y#cN>bLvGuoOZb%Yy=FlbwClVzo5Y%rTwz|C z9sF41kZxY`h^O>#HGk5-B}9}VecwMYxfSm0Tg`~e?f7y39H?9m0kuaUEW=nYK zp9}9=aKhZVC%x@oYXRG>&Uw>a((St(cE3?Av+i2NMn!OYW_204b08V$nUX;Bq}g^n^T)~; zyx|GBpT9|>VA&@QM3wKmA@+}W(RkDR%XbbgpV)IX-`^Pqd5ZGS`$y39;!oZ=3f*4Z zYk^O79Hq{mdi}HRoRsM7`_DgWa_irV=8-M?`#X2%4)4&cLpaE_>22I>8-_f4r3RN;aNMsna~_>)-Kby@tQqA6SFbQJNAuhF+`MPL>R;0znteT-PSYiBz^cb*{X_95@43yJ%6y}l z!)v5cw_4!4_YWICvVVQ&EcN)Dgm<;$lRIZYQDuRiocQ3y7>qn0^bfR*nD2W1XQUCw|07*qoM6N<$f+;F)4FCWD From ca367a80e3eb019aa5290055552228f844ade130 Mon Sep 17 00:00:00 2001 From: dangqingqing Date: Wed, 1 Mar 2017 10:58:22 +0800 Subject: [PATCH 032/186] follow comments --- python/paddle/v2/topology.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/python/paddle/v2/topology.py b/python/paddle/v2/topology.py index 6329915350..e2709e39de 100644 --- a/python/paddle/v2/topology.py +++ b/python/paddle/v2/topology.py @@ -74,12 +74,10 @@ class Topology(object): if isinstance(layer, v2_layer.DataLayerV2): data_layers[layer.name] = layer if not isinstance(layer, collections.Sequence): - for parent_layer in layer.__parent_layers__.values(): + layer = [layer] + for each_l in layer: + for parent_layer in each_l.__parent_layers__.values(): find_data_layer(parent_layer) - else: - for each_l in layer: - for parent_layer in each_l.__parent_layers__.values(): - find_data_layer(parent_layer) for layer in self.layers: find_data_layer(layer) @@ -93,8 +91,8 @@ class Topology(object): """ data_types_lists = [] + data_layers = self.data_layers() for each in self.__model_config__.input_layer_names: - data_layers = self.data_layers() data_types_lists.append((each, data_layers[each].type)) return data_types_lists From 1478dd622508f9e07416667e483c6e0eb6b55733 Mon Sep 17 00:00:00 2001 From: liaogang Date: Wed, 1 Mar 2017 11:13:17 +0800 Subject: [PATCH 033/186] Add git completion, prompt, pre-commit in docker --- paddle/scripts/docker/Dockerfile | 46 +- paddle/scripts/docker/root/.bashrc | 46 + paddle/scripts/docker/root/.gitconfig | 43 + .../docker/root/.scripts/git-completion.sh | 2663 +++++++++++++++++ .../docker/root/.scripts/git-prompt.sh | 445 +++ 5 files changed, 3225 insertions(+), 18 deletions(-) create mode 100755 paddle/scripts/docker/root/.bashrc create mode 100755 paddle/scripts/docker/root/.gitconfig create mode 100755 paddle/scripts/docker/root/.scripts/git-completion.sh create mode 100755 paddle/scripts/docker/root/.scripts/git-prompt.sh diff --git a/paddle/scripts/docker/Dockerfile b/paddle/scripts/docker/Dockerfile index 27d19dc15c..27423faef4 100644 --- a/paddle/scripts/docker/Dockerfile +++ b/paddle/scripts/docker/Dockerfile @@ -5,38 +5,49 @@ ARG DEBIAN_FRONTEND=noninteractive ARG UBUNTU_MIRROR RUN /bin/bash -c 'if [[ -n ${UBUNTU_MIRROR} ]]; then sed -i 's#http://archive.ubuntu.com#${UBUNTU_MIRROR}#g' /etc/apt/sources.list; fi' +# ENV variables +ARG BUILD_WOBOQ +ARG BUILD_AND_INSTALL +ARG WITH_AVX +ARG WITH_DOC +ARG WITH_STYLE_CHECK + +ENV BUILD_WOBOQ=${BUILD_WOBOQ:-OFF} +ENV BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF} +ENV WITH_GPU=OFF +ENV WITH_AVX=${WITH_AVX:-ON} +ENV WITH_DOC=${WITH_DOC:-OFF} +ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF} + +ENV HOME /root + +# Add bash enhancements +ADD root/.bashrc /root/.bashrc +ADD root/.gitconfig /root/.gitconfig +ADD root/.scripts /root/.scripts + RUN apt-get update && \ apt-get install -y git python-pip python-dev openssh-server bison && \ apt-get install -y wget unzip tar xz-utils bzip2 gzip coreutils && \ apt-get install -y curl sed grep graphviz libjpeg-dev zlib1g-dev && \ apt-get install -y python-numpy python-matplotlib gcc g++ gfortran && \ - apt-get install -y automake && \ + apt-get install -y automake locales && \ apt-get clean -y +# Fix locales to en_US.UTF-8 +RUN localedef -i en_US -f UTF-8 en_US.UTF-8 + RUN pip install --upgrade pip && \ - pip install -U "protobuf==3.1.0" && \ + pip install -U 'protobuf==3.1.0' && \ pip install -U wheel pillow BeautifulSoup && \ pip install -U docopt PyYAML sphinx && \ - pip install -U sphinx_rtd_theme recommonmark jupyter + pip install -U sphinx_rtd_theme recommonmark && \ + pip install -U pre-commit 'requests==2.9.2' jupyter RUN curl -sSL https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz | tar -xz && \ cd cmake-3.4.1 && ./bootstrap && make -j `nproc` && make install && \ cd .. && rm -rf cmake-3.4.1 -ARG BUILD_WOBOQ -ARG BUILD_AND_INSTALL -ARG WITH_AVX -ARG WITH_DOC -ARG WITH_STYLE_CHECK - -ENV BUILD_WOBOQ=${BUILD_WOBOQ:-OFF} -ENV BUILD_AND_INSTALL=${BUILD_AND_INSTALL:-OFF} -ENV WITH_GPU=OFF -ENV WITH_AVX=${WITH_AVX:-ON} -ENV WITH_DOC=${WITH_DOC:-OFF} -ENV WITH_STYLE_CHECK=${WITH_STYLE_CHECK:-OFF} - -RUN mkdir /paddle COPY . /paddle/ RUN /paddle/paddle/scripts/docker/build.sh VOLUME ["/usr/share/nginx/html/data", "/usr/share/nginx/html/paddle"] @@ -53,7 +64,6 @@ RUN mkdir /notes/ WORKDIR "/notes" EXPOSE 8888 -RUN mkdir -p /opt/bin COPY ./paddle/scripts/docker/entrypoint /opt/bin/ CMD ["/opt/bin/entrypoint"] diff --git a/paddle/scripts/docker/root/.bashrc b/paddle/scripts/docker/root/.bashrc new file mode 100755 index 0000000000..4b3024e4e8 --- /dev/null +++ b/paddle/scripts/docker/root/.bashrc @@ -0,0 +1,46 @@ +# Locales + +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 +export LANGUAGE=en_US.UTF-8 + +# Aliases + +alias rm='rm -i' +alias cp='cp -i' +alias mv='mv -i' + +alias ls='ls -hFG' +alias l='ls -lF' +alias ll='ls -alF' +alias lt='ls -ltrF' +alias ll='ls -alF' +alias lls='ls -alSrF' +alias llt='ls -altrF' + +# Colorize directory listing + +alias ls="ls -ph --color=auto" + +# Colorize grep + +if echo hello|grep --color=auto l >/dev/null 2>&1; then + export GREP_OPTIONS="--color=auto" GREP_COLOR="1;31" +fi + +# Shell + +export CLICOLOR="1" + +YELLOW="\[\033[1;33m\]" +NO_COLOUR="\[\033[0m\]" +GREEN="\[\033[1;32m\]" +WHITE="\[\033[1;37m\]" + +source ~/.scripts/git-prompt.sh + +export PS1="\[\033[1;33m\]λ $WHITE\h $GREEN\w$YELLOW\$(__git_ps1 \" \[\033[35m\]{\[\033[36m\]%s\[\033[35m\]}\")$NO_COLOUR " + +# Git + +source ~/.scripts/git-completion.sh diff --git a/paddle/scripts/docker/root/.gitconfig b/paddle/scripts/docker/root/.gitconfig new file mode 100755 index 0000000000..6c249803a5 --- /dev/null +++ b/paddle/scripts/docker/root/.gitconfig @@ -0,0 +1,43 @@ +[user] + name = + email = + +[alias] + st = status --branch --short + ci = commit + br = branch + co = checkout + df = diff + l = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short + ll = log --stat + +[merge] + tool = vimdiff + +[core] + excludesfile = ~/.gitignore + editor = vim + +[color] + branch = auto + diff = auto + status = auto + +[color "branch"] + current = yellow reverse + local = yellow + remote = green + +[color "diff"] + meta = yellow bold + frag = magenta bold + old = red bold + new = green bold + +[color "status"] + added = yellow + changed = green + untracked = cyan + +[push] + default = matching \ No newline at end of file diff --git a/paddle/scripts/docker/root/.scripts/git-completion.sh b/paddle/scripts/docker/root/.scripts/git-completion.sh new file mode 100755 index 0000000000..bdddef5ac2 --- /dev/null +++ b/paddle/scripts/docker/root/.scripts/git-completion.sh @@ -0,0 +1,2663 @@ +#!bash +# +# bash/zsh completion support for core Git. +# +# Copyright (C) 2006,2007 Shawn O. Pearce +# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/). +# Distributed under the GNU General Public License, version 2.0. +# +# The contained completion routines provide support for completing: +# +# *) local and remote branch names +# *) local and remote tag names +# *) .git/remotes file names +# *) git 'subcommands' +# *) tree paths within 'ref:path/to/file' expressions +# *) file paths within current working directory and index +# *) common --long-options +# +# To use these routines: +# +# 1) Copy this file to somewhere (e.g. ~/.git-completion.sh). +# 2) Add the following line to your .bashrc/.zshrc: +# source ~/.git-completion.sh +# 3) Consider changing your PS1 to also show the current branch, +# see git-prompt.sh for details. + +case "$COMP_WORDBREAKS" in +*:*) : great ;; +*) COMP_WORDBREAKS="$COMP_WORDBREAKS:" +esac + +# __gitdir accepts 0 or 1 arguments (i.e., location) +# returns location of .git repo +__gitdir () +{ + if [ -z "${1-}" ]; then + if [ -n "${__git_dir-}" ]; then + echo "$__git_dir" + elif [ -n "${GIT_DIR-}" ]; then + test -d "${GIT_DIR-}" || return 1 + echo "$GIT_DIR" + elif [ -d .git ]; then + echo .git + else + git rev-parse --git-dir 2>/dev/null + fi + elif [ -d "$1/.git" ]; then + echo "$1/.git" + else + echo "$1" + fi +} + +# The following function is based on code from: +# +# bash_completion - programmable completion functions for bash 3.2+ +# +# Copyright © 2006-2008, Ian Macdonald +# © 2009-2010, Bash Completion Maintainers +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# The latest version of this software can be obtained here: +# +# http://bash-completion.alioth.debian.org/ +# +# RELEASE: 2.x + +# This function can be used to access a tokenized list of words +# on the command line: +# +# __git_reassemble_comp_words_by_ref '=:' +# if test "${words_[cword_-1]}" = -w +# then +# ... +# fi +# +# The argument should be a collection of characters from the list of +# word completion separators (COMP_WORDBREAKS) to treat as ordinary +# characters. +# +# This is roughly equivalent to going back in time and setting +# COMP_WORDBREAKS to exclude those characters. The intent is to +# make option types like --date= and : easy to +# recognize by treating each shell word as a single token. +# +# It is best not to set COMP_WORDBREAKS directly because the value is +# shared with other completion scripts. By the time the completion +# function gets called, COMP_WORDS has already been populated so local +# changes to COMP_WORDBREAKS have no effect. +# +# Output: words_, cword_, cur_. + +__git_reassemble_comp_words_by_ref() +{ + local exclude i j first + # Which word separators to exclude? + exclude="${1//[^$COMP_WORDBREAKS]}" + cword_=$COMP_CWORD + if [ -z "$exclude" ]; then + words_=("${COMP_WORDS[@]}") + return + fi + # List of word completion separators has shrunk; + # re-assemble words to complete. + for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do + # Append each nonempty word consisting of just + # word separator characters to the current word. + first=t + while + [ $i -gt 0 ] && + [ -n "${COMP_WORDS[$i]}" ] && + # word consists of excluded word separators + [ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ] + do + # Attach to the previous token, + # unless the previous token is the command name. + if [ $j -ge 2 ] && [ -n "$first" ]; then + ((j--)) + fi + first= + words_[$j]=${words_[j]}${COMP_WORDS[i]} + if [ $i = $COMP_CWORD ]; then + cword_=$j + fi + if (($i < ${#COMP_WORDS[@]} - 1)); then + ((i++)) + else + # Done. + return + fi + done + words_[$j]=${words_[j]}${COMP_WORDS[i]} + if [ $i = $COMP_CWORD ]; then + cword_=$j + fi + done +} + +if ! type _get_comp_words_by_ref >/dev/null 2>&1; then +_get_comp_words_by_ref () +{ + local exclude cur_ words_ cword_ + if [ "$1" = "-n" ]; then + exclude=$2 + shift 2 + fi + __git_reassemble_comp_words_by_ref "$exclude" + cur_=${words_[cword_]} + while [ $# -gt 0 ]; do + case "$1" in + cur) + cur=$cur_ + ;; + prev) + prev=${words_[$cword_-1]} + ;; + words) + words=("${words_[@]}") + ;; + cword) + cword=$cword_ + ;; + esac + shift + done +} +fi + +__gitcompadd () +{ + local i=0 + for x in $1; do + if [[ "$x" == "$3"* ]]; then + COMPREPLY[i++]="$2$x$4" + fi + done +} + +# Generates completion reply, appending a space to possible completion words, +# if necessary. +# It accepts 1 to 4 arguments: +# 1: List of possible completion words. +# 2: A prefix to be added to each possible completion word (optional). +# 3: Generate possible completion matches for this word (optional). +# 4: A suffix to be appended to each possible completion word (optional). +__gitcomp () +{ + local cur_="${3-$cur}" + + case "$cur_" in + --*=) + ;; + *) + local c i=0 IFS=$' \t\n' + for c in $1; do + c="$c${4-}" + if [[ $c == "$cur_"* ]]; then + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + COMPREPLY[i++]="${2-}$c" + fi + done + ;; + esac +} + +# Generates completion reply from newline-separated possible completion words +# by appending a space to all of them. +# It accepts 1 to 4 arguments: +# 1: List of possible completion words, separated by a single newline. +# 2: A prefix to be added to each possible completion word (optional). +# 3: Generate possible completion matches for this word (optional). +# 4: A suffix to be appended to each possible completion word instead of +# the default space (optional). If specified but empty, nothing is +# appended. +__gitcomp_nl () +{ + local IFS=$'\n' + __gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }" +} + +# Generates completion reply with compgen from newline-separated possible +# completion filenames. +# It accepts 1 to 3 arguments: +# 1: List of possible completion filenames, separated by a single newline. +# 2: A directory prefix to be added to each possible completion filename +# (optional). +# 3: Generate possible completion matches for this word (optional). +__gitcomp_file () +{ + local IFS=$'\n' + + # XXX does not work when the directory prefix contains a tilde, + # since tilde expansion is not applied. + # This means that COMPREPLY will be empty and Bash default + # completion will be used. + __gitcompadd "$1" "${2-}" "${3-$cur}" "" + + # use a hack to enable file mode in bash < 4 + compopt -o filenames +o nospace 2>/dev/null || + compgen -f /non-existing-dir/ > /dev/null +} + +# Execute 'git ls-files', unless the --committable option is specified, in +# which case it runs 'git diff-index' to find out the files that can be +# committed. It return paths relative to the directory specified in the first +# argument, and using the options specified in the second argument. +__git_ls_files_helper () +{ + ( + test -n "${CDPATH+set}" && unset CDPATH + cd "$1" + if [ "$2" == "--committable" ]; then + git diff-index --name-only --relative HEAD + else + # NOTE: $2 is not quoted in order to support multiple options + git ls-files --exclude-standard $2 + fi + ) 2>/dev/null +} + + +# __git_index_files accepts 1 or 2 arguments: +# 1: Options to pass to ls-files (required). +# 2: A directory path (optional). +# If provided, only files within the specified directory are listed. +# Sub directories are never recursed. Path must have a trailing +# slash. +__git_index_files () +{ + local dir="$(__gitdir)" root="${2-.}" file + + if [ -d "$dir" ]; then + __git_ls_files_helper "$root" "$1" | + while read -r file; do + case "$file" in + ?*/*) echo "${file%%/*}" ;; + *) echo "$file" ;; + esac + done | sort | uniq + fi +} + +__git_heads () +{ + local dir="$(__gitdir)" + if [ -d "$dir" ]; then + git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ + refs/heads + return + fi +} + +__git_tags () +{ + local dir="$(__gitdir)" + if [ -d "$dir" ]; then + git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ + refs/tags + return + fi +} + +# __git_refs accepts 0, 1 (to pass to __gitdir), or 2 arguments +# presence of 2nd argument means use the guess heuristic employed +# by checkout for tracking branches +__git_refs () +{ + local i hash dir="$(__gitdir "${1-}")" track="${2-}" + local format refs + if [ -d "$dir" ]; then + case "$cur" in + refs|refs/*) + format="refname" + refs="${cur%/*}" + track="" + ;; + *) + for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do + if [ -e "$dir/$i" ]; then echo $i; fi + done + format="refname:short" + refs="refs/tags refs/heads refs/remotes" + ;; + esac + git --git-dir="$dir" for-each-ref --format="%($format)" \ + $refs + if [ -n "$track" ]; then + # employ the heuristic used by git checkout + # Try to find a remote branch that matches the completion word + # but only output if the branch name is unique + local ref entry + git --git-dir="$dir" for-each-ref --shell --format="ref=%(refname:short)" \ + "refs/remotes/" | \ + while read -r entry; do + eval "$entry" + ref="${ref#*/}" + if [[ "$ref" == "$cur"* ]]; then + echo "$ref" + fi + done | sort | uniq -u + fi + return + fi + case "$cur" in + refs|refs/*) + git ls-remote "$dir" "$cur*" 2>/dev/null | \ + while read -r hash i; do + case "$i" in + *^{}) ;; + *) echo "$i" ;; + esac + done + ;; + *) + echo "HEAD" + git for-each-ref --format="%(refname:short)" -- "refs/remotes/$dir/" | sed -e "s#^$dir/##" + ;; + esac +} + +# __git_refs2 requires 1 argument (to pass to __git_refs) +__git_refs2 () +{ + local i + for i in $(__git_refs "$1"); do + echo "$i:$i" + done +} + +# __git_refs_remotes requires 1 argument (to pass to ls-remote) +__git_refs_remotes () +{ + local i hash + git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \ + while read -r hash i; do + echo "$i:refs/remotes/$1/${i#refs/heads/}" + done +} + +__git_remotes () +{ + local i IFS=$'\n' d="$(__gitdir)" + test -d "$d/remotes" && ls -1 "$d/remotes" + for i in $(git --git-dir="$d" config --get-regexp 'remote\..*\.url' 2>/dev/null); do + i="${i#remote.}" + echo "${i/.url*/}" + done +} + +__git_list_merge_strategies () +{ + git merge -s help 2>&1 | + sed -n -e '/[Aa]vailable strategies are: /,/^$/{ + s/\.$// + s/.*:// + s/^[ ]*// + s/[ ]*$// + p + }' +} + +__git_merge_strategies= +# 'git merge -s help' (and thus detection of the merge strategy +# list) fails, unfortunately, if run outside of any git working +# tree. __git_merge_strategies is set to the empty string in +# that case, and the detection will be repeated the next time it +# is needed. +__git_compute_merge_strategies () +{ + test -n "$__git_merge_strategies" || + __git_merge_strategies=$(__git_list_merge_strategies) +} + +__git_complete_revlist_file () +{ + local pfx ls ref cur_="$cur" + case "$cur_" in + *..?*:*) + return + ;; + ?*:*) + ref="${cur_%%:*}" + cur_="${cur_#*:}" + case "$cur_" in + ?*/*) + pfx="${cur_%/*}" + cur_="${cur_##*/}" + ls="$ref:$pfx" + pfx="$pfx/" + ;; + *) + ls="$ref" + ;; + esac + + case "$COMP_WORDBREAKS" in + *:*) : great ;; + *) pfx="$ref:$pfx" ;; + esac + + __gitcomp_nl "$(git --git-dir="$(__gitdir)" ls-tree "$ls" 2>/dev/null \ + | sed '/^100... blob /{ + s,^.* ,, + s,$, , + } + /^120000 blob /{ + s,^.* ,, + s,$, , + } + /^040000 tree /{ + s,^.* ,, + s,$,/, + } + s/^.* //')" \ + "$pfx" "$cur_" "" + ;; + *...*) + pfx="${cur_%...*}..." + cur_="${cur_#*...}" + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + ;; + *..*) + pfx="${cur_%..*}.." + cur_="${cur_#*..}" + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac +} + + +# __git_complete_index_file requires 1 argument: +# 1: the options to pass to ls-file +# +# The exception is --committable, which finds the files appropriate commit. +__git_complete_index_file () +{ + local pfx="" cur_="$cur" + + case "$cur_" in + ?*/*) + pfx="${cur_%/*}" + cur_="${cur_##*/}" + pfx="${pfx}/" + ;; + esac + + __gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_" +} + +__git_complete_file () +{ + __git_complete_revlist_file +} + +__git_complete_revlist () +{ + __git_complete_revlist_file +} + +__git_complete_remote_or_refspec () +{ + local cur_="$cur" cmd="${words[1]}" + local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0 + if [ "$cmd" = "remote" ]; then + ((c++)) + fi + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;; + --all) + case "$cmd" in + push) no_complete_refspec=1 ;; + fetch) + return + ;; + *) ;; + esac + ;; + -*) ;; + *) remote="$i"; break ;; + esac + ((c++)) + done + if [ -z "$remote" ]; then + __gitcomp_nl "$(__git_remotes)" + return + fi + if [ $no_complete_refspec = 1 ]; then + return + fi + [ "$remote" = "." ] && remote= + case "$cur_" in + *:*) + case "$COMP_WORDBREAKS" in + *:*) : great ;; + *) pfx="${cur_%%:*}:" ;; + esac + cur_="${cur_#*:}" + lhs=0 + ;; + +*) + pfx="+" + cur_="${cur_#+}" + ;; + esac + case "$cmd" in + fetch) + if [ $lhs = 1 ]; then + __gitcomp_nl "$(__git_refs2 "$remote")" "$pfx" "$cur_" + else + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + fi + ;; + pull|remote) + if [ $lhs = 1 ]; then + __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_" + else + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + fi + ;; + push) + if [ $lhs = 1 ]; then + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + else + __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_" + fi + ;; + esac +} + +__git_complete_strategy () +{ + __git_compute_merge_strategies + case "$prev" in + -s|--strategy) + __gitcomp "$__git_merge_strategies" + return 0 + esac + case "$cur" in + --strategy=*) + __gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}" + return 0 + ;; + esac + return 1 +} + +__git_commands () { + if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}" + then + printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}" + else + git help -a|egrep '^ [a-zA-Z0-9]' + fi +} + +__git_list_all_commands () +{ + local i IFS=" "$'\n' + for i in $(__git_commands) + do + case $i in + *--*) : helper pattern;; + *) echo $i;; + esac + done +} + +__git_all_commands= +__git_compute_all_commands () +{ + test -n "$__git_all_commands" || + __git_all_commands=$(__git_list_all_commands) +} + +__git_list_porcelain_commands () +{ + local i IFS=" "$'\n' + __git_compute_all_commands + for i in $__git_all_commands + do + case $i in + *--*) : helper pattern;; + applymbox) : ask gittus;; + applypatch) : ask gittus;; + archimport) : import;; + cat-file) : plumbing;; + check-attr) : plumbing;; + check-ignore) : plumbing;; + check-mailmap) : plumbing;; + check-ref-format) : plumbing;; + checkout-index) : plumbing;; + commit-tree) : plumbing;; + count-objects) : infrequent;; + credential-cache) : credentials helper;; + credential-store) : credentials helper;; + cvsexportcommit) : export;; + cvsimport) : import;; + cvsserver) : daemon;; + daemon) : daemon;; + diff-files) : plumbing;; + diff-index) : plumbing;; + diff-tree) : plumbing;; + fast-import) : import;; + fast-export) : export;; + fsck-objects) : plumbing;; + fetch-pack) : plumbing;; + fmt-merge-msg) : plumbing;; + for-each-ref) : plumbing;; + hash-object) : plumbing;; + http-*) : transport;; + index-pack) : plumbing;; + init-db) : deprecated;; + local-fetch) : plumbing;; + lost-found) : infrequent;; + ls-files) : plumbing;; + ls-remote) : plumbing;; + ls-tree) : plumbing;; + mailinfo) : plumbing;; + mailsplit) : plumbing;; + merge-*) : plumbing;; + mktree) : plumbing;; + mktag) : plumbing;; + pack-objects) : plumbing;; + pack-redundant) : plumbing;; + pack-refs) : plumbing;; + parse-remote) : plumbing;; + patch-id) : plumbing;; + peek-remote) : plumbing;; + prune) : plumbing;; + prune-packed) : plumbing;; + quiltimport) : import;; + read-tree) : plumbing;; + receive-pack) : plumbing;; + remote-*) : transport;; + repo-config) : deprecated;; + rerere) : plumbing;; + rev-list) : plumbing;; + rev-parse) : plumbing;; + runstatus) : plumbing;; + sh-setup) : internal;; + shell) : daemon;; + show-ref) : plumbing;; + send-pack) : plumbing;; + show-index) : plumbing;; + ssh-*) : transport;; + stripspace) : plumbing;; + symbolic-ref) : plumbing;; + tar-tree) : deprecated;; + unpack-file) : plumbing;; + unpack-objects) : plumbing;; + update-index) : plumbing;; + update-ref) : plumbing;; + update-server-info) : daemon;; + upload-archive) : plumbing;; + upload-pack) : plumbing;; + write-tree) : plumbing;; + var) : infrequent;; + verify-pack) : infrequent;; + verify-tag) : plumbing;; + *) echo $i;; + esac + done +} + +__git_porcelain_commands= +__git_compute_porcelain_commands () +{ + __git_compute_all_commands + test -n "$__git_porcelain_commands" || + __git_porcelain_commands=$(__git_list_porcelain_commands) +} + +__git_pretty_aliases () +{ + local i IFS=$'\n' + for i in $(git --git-dir="$(__gitdir)" config --get-regexp "pretty\..*" 2>/dev/null); do + case "$i" in + pretty.*) + i="${i#pretty.}" + echo "${i/ */}" + ;; + esac + done +} + +__git_aliases () +{ + local i IFS=$'\n' + for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do + case "$i" in + alias.*) + i="${i#alias.}" + echo "${i/ */}" + ;; + esac + done +} + +# __git_aliased_command requires 1 argument +__git_aliased_command () +{ + local word cmdline=$(git --git-dir="$(__gitdir)" \ + config --get "alias.$1") + for word in $cmdline; do + case "$word" in + \!gitk|gitk) + echo "gitk" + return + ;; + \!*) : shell command alias ;; + -*) : option ;; + *=*) : setting env ;; + git) : git itself ;; + *) + echo "$word" + return + esac + done +} + +# __git_find_on_cmdline requires 1 argument +__git_find_on_cmdline () +{ + local word subcommand c=1 + while [ $c -lt $cword ]; do + word="${words[c]}" + for subcommand in $1; do + if [ "$subcommand" = "$word" ]; then + echo "$subcommand" + return + fi + done + ((c++)) + done +} + +__git_has_doubledash () +{ + local c=1 + while [ $c -lt $cword ]; do + if [ "--" = "${words[c]}" ]; then + return 0 + fi + ((c++)) + done + return 1 +} + +# Try to count non option arguments passed on the command line for the +# specified git command. +# When options are used, it is necessary to use the special -- option to +# tell the implementation were non option arguments begin. +# XXX this can not be improved, since options can appear everywhere, as +# an example: +# git mv x -n y +# +# __git_count_arguments requires 1 argument: the git command executed. +__git_count_arguments () +{ + local word i c=0 + + # Skip "git" (first argument) + for ((i=1; i < ${#words[@]}; i++)); do + word="${words[i]}" + + case "$word" in + --) + # Good; we can assume that the following are only non + # option arguments. + ((c = 0)) + ;; + "$1") + # Skip the specified git command and discard git + # main options + ((c = 0)) + ;; + ?*) + ((c++)) + ;; + esac + done + + printf "%d" $c +} + +__git_whitespacelist="nowarn warn error error-all fix" + +_git_am () +{ + local dir="$(__gitdir)" + if [ -d "$dir"/rebase-apply ]; then + __gitcomp "--skip --continue --resolved --abort" + return + fi + case "$cur" in + --whitespace=*) + __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" + return + ;; + --*) + __gitcomp " + --3way --committer-date-is-author-date --ignore-date + --ignore-whitespace --ignore-space-change + --interactive --keep --no-utf8 --signoff --utf8 + --whitespace= --scissors + " + return + esac +} + +_git_apply () +{ + case "$cur" in + --whitespace=*) + __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" + return + ;; + --*) + __gitcomp " + --stat --numstat --summary --check --index + --cached --index-info --reverse --reject --unidiff-zero + --apply --no-add --exclude= + --ignore-whitespace --ignore-space-change + --whitespace= --inaccurate-eof --verbose + " + return + esac +} + +_git_add () +{ + case "$cur" in + --*) + __gitcomp " + --interactive --refresh --patch --update --dry-run + --ignore-errors --intent-to-add + " + return + esac + + # XXX should we check for --update and --all options ? + __git_complete_index_file "--others --modified" +} + +_git_archive () +{ + case "$cur" in + --format=*) + __gitcomp "$(git archive --list)" "" "${cur##--format=}" + return + ;; + --remote=*) + __gitcomp_nl "$(__git_remotes)" "" "${cur##--remote=}" + return + ;; + --*) + __gitcomp " + --format= --list --verbose + --prefix= --remote= --exec= + " + return + ;; + esac + __git_complete_file +} + +_git_bisect () +{ + __git_has_doubledash && return + + local subcommands="start bad good skip reset visualize replay log run" + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + if [ -f "$(__gitdir)"/BISECT_START ]; then + __gitcomp "$subcommands" + else + __gitcomp "replay start" + fi + return + fi + + case "$subcommand" in + bad|good|reset|skip|start) + __gitcomp_nl "$(__git_refs)" + ;; + *) + ;; + esac +} + +_git_branch () +{ + local i c=1 only_local_ref="n" has_r="n" + + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + -d|-m) only_local_ref="y" ;; + -r) has_r="y" ;; + esac + ((c++)) + done + + case "$cur" in + --set-upstream-to=*) + __gitcomp "$(__git_refs)" "" "${cur##--set-upstream-to=}" + ;; + --*) + __gitcomp " + --color --no-color --verbose --abbrev= --no-abbrev + --track --no-track --contains --merged --no-merged + --set-upstream-to= --edit-description --list + --unset-upstream + " + ;; + *) + if [ $only_local_ref = "y" -a $has_r = "n" ]; then + __gitcomp_nl "$(__git_heads)" + else + __gitcomp_nl "$(__git_refs)" + fi + ;; + esac +} + +_git_bundle () +{ + local cmd="${words[2]}" + case "$cword" in + 2) + __gitcomp "create list-heads verify unbundle" + ;; + 3) + # looking for a file + ;; + *) + case "$cmd" in + create) + __git_complete_revlist + ;; + esac + ;; + esac +} + +_git_checkout () +{ + __git_has_doubledash && return + + case "$cur" in + --conflict=*) + __gitcomp "diff3 merge" "" "${cur##--conflict=}" + ;; + --*) + __gitcomp " + --quiet --ours --theirs --track --no-track --merge + --conflict= --orphan --patch + " + ;; + *) + # check if --track, --no-track, or --no-guess was specified + # if so, disable DWIM mode + local flags="--track --no-track --no-guess" track=1 + if [ -n "$(__git_find_on_cmdline "$flags")" ]; then + track='' + fi + __gitcomp_nl "$(__git_refs '' $track)" + ;; + esac +} + +_git_cherry () +{ + __gitcomp "$(__git_refs)" +} + +_git_cherry_pick () +{ + local dir="$(__gitdir)" + if [ -f "$dir"/CHERRY_PICK_HEAD ]; then + __gitcomp "--continue --quit --abort" + return + fi + case "$cur" in + --*) + __gitcomp "--edit --no-commit --signoff --strategy= --mainline" + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac +} + +_git_clean () +{ + case "$cur" in + --*) + __gitcomp "--dry-run --quiet" + return + ;; + esac + + # XXX should we check for -x option ? + __git_complete_index_file "--others" +} + +_git_clone () +{ + case "$cur" in + --*) + __gitcomp " + --local + --no-hardlinks + --shared + --reference + --quiet + --no-checkout + --bare + --mirror + --origin + --upload-pack + --template= + --depth + --single-branch + --branch + " + return + ;; + esac +} + +_git_commit () +{ + case "$prev" in + -c|-C) + __gitcomp_nl "$(__git_refs)" "" "${cur}" + return + ;; + esac + + case "$cur" in + --cleanup=*) + __gitcomp "default strip verbatim whitespace + " "" "${cur##--cleanup=}" + return + ;; + --reuse-message=*|--reedit-message=*|\ + --fixup=*|--squash=*) + __gitcomp_nl "$(__git_refs)" "" "${cur#*=}" + return + ;; + --untracked-files=*) + __gitcomp "all no normal" "" "${cur##--untracked-files=}" + return + ;; + --*) + __gitcomp " + --all --author= --signoff --verify --no-verify + --edit --no-edit + --amend --include --only --interactive + --dry-run --reuse-message= --reedit-message= + --reset-author --file= --message= --template= + --cleanup= --untracked-files --untracked-files= + --verbose --quiet --fixup= --squash= + " + return + esac + + if git rev-parse --verify --quiet HEAD >/dev/null; then + __git_complete_index_file "--committable" + else + # This is the first commit + __git_complete_index_file "--cached" + fi +} + +_git_describe () +{ + case "$cur" in + --*) + __gitcomp " + --all --tags --contains --abbrev= --candidates= + --exact-match --debug --long --match --always + " + return + esac + __gitcomp_nl "$(__git_refs)" +} + +__git_diff_algorithms="myers minimal patience histogram" + +__git_diff_common_options="--stat --numstat --shortstat --summary + --patch-with-stat --name-only --name-status --color + --no-color --color-words --no-renames --check + --full-index --binary --abbrev --diff-filter= + --find-copies-harder + --text --ignore-space-at-eol --ignore-space-change + --ignore-all-space --exit-code --quiet --ext-diff + --no-ext-diff + --no-prefix --src-prefix= --dst-prefix= + --inter-hunk-context= + --patience --histogram --minimal + --raw --word-diff + --dirstat --dirstat= --dirstat-by-file + --dirstat-by-file= --cumulative + --diff-algorithm= +" + +_git_diff () +{ + __git_has_doubledash && return + + case "$cur" in + --diff-algorithm=*) + __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}" + return + ;; + --*) + __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex + --base --ours --theirs --no-index + $__git_diff_common_options + " + return + ;; + esac + __git_complete_revlist_file +} + +__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff + tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare +" + +_git_difftool () +{ + __git_has_doubledash && return + + case "$cur" in + --tool=*) + __gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}" + return + ;; + --*) + __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex + --base --ours --theirs + --no-renames --diff-filter= --find-copies-harder + --relative --ignore-submodules + --tool=" + return + ;; + esac + __git_complete_revlist_file +} + +__git_fetch_options=" + --quiet --verbose --append --upload-pack --force --keep --depth= + --tags --no-tags --all --prune --dry-run +" + +_git_fetch () +{ + case "$cur" in + --*) + __gitcomp "$__git_fetch_options" + return + ;; + esac + __git_complete_remote_or_refspec +} + +__git_format_patch_options=" + --stdout --attach --no-attach --thread --thread= --no-thread + --numbered --start-number --numbered-files --keep-subject --signoff + --signature --no-signature --in-reply-to= --cc= --full-index --binary + --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix= + --inline --suffix= --ignore-if-in-upstream --subject-prefix= + --output-directory --reroll-count --to= --quiet --notes +" + +_git_format_patch () +{ + case "$cur" in + --thread=*) + __gitcomp " + deep shallow + " "" "${cur##--thread=}" + return + ;; + --*) + __gitcomp "$__git_format_patch_options" + return + ;; + esac + __git_complete_revlist +} + +_git_fsck () +{ + case "$cur" in + --*) + __gitcomp " + --tags --root --unreachable --cache --no-reflogs --full + --strict --verbose --lost-found + " + return + ;; + esac +} + +_git_gc () +{ + case "$cur" in + --*) + __gitcomp "--prune --aggressive" + return + ;; + esac +} + +_git_gitk () +{ + _gitk +} + +__git_match_ctag() { + awk "/^${1////\\/}/ { print \$1 }" "$2" +} + +_git_grep () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp " + --cached + --text --ignore-case --word-regexp --invert-match + --full-name --line-number + --extended-regexp --basic-regexp --fixed-strings + --perl-regexp + --files-with-matches --name-only + --files-without-match + --max-depth + --count + --and --or --not --all-match + " + return + ;; + esac + + case "$cword,$prev" in + 2,*|*,-*) + if test -r tags; then + __gitcomp_nl "$(__git_match_ctag "$cur" tags)" + return + fi + ;; + esac + + __gitcomp_nl "$(__git_refs)" +} + +_git_help () +{ + case "$cur" in + --*) + __gitcomp "--all --info --man --web" + return + ;; + esac + __git_compute_all_commands + __gitcomp "$__git_all_commands $(__git_aliases) + attributes cli core-tutorial cvs-migration + diffcore gitk glossary hooks ignore modules + namespaces repository-layout tutorial tutorial-2 + workflows + " +} + +_git_init () +{ + case "$cur" in + --shared=*) + __gitcomp " + false true umask group all world everybody + " "" "${cur##--shared=}" + return + ;; + --*) + __gitcomp "--quiet --bare --template= --shared --shared=" + return + ;; + esac +} + +_git_ls_files () +{ + case "$cur" in + --*) + __gitcomp "--cached --deleted --modified --others --ignored + --stage --directory --no-empty-directory --unmerged + --killed --exclude= --exclude-from= + --exclude-per-directory= --exclude-standard + --error-unmatch --with-tree= --full-name + --abbrev --ignored --exclude-per-directory + " + return + ;; + esac + + # XXX ignore options like --modified and always suggest all cached + # files. + __git_complete_index_file "--cached" +} + +_git_ls_remote () +{ + __gitcomp_nl "$(__git_remotes)" +} + +_git_ls_tree () +{ + __git_complete_file +} + +# Options that go well for log, shortlog and gitk +__git_log_common_options=" + --not --all + --branches --tags --remotes + --first-parent --merges --no-merges + --max-count= + --max-age= --since= --after= + --min-age= --until= --before= + --min-parents= --max-parents= + --no-min-parents --no-max-parents +" +# Options that go well for log and gitk (not shortlog) +__git_log_gitk_options=" + --dense --sparse --full-history + --simplify-merges --simplify-by-decoration + --left-right --notes --no-notes +" +# Options that go well for log and shortlog (not gitk) +__git_log_shortlog_options=" + --author= --committer= --grep= + --all-match +" + +__git_log_pretty_formats="oneline short medium full fuller email raw format:" +__git_log_date_formats="relative iso8601 rfc2822 short local default raw" + +_git_log () +{ + __git_has_doubledash && return + + local g="$(git rev-parse --git-dir 2>/dev/null)" + local merge="" + if [ -f "$g/MERGE_HEAD" ]; then + merge="--merge" + fi + case "$cur" in + --pretty=*|--format=*) + __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases) + " "" "${cur#*=}" + return + ;; + --date=*) + __gitcomp "$__git_log_date_formats" "" "${cur##--date=}" + return + ;; + --decorate=*) + __gitcomp "long short" "" "${cur##--decorate=}" + return + ;; + --*) + __gitcomp " + $__git_log_common_options + $__git_log_shortlog_options + $__git_log_gitk_options + --root --topo-order --date-order --reverse + --follow --full-diff + --abbrev-commit --abbrev= + --relative-date --date= + --pretty= --format= --oneline + --cherry-pick + --graph + --decorate --decorate= + --walk-reflogs + --parents --children + $merge + $__git_diff_common_options + --pickaxe-all --pickaxe-regex + " + return + ;; + esac + __git_complete_revlist +} + +__git_merge_options=" + --no-commit --no-stat --log --no-log --squash --strategy + --commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit +" + +_git_merge () +{ + __git_complete_strategy && return + + case "$cur" in + --*) + __gitcomp "$__git_merge_options" + return + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_mergetool () +{ + case "$cur" in + --tool=*) + __gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}" + return + ;; + --*) + __gitcomp "--tool=" + return + ;; + esac +} + +_git_merge_base () +{ + __gitcomp_nl "$(__git_refs)" +} + +_git_mv () +{ + case "$cur" in + --*) + __gitcomp "--dry-run" + return + ;; + esac + + if [ $(__git_count_arguments "mv") -gt 0 ]; then + # We need to show both cached and untracked files (including + # empty directories) since this may not be the last argument. + __git_complete_index_file "--cached --others --directory" + else + __git_complete_index_file "--cached" + fi +} + +_git_name_rev () +{ + __gitcomp "--tags --all --stdin" +} + +_git_notes () +{ + local subcommands='add append copy edit list prune remove show' + local subcommand="$(__git_find_on_cmdline "$subcommands")" + + case "$subcommand,$cur" in + ,--*) + __gitcomp '--ref' + ;; + ,*) + case "$prev" in + --ref) + __gitcomp_nl "$(__git_refs)" + ;; + *) + __gitcomp "$subcommands --ref" + ;; + esac + ;; + add,--reuse-message=*|append,--reuse-message=*|\ + add,--reedit-message=*|append,--reedit-message=*) + __gitcomp_nl "$(__git_refs)" "" "${cur#*=}" + ;; + add,--*|append,--*) + __gitcomp '--file= --message= --reedit-message= + --reuse-message=' + ;; + copy,--*) + __gitcomp '--stdin' + ;; + prune,--*) + __gitcomp '--dry-run --verbose' + ;; + prune,*) + ;; + *) + case "$prev" in + -m|-F) + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac + ;; + esac +} + +_git_pull () +{ + __git_complete_strategy && return + + case "$cur" in + --*) + __gitcomp " + --rebase --no-rebase + $__git_merge_options + $__git_fetch_options + " + return + ;; + esac + __git_complete_remote_or_refspec +} + +_git_push () +{ + case "$prev" in + --repo) + __gitcomp_nl "$(__git_remotes)" + return + esac + case "$cur" in + --repo=*) + __gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}" + return + ;; + --*) + __gitcomp " + --all --mirror --tags --dry-run --force --verbose + --receive-pack= --repo= --set-upstream + " + return + ;; + esac + __git_complete_remote_or_refspec +} + +_git_rebase () +{ + local dir="$(__gitdir)" + if [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then + __gitcomp "--continue --skip --abort" + return + fi + __git_complete_strategy && return + case "$cur" in + --whitespace=*) + __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" + return + ;; + --*) + __gitcomp " + --onto --merge --strategy --interactive + --preserve-merges --stat --no-stat + --committer-date-is-author-date --ignore-date + --ignore-whitespace --whitespace= + --autosquash + " + + return + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_reflog () +{ + local subcommands="show delete expire" + local subcommand="$(__git_find_on_cmdline "$subcommands")" + + if [ -z "$subcommand" ]; then + __gitcomp "$subcommands" + else + __gitcomp_nl "$(__git_refs)" + fi +} + +__git_send_email_confirm_options="always never auto cc compose" +__git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" + +_git_send_email () +{ + case "$cur" in + --confirm=*) + __gitcomp " + $__git_send_email_confirm_options + " "" "${cur##--confirm=}" + return + ;; + --suppress-cc=*) + __gitcomp " + $__git_send_email_suppresscc_options + " "" "${cur##--suppress-cc=}" + + return + ;; + --smtp-encryption=*) + __gitcomp "ssl tls" "" "${cur##--smtp-encryption=}" + return + ;; + --thread=*) + __gitcomp " + deep shallow + " "" "${cur##--thread=}" + return + ;; + --*) + __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to + --compose --confirm= --dry-run --envelope-sender + --from --identity + --in-reply-to --no-chain-reply-to --no-signed-off-by-cc + --no-suppress-from --no-thread --quiet + --signed-off-by-cc --smtp-pass --smtp-server + --smtp-server-port --smtp-encryption= --smtp-user + --subject --suppress-cc= --suppress-from --thread --to + --validate --no-validate + $__git_format_patch_options" + return + ;; + esac + __git_complete_revlist +} + +_git_stage () +{ + _git_add +} + +__git_config_get_set_variables () +{ + local prevword word config_file= c=$cword + while [ $c -gt 1 ]; do + word="${words[c]}" + case "$word" in + --system|--global|--local|--file=*) + config_file="$word" + break + ;; + -f|--file) + config_file="$word $prevword" + break + ;; + esac + prevword=$word + c=$((--c)) + done + + git --git-dir="$(__gitdir)" config $config_file --list 2>/dev/null | + while read -r line + do + case "$line" in + *.*=*) + echo "${line/=*/}" + ;; + esac + done +} + +_git_config () +{ + case "$prev" in + branch.*.remote|branch.*.pushremote) + __gitcomp_nl "$(__git_remotes)" + return + ;; + branch.*.merge) + __gitcomp_nl "$(__git_refs)" + return + ;; + branch.*.rebase) + __gitcomp "false true" + return + ;; + remote.pushdefault) + __gitcomp_nl "$(__git_remotes)" + return + ;; + remote.*.fetch) + local remote="${prev#remote.}" + remote="${remote%.fetch}" + if [ -z "$cur" ]; then + __gitcomp_nl "refs/heads/" "" "" "" + return + fi + __gitcomp_nl "$(__git_refs_remotes "$remote")" + return + ;; + remote.*.push) + local remote="${prev#remote.}" + remote="${remote%.push}" + __gitcomp_nl "$(git --git-dir="$(__gitdir)" \ + for-each-ref --format='%(refname):%(refname)' \ + refs/heads)" + return + ;; + pull.twohead|pull.octopus) + __git_compute_merge_strategies + __gitcomp "$__git_merge_strategies" + return + ;; + color.branch|color.diff|color.interactive|\ + color.showbranch|color.status|color.ui) + __gitcomp "always never auto" + return + ;; + color.pager) + __gitcomp "false true" + return + ;; + color.*.*) + __gitcomp " + normal black red green yellow blue magenta cyan white + bold dim ul blink reverse + " + return + ;; + diff.submodule) + __gitcomp "log short" + return + ;; + help.format) + __gitcomp "man info web html" + return + ;; + log.date) + __gitcomp "$__git_log_date_formats" + return + ;; + sendemail.aliasesfiletype) + __gitcomp "mutt mailrc pine elm gnus" + return + ;; + sendemail.confirm) + __gitcomp "$__git_send_email_confirm_options" + return + ;; + sendemail.suppresscc) + __gitcomp "$__git_send_email_suppresscc_options" + return + ;; + --get|--get-all|--unset|--unset-all) + __gitcomp_nl "$(__git_config_get_set_variables)" + return + ;; + *.*) + return + ;; + esac + case "$cur" in + --*) + __gitcomp " + --system --global --local --file= + --list --replace-all + --get --get-all --get-regexp + --add --unset --unset-all + --remove-section --rename-section + " + return + ;; + branch.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_" + return + ;; + branch.*) + local pfx="${cur%.*}." cur_="${cur#*.}" + __gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "." + return + ;; + guitool.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp " + argprompt cmd confirm needsfile noconsole norescan + prompt revprompt revunmerged title + " "$pfx" "$cur_" + return + ;; + difftool.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "cmd path" "$pfx" "$cur_" + return + ;; + man.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "cmd path" "$pfx" "$cur_" + return + ;; + mergetool.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "cmd path trustExitCode" "$pfx" "$cur_" + return + ;; + pager.*) + local pfx="${cur%.*}." cur_="${cur#*.}" + __git_compute_all_commands + __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_" + return + ;; + remote.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp " + url proxy fetch push mirror skipDefaultUpdate + receivepack uploadpack tagopt pushurl + " "$pfx" "$cur_" + return + ;; + remote.*) + local pfx="${cur%.*}." cur_="${cur#*.}" + __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "." + return + ;; + url.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_" + return + ;; + esac + __gitcomp " + add.ignoreErrors + advice.commitBeforeMerge + advice.detachedHead + advice.implicitIdentity + advice.pushNonFastForward + advice.resolveConflict + advice.statusHints + alias. + am.keepcr + apply.ignorewhitespace + apply.whitespace + branch.autosetupmerge + branch.autosetuprebase + browser. + clean.requireForce + color.branch + color.branch.current + color.branch.local + color.branch.plain + color.branch.remote + color.decorate.HEAD + color.decorate.branch + color.decorate.remoteBranch + color.decorate.stash + color.decorate.tag + color.diff + color.diff.commit + color.diff.frag + color.diff.func + color.diff.meta + color.diff.new + color.diff.old + color.diff.plain + color.diff.whitespace + color.grep + color.grep.context + color.grep.filename + color.grep.function + color.grep.linenumber + color.grep.match + color.grep.selected + color.grep.separator + color.interactive + color.interactive.error + color.interactive.header + color.interactive.help + color.interactive.prompt + color.pager + color.showbranch + color.status + color.status.added + color.status.changed + color.status.header + color.status.nobranch + color.status.untracked + color.status.updated + color.ui + commit.status + commit.template + core.abbrev + core.askpass + core.attributesfile + core.autocrlf + core.bare + core.bigFileThreshold + core.compression + core.createObject + core.deltaBaseCacheLimit + core.editor + core.eol + core.excludesfile + core.fileMode + core.fsyncobjectfiles + core.gitProxy + core.ignoreStat + core.ignorecase + core.logAllRefUpdates + core.loosecompression + core.notesRef + core.packedGitLimit + core.packedGitWindowSize + core.pager + core.preferSymlinkRefs + core.preloadindex + core.quotepath + core.repositoryFormatVersion + core.safecrlf + core.sharedRepository + core.sparseCheckout + core.symlinks + core.trustctime + core.warnAmbiguousRefs + core.whitespace + core.worktree + diff.autorefreshindex + diff.external + diff.ignoreSubmodules + diff.mnemonicprefix + diff.noprefix + diff.renameLimit + diff.renames + diff.statGraphWidth + diff.submodule + diff.suppressBlankEmpty + diff.tool + diff.wordRegex + diff.algorithm + difftool. + difftool.prompt + fetch.recurseSubmodules + fetch.unpackLimit + format.attach + format.cc + format.headers + format.numbered + format.pretty + format.signature + format.signoff + format.subjectprefix + format.suffix + format.thread + format.to + gc. + gc.aggressiveWindow + gc.auto + gc.autopacklimit + gc.packrefs + gc.pruneexpire + gc.reflogexpire + gc.reflogexpireunreachable + gc.rerereresolved + gc.rerereunresolved + gitcvs.allbinary + gitcvs.commitmsgannotation + gitcvs.dbTableNamePrefix + gitcvs.dbdriver + gitcvs.dbname + gitcvs.dbpass + gitcvs.dbuser + gitcvs.enabled + gitcvs.logfile + gitcvs.usecrlfattr + guitool. + gui.blamehistoryctx + gui.commitmsgwidth + gui.copyblamethreshold + gui.diffcontext + gui.encoding + gui.fastcopyblame + gui.matchtrackingbranch + gui.newbranchtemplate + gui.pruneduringfetch + gui.spellingdictionary + gui.trustmtime + help.autocorrect + help.browser + help.format + http.lowSpeedLimit + http.lowSpeedTime + http.maxRequests + http.minSessions + http.noEPSV + http.postBuffer + http.proxy + http.sslCAInfo + http.sslCAPath + http.sslCert + http.sslCertPasswordProtected + http.sslKey + http.sslVerify + http.useragent + i18n.commitEncoding + i18n.logOutputEncoding + imap.authMethod + imap.folder + imap.host + imap.pass + imap.port + imap.preformattedHTML + imap.sslverify + imap.tunnel + imap.user + init.templatedir + instaweb.browser + instaweb.httpd + instaweb.local + instaweb.modulepath + instaweb.port + interactive.singlekey + log.date + log.decorate + log.showroot + mailmap.file + man. + man.viewer + merge. + merge.conflictstyle + merge.log + merge.renameLimit + merge.renormalize + merge.stat + merge.tool + merge.verbosity + mergetool. + mergetool.keepBackup + mergetool.keepTemporaries + mergetool.prompt + notes.displayRef + notes.rewrite. + notes.rewrite.amend + notes.rewrite.rebase + notes.rewriteMode + notes.rewriteRef + pack.compression + pack.deltaCacheLimit + pack.deltaCacheSize + pack.depth + pack.indexVersion + pack.packSizeLimit + pack.threads + pack.window + pack.windowMemory + pager. + pretty. + pull.octopus + pull.twohead + push.default + rebase.autosquash + rebase.stat + receive.autogc + receive.denyCurrentBranch + receive.denyDeleteCurrent + receive.denyDeletes + receive.denyNonFastForwards + receive.fsckObjects + receive.unpackLimit + receive.updateserverinfo + remote.pushdefault + remotes. + repack.usedeltabaseoffset + rerere.autoupdate + rerere.enabled + sendemail. + sendemail.aliasesfile + sendemail.aliasfiletype + sendemail.bcc + sendemail.cc + sendemail.cccmd + sendemail.chainreplyto + sendemail.confirm + sendemail.envelopesender + sendemail.from + sendemail.identity + sendemail.multiedit + sendemail.signedoffbycc + sendemail.smtpdomain + sendemail.smtpencryption + sendemail.smtppass + sendemail.smtpserver + sendemail.smtpserveroption + sendemail.smtpserverport + sendemail.smtpuser + sendemail.suppresscc + sendemail.suppressfrom + sendemail.thread + sendemail.to + sendemail.validate + showbranch.default + status.relativePaths + status.showUntrackedFiles + status.submodulesummary + submodule. + tar.umask + transfer.unpackLimit + url. + user.email + user.name + user.signingkey + web.browser + branch. remote. + " +} + +_git_remote () +{ + local subcommands="add rename remove set-head set-branches set-url show prune update" + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + __gitcomp "$subcommands" + return + fi + + case "$subcommand" in + rename|remove|set-url|show|prune) + __gitcomp_nl "$(__git_remotes)" + ;; + set-head|set-branches) + __git_complete_remote_or_refspec + ;; + update) + local i c='' IFS=$'\n' + for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do + i="${i#remotes.}" + c="$c ${i/ */}" + done + __gitcomp "$c" + ;; + *) + ;; + esac +} + +_git_replace () +{ + __gitcomp_nl "$(__git_refs)" +} + +_git_reset () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp "--merge --mixed --hard --soft --patch" + return + ;; + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_revert () +{ + case "$cur" in + --*) + __gitcomp "--edit --mainline --no-edit --no-commit --signoff" + return + ;; + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_rm () +{ + case "$cur" in + --*) + __gitcomp "--cached --dry-run --ignore-unmatch --quiet" + return + ;; + esac + + __git_complete_index_file "--cached" +} + +_git_shortlog () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp " + $__git_log_common_options + $__git_log_shortlog_options + --numbered --summary + " + return + ;; + esac + __git_complete_revlist +} + +_git_show () +{ + __git_has_doubledash && return + + case "$cur" in + --pretty=*|--format=*) + __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases) + " "" "${cur#*=}" + return + ;; + --diff-algorithm=*) + __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}" + return + ;; + --*) + __gitcomp "--pretty= --format= --abbrev-commit --oneline + $__git_diff_common_options + " + return + ;; + esac + __git_complete_revlist_file +} + +_git_show_branch () +{ + case "$cur" in + --*) + __gitcomp " + --all --remotes --topo-order --current --more= + --list --independent --merge-base --no-name + --color --no-color + --sha1-name --sparse --topics --reflog + " + return + ;; + esac + __git_complete_revlist +} + +_git_stash () +{ + local save_opts='--keep-index --no-keep-index --quiet --patch' + local subcommands='save list show apply clear drop pop create branch' + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + case "$cur" in + --*) + __gitcomp "$save_opts" + ;; + *) + if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then + __gitcomp "$subcommands" + fi + ;; + esac + else + case "$subcommand,$cur" in + save,--*) + __gitcomp "$save_opts" + ;; + apply,--*|pop,--*) + __gitcomp "--index --quiet" + ;; + show,--*|drop,--*|branch,--*) + ;; + show,*|apply,*|drop,*|pop,*|branch,*) + __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \ + | sed -n -e 's/:.*//p')" + ;; + *) + ;; + esac + fi +} + +_git_submodule () +{ + __git_has_doubledash && return + + local subcommands="add status init deinit update summary foreach sync" + if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then + case "$cur" in + --*) + __gitcomp "--quiet --cached" + ;; + *) + __gitcomp "$subcommands" + ;; + esac + return + fi +} + +_git_svn () +{ + local subcommands=" + init fetch clone rebase dcommit log find-rev + set-tree commit-diff info create-ignore propget + proplist show-ignore show-externals branch tag blame + migrate mkdirs reset gc + " + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + __gitcomp "$subcommands" + else + local remote_opts="--username= --config-dir= --no-auth-cache" + local fc_opts=" + --follow-parent --authors-file= --repack= + --no-metadata --use-svm-props --use-svnsync-props + --log-window-size= --no-checkout --quiet + --repack-flags --use-log-author --localtime + --ignore-paths= --include-paths= $remote_opts + " + local init_opts=" + --template= --shared= --trunk= --tags= + --branches= --stdlayout --minimize-url + --no-metadata --use-svm-props --use-svnsync-props + --rewrite-root= --prefix= --use-log-author + --add-author-from $remote_opts + " + local cmt_opts=" + --edit --rmdir --find-copies-harder --copy-similarity= + " + + case "$subcommand,$cur" in + fetch,--*) + __gitcomp "--revision= --fetch-all $fc_opts" + ;; + clone,--*) + __gitcomp "--revision= $fc_opts $init_opts" + ;; + init,--*) + __gitcomp "$init_opts" + ;; + dcommit,--*) + __gitcomp " + --merge --strategy= --verbose --dry-run + --fetch-all --no-rebase --commit-url + --revision --interactive $cmt_opts $fc_opts + " + ;; + set-tree,--*) + __gitcomp "--stdin $cmt_opts $fc_opts" + ;; + create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\ + show-externals,--*|mkdirs,--*) + __gitcomp "--revision=" + ;; + log,--*) + __gitcomp " + --limit= --revision= --verbose --incremental + --oneline --show-commit --non-recursive + --authors-file= --color + " + ;; + rebase,--*) + __gitcomp " + --merge --verbose --strategy= --local + --fetch-all --dry-run $fc_opts + " + ;; + commit-diff,--*) + __gitcomp "--message= --file= --revision= $cmt_opts" + ;; + info,--*) + __gitcomp "--url" + ;; + branch,--*) + __gitcomp "--dry-run --message --tag" + ;; + tag,--*) + __gitcomp "--dry-run --message" + ;; + blame,--*) + __gitcomp "--git-format" + ;; + migrate,--*) + __gitcomp " + --config-dir= --ignore-paths= --minimize + --no-auth-cache --username= + " + ;; + reset,--*) + __gitcomp "--revision= --parent" + ;; + *) + ;; + esac + fi +} + +_git_tag () +{ + local i c=1 f=0 + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + -d|-v) + __gitcomp_nl "$(__git_tags)" + return + ;; + -f) + f=1 + ;; + esac + ((c++)) + done + + case "$prev" in + -m|-F) + ;; + -*|tag) + if [ $f = 1 ]; then + __gitcomp_nl "$(__git_tags)" + fi + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac +} + +_git_whatchanged () +{ + _git_log +} + +__git_main () +{ + local i c=1 command __git_dir + + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + --git-dir=*) __git_dir="${i#--git-dir=}" ;; + --git-dir) ((c++)) ; __git_dir="${words[c]}" ;; + --bare) __git_dir="." ;; + --help) command="help"; break ;; + -c|--work-tree|--namespace) ((c++)) ;; + -*) ;; + *) command="$i"; break ;; + esac + ((c++)) + done + + if [ -z "$command" ]; then + case "$cur" in + --*) __gitcomp " + --paginate + --no-pager + --git-dir= + --bare + --version + --exec-path + --exec-path= + --html-path + --man-path + --info-path + --work-tree= + --namespace= + --no-replace-objects + --help + " + ;; + *) __git_compute_porcelain_commands + __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;; + esac + return + fi + + local completion_func="_git_${command//-/_}" + declare -f $completion_func >/dev/null && $completion_func && return + + local expansion=$(__git_aliased_command "$command") + if [ -n "$expansion" ]; then + completion_func="_git_${expansion//-/_}" + declare -f $completion_func >/dev/null && $completion_func + fi +} + +__gitk_main () +{ + __git_has_doubledash && return + + local g="$(__gitdir)" + local merge="" + if [ -f "$g/MERGE_HEAD" ]; then + merge="--merge" + fi + case "$cur" in + --*) + __gitcomp " + $__git_log_common_options + $__git_log_gitk_options + $merge + " + return + ;; + esac + __git_complete_revlist +} + +if [[ -n ${ZSH_VERSION-} ]]; then + echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2 + + autoload -U +X compinit && compinit + + __gitcomp () + { + emulate -L zsh + + local cur_="${3-$cur}" + + case "$cur_" in + --*=) + ;; + *) + local c IFS=$' \t\n' + local -a array + for c in ${=1}; do + c="$c${4-}" + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + array[$#array+1]="$c" + done + compset -P '*[=:]' + compadd -Q -S '' -p "${2-}" -a -- array && _ret=0 + ;; + esac + } + + __gitcomp_nl () + { + emulate -L zsh + + local IFS=$'\n' + compset -P '*[=:]' + compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 + } + + __gitcomp_file () + { + emulate -L zsh + + local IFS=$'\n' + compset -P '*[=:]' + compadd -Q -p "${2-}" -f -- ${=1} && _ret=0 + } + + _git () + { + local _ret=1 cur cword prev + cur=${words[CURRENT]} + prev=${words[CURRENT-1]} + let cword=CURRENT-1 + emulate ksh -c __${service}_main + let _ret && _default && _ret=0 + return _ret + } + + compdef _git git gitk + return +fi + +__git_func_wrap () +{ + local cur words cword prev + _get_comp_words_by_ref -n =: cur words cword prev + $1 +} + +# Setup completion for certain functions defined above by setting common +# variables and workarounds. +# This is NOT a public function; use at your own risk. +__git_complete () +{ + local wrapper="__git_wrap${2}" + eval "$wrapper () { __git_func_wrap $2 ; }" + complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \ + || complete -o default -o nospace -F $wrapper $1 +} + +# wrapper for backwards compatibility +_git () +{ + __git_wrap__git_main +} + +# wrapper for backwards compatibility +_gitk () +{ + __git_wrap__gitk_main +} + +__git_complete git __git_main +__git_complete gitk __gitk_main + +# The following are necessary only for Cygwin, and only are needed +# when the user has tab-completed the executable name and consequently +# included the '.exe' suffix. +# +if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then +__git_complete git.exe __git_main +fi diff --git a/paddle/scripts/docker/root/.scripts/git-prompt.sh b/paddle/scripts/docker/root/.scripts/git-prompt.sh new file mode 100755 index 0000000000..576f4ec14c --- /dev/null +++ b/paddle/scripts/docker/root/.scripts/git-prompt.sh @@ -0,0 +1,445 @@ +# bash/zsh git prompt support +# +# Copyright (C) 2006,2007 Shawn O. Pearce +# Distributed under the GNU General Public License, version 2.0. +# +# This script allows you to see repository status in your prompt. +# +# To enable: +# +# 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh). +# 2) Add the following line to your .bashrc/.zshrc: +# source ~/.git-prompt.sh +# 3a) Change your PS1 to call __git_ps1 as +# command-substitution: +# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' +# ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' +# the optional argument will be used as format string. +# 3b) Alternatively, for a slightly faster prompt, __git_ps1 can +# be used for PROMPT_COMMAND in Bash or for precmd() in Zsh +# with two parameters,

  • %In*?7ce`0v4SXhYP&1KWPm1!>mL^0Yhtt-khOWcH1gkTesuS2X^3b9vQa9<{hJW{5Tq8 zTi3_R)oWw3>{c{UGb8B9X=qgYqvlHI!1@W?uSIgZ2yOk$TXjY~cDsH=x~>%9I%b_2 zMujObPvRm@c&=rJPt@F)2~CWGdIxe>PU;W`u;y%x3U@}JvfuNEg{BN7si3OI8el{f~ z7A`&|QSo4R@fxE&8j^{qnq^CdU~*%el-6u`Gg2StuUBGv za}tdLsTm#qSN`M$Ib+$xfwSC+*@-WR<1evh%$T9K*A7jauDWkrab0}=^)HL~gZIbD zk32;2B)#Q7gx{>HZCeqmuRlE&KKJGEu9u%+8y;-$z{PDGh2>WYh#MZ&x#ocx)T>rB)pQF> zi=a5P^@GK)s5y=Ov=L*VY;@12ygKSb4qi+2)=wOYvhtF^Xas3#q zuFl=7E+m2p07_#%ofspJymIK3(z0@L{M$Xo!Q1u$MvSD5O+7gI*t;-AL2n`yV>~4g z%rl}p5s8JhY}u*xlMcp;*ZOPJ)fsjfX+dM3O(c%g7~Ebzi~y{Zts4Y978nMtUt%*X&wNo&g#;EhA0%Z!s;x&IwUV}o`iNnMlvHnt(Fri(BcKRX2VIE z95}I%;NV`)5V>h)(p|4}z-3NB7>B@$WmLyR3OqU@5ZAn^(`Llbbie0o+v?xM7d~`q z#4)dnXP)pV0u{+?96oy%?+D420zd0wIXhzWwy}8hAHF-D_mpE}%B`0MzloTC*UmOH zd#`xIr_N~Ot;;WokAC(m@ru{JA)a#Ve!}n*!pAW=Uh`Zr<}H3Evc2ZRyh6~PMx7ai zv1%c4MUu1M1#50`2}&GBG;^$VFei@5ZJ)+jXN4dj=_!E01ACHu$|KG63nCgGn3px> zy0HnLeb3)^dZdzIq0$cCf|H2e<|c0q(Z}lNV+(=+6By?t@HMp7y2oocj+M!0hL?8b z!9eq=ta*Quk68S3B-ho!I@2hJYeAP9`Cym6(n?3xnJ2c|J6<*fprg5o699~@OK^#9 z^#%uFq-sA~H4oclXBb6fLZxj7*b`J)T3W_oz>3mF7}vo1IC4bN(vz0#0iwN#=m)&c zaelzMs^oP(b$Ad@jY?&X71!xAywrNdYCdg*S~!am{_Z_;fx; ziDM7v?>!x_Yuzk-S9<;$s$L{uUVe)ArtS0Mbss%5PB>yoTyg1!m@;)3*El%g+v|wq z;$vTWj2^!cfAddf#pl0%ZM@|j?~MKC`C2=^V+`*$!Ot?xiSKgMKFm8{%|KHo0qdN` zgh*z;7FBH30wKl0@EXv@)~#RFoSD!HP`PYnp`}l#gsQe$AFp-glV)MOe$-Xk+xiV~ zR1%!iZcD1v2Ix6JRx)j^%(k}rz)4I0K1be)WitNEsid;^()5w)(^thMQLpKqB(A|d zr;sc_)u8E9yzzK9H#(XoHS!eT`vEx-5%$sB+2dcU>(8lTDYz^vQ3?q0sk0D$v z_-fb66}QK7^p@bueeYg=Ykc*6kB)!9=VyHTi!Y4>@V2k99r)WN{89KAUabneF1D4g zgrPB?Qi*bU9DBka$B!=mgP1jEc8siBp%2Gk9=56adjfTRz<9=-hXO;P+3*Zlk~pl% zD2EbAyM~4D#ddWjA4ksXI>R)uj^v}w813EaOHO}9fPrn-IurQd>!&A+NLGwZ4^u8KQT$jQ*oP}I59W?z;2oyvXpe! zIgs){$O~0xGg60nTir`UMz|Kh2ud>caW0dD^lQ=OVh+Z$4X$4Xib&FWt!J>*ti|d&ViJy)AzKxuf_}^@x@D zDycbvPk3Zbv}qHrdDEuzZ>k;|Q}anFG1QYU!$BXetNEchsznJWj$kx0BfI(@yI*xn zfal6$C?KP9A8I7R3F{}D`Mj4nRT`a9Xt{9^mM-)gFZVz>I*8ZUyjnjo@{m}%)J;r{ zJ1Vbv<$_;G_zmp=VUdrR1X+^?N<%%~GkoBixr;&ubJ!%XSZi*@i^$ZK!KqJnm}JdE zB9ey)T9}7ISqhG;&gA8NK@ga&J?|`pXX#3jC>Rc?$i(Ds@`}rZ2>}a8u3k(Tv8==nzMa9g({j`JEGE`GLg5C5y4*77Y$!0S;$?^|O^G zhEPQ%Y{-fu#459Ja3C4}Pj;OXwrM3tr=syBwPwcr6V{KKBuqG<$XA-FMR-X_1WuHc zwPOL?Wnk5&M2Xz=Sql!BqY&(|PbB|@D)5`f+x5xZ8{_^p_u*5z?}~Rl^O5 zmuOBn8~5C8uQFN+2CfG zyysx!UK&8)u|MYqfG`T>fxJe#$73;*5JNOs8Ot8bllH>4}6>;VFZo)4dE{;bn#oI3M)?Gdp+p=kE?04kD<59nNNDOPvtfMt^ zqj*ZLq!Q5wT$UzvWT|q#s)fLwzpxd+(x%T|vzn34s;j73W!1S9^ccZoA2DnL>z7%0 z;(q7)l?3m>(#*KQM!dW{)0u#_C6ds;jqChOq)&b^zJr}A@j%_n;nKhNcS}+fDf|PmL$IP?l`o{zj0F)CAt{-gl3pHW= z%#AqOO=~bldI4q^%>@E1B{?}~WtDPJlK@H#HYmukH6{-R8q+NkNE@#$jFY+?IueW+ z^OrozN*}o}a+>7LG~y(3FuBc{nNZQ-KnZH-%SMZG@s#tFEs=5)peiHOT9PFrNY>Mp zYfVYa!KOOFP#I)Pzc4MnA`~V9z}&=J12JkX?e|z-)uPMPUoY2?w3!Dd-j6tJc}Rl6 zu8-$nXBclhDJG-xR1yccfK}BRl-f8TfzNf#FnL91A|YV|d3j2M)}1cpfL{RABF`|( z!@2lht)IEuvDF`N8M&UVO33RBWV3qavYJA*ISE87ImY77-(DAIf9;HT!$}gv6Tn5!`;?LGLbAa5hxl;^l;In%~uvMKsVl5_HKjG+71bH1R77RF) z31`>2c%7$Zs}94_SM3>*!KIw;(yToesQu-iaa@^l?Y@P;TX0E4sZibi&|B1bqK`^7G_Ou1=kOM zWmG%~k}C;q#*v+DPK)2G0INBbPqD_*Br^`qNid8QSUz^_l#hCN2j<&Cl>_AER*d4= zL(5_o0ddx4elH68;L|+GD>4+PS2!*M%au{>Y(A3uZEsX!43EZhD#cxe1GO}pw~z=? z6j%!&L;hBg5hCZ6ON4QE<86b->@Opue%4| z>9j3g`L@@`!wy`m4&Gh9YIkSH^N6N6p3&hz5jd&OF)Z*YT7F%a{`5PGhu%{E7S2I+7 z7?>OwTQfdXpf+FgA-AB6L`Nrbkxp!~+smpDT%)W~kCR>n3uRp4i(8iq6_2Z8bl1Zi zAV_2I7N5`LMnlkKnkC}_H9K5K5*8^%@aH#T{eyxAx_xGknytyR>4K|AGS^vE;T#yA zIV7u>FVX2HIoJVG43pP9;Nq&f#Ke%2#A%12YGJEfKJ0Rx>+XM!Pb|qRA56-Z=R{Be z9c@07-cN+#wbgw3A~pZIuP*)XXRNQ}DM%SD*iBJmLIoeDI%t7=Qjp zkBfVM_0#ywN8TF$e8DxbY0;9Hz2(k0c;Ce_125T6#h)7t@7xi`KkgxM^Hmqb^&2C`pN3xN4?RoPf) z*PyO*cDaTF>({S~VqId@MQg%d7vV*K1?G-Bs|%ZZif+uL{U5Dg?gyP5+*3d%uch{@ z{IJ#3mB|CC;DJMF`@h`1ZOpG-THbZ-{k+aI(}8EEAhacbf*2~LTBl+ZtTxgrq!pvF z^@B~&FIJ;58b4^FiN+WcKQuA%gG!`H6K$$ZquAJ(AT+fUh)@*T0ono%7#K>RI1J45 zwmp8wah&T~|Cf8eJTs$-Yv2ECt#zKqd7Q^O*SfCzf8YDw_l{<-hEnjRpl$p3Se^E85iY}2BG6%^w&6paw{2<$bj z(V*iWuASG5aA6y5Xf$VmL=E@o3!nF9#fBYjn8@tN`|t|IKp_t6m9CCw^!0!ktd`$x)zb z5uy)^l0p9-eD=@o-rM}L7e}MBb%vVVfX&w!9JXhOVNgvZK7DuJ|C_*{{EvRu@o#*m zesb;4|Jd<+fBQ#|ANrsF+v7j{H~*F6yM9*x0p8dAmg84`@@tPT`REt=i_X{e{_MSX zfAjH8f5$t=|MEZncgL^k|0Vv#pZ}TTlaIgj`1WuABga?yr$F?~)ARJDm)<#kS-*$l zXMgQWwTdUlkNmkmb^KHR&VP1%>$m(qd8Jqy-uUnr9sklF{pRD({5Rimyr*B<_OgE3 zT>_(WTqBVmsZ9lm=Zf)`PrY;DYfZj zabMPXcy~s|i`6-@f4lwm*?h^H{Uc&$jxJ0ZIYoPx4;BFSnyH7^tRB~SpqOZ?x}oH< zMf+Zb1P4`mO*nH<`f^g}ekRwv&RA)2u$4$>GH~@hVFqU54Iu$tY8GsN|DR44V4kik zMA*P4bfPmXTlW!_*9?U$i8*UzG50&Wl` z(JyV#Z!L6_!$oRLD!C{Exw$5Et`4>4SVA>~vT1mYIb(0oJ4wgan9R|-^VaH^>xju0 zXOWLzKfdYP|GncozW!f5{<%N+5Ba|l_}Dl9;p4yhhJW<<7ryTYj{p7RKYsk+kNn{A zQ~$$HAK&wdPwI#Be_3Bm>I=rN(yuf7;h)i80ep%6>hs5sm`1qo){=1Jqp@;3uTb%}Wujk*G`+ID9XzuH}-Jf~~RQ{O`cPn+tg>!)J zGuf|>mm%(WhBM(e=(u<2jix%M7B~J<_%~y!jQa7Eq05oitt>;nkkSC>oPGD5+6+*G z{6j&41Sdd4-hp|Xhr zIgahOoC79!;2zI<{2f5nE$eklEtV2v&Tj|=Z5ia&G-I-5&B+m+k6zBdr+GC0rW*W~ zFk@Zwv3a)PR*Qwloyl}tz_>2Zr@wJFl>0Od>AsfX3&pT*vQF+9UGTns{C&Uwj~@T^ zpZ+I~-}i0beDKuz;&1!|$A9{#zw!9zzyJG=AO6vgA3yP9KXm-}f9~gw@BYNk9LHbN zZwcG>c`qHm zoB zg0C@|W8ZmeJvEgCdmniRzgu9w&R*F7_$JZd>Spot=*k8rx%`wd4UpJ;hn|yC`Wr;P z$Kx_DM15Zw620BN%9U>{ope)+NqX_ju(9`h1zFQ@x{h^7tw#ck?!_$!cYWUAvarECSA=11y1j>T9H?_H{O$2V;6ZX%bSYY)Pv zmHRYxB)dm9xw9@`&!AyD`)l60nLhBP$G83K-*bHVA9?fmwr~7e-j*G|_n-ZjkKg%w zzUBD7zw`sgkN(vkKmOuh{NCfoe)bc`5B~Hgj^n5G+a13|PsW$^i_?Dc7mnla`tsxW z_zxZb^ndUj#~0`ePTKiC@1^6dH{Lkj{lYi(uKLmO2mkFqcD$q4)lb+u=K8{~PMdcX z=TFQ%T#JbhV!w_jy*)QI9Nt?@J$5{}e|w7SI?qXxeb0T#3qdTqJxNn7K0ouG0T!QM z@EJ@fcSUSNqC=k_DJLfXaB5uii>K+iS9z4dbNVwkdh+?+i_gAF zn`aTq8mqtQ%;VzxYyH^Ek@_>8QW#+R{YJ*m98cc< z4gJlQemwSDzg*wt(%*c({5y|V-~9FCozq zjyQu8w>7F?&$$ao^@O(d3cz)O#fuhgpL3?41-$px@#r^w?D+JLe)sXN{)>+H-qBot zz?5=?!=x6mrM%D@e<4h^bu{djcW|x2ByCCYUbYc6+@0UxEl?oymi#()XD;sXE02%g zqaP!C_q+a!(n!m-#klU zAHVXI`lg$HZ0x1K_ju)v4<29qzkcWOi;A9e#xLJ^3;duGO=G%`Y&@&vM!I7m=(RgIgw3=hHs^ z3)pEa#|MK!ngUjpSgbu;tS5t{L~K~k3RIfRg=#sr03syG``@~ zj1Lwr&G>vKHMa?@+Qh8)2<5UaKGzsADm&}?{l%lk=1`7sI8(^?Yh$9hF=$cr`Sn@u zabG8;I6%GZ!!Sk;M#u1GfeN#&4s{UmtTEy=%bI4FF2rHu)BLR0ya0SNsdo^U64t&p zVIV~mweolU*5m^uoLh7AN&V5wZyfJ^>gSG6eb2u*Ugvdc5f0}#H#OBK&oyYk_j+;< z??&c)x}>%W+g!*2y#Dfs^nlPW zqj^n#>-aiH3DBnv@)w4`@WZ-cepLVAuuRi5e)P)UetgM?e%tZhU;ej_U)BG?iQ8wV zxE($+jDcee!}qLSc!!9J@a1%y=-HOG@rM!F6&*TiR}njg=?12;OF6KGz=43DhIRc_Bap8dh*oQ*Sw zEIFI{g*dOidA$8|f8luRul+G=g)kT*(;UA~7+-_Nf3GL^@NQ(=Fe2X%FH-Jkd0*V{ z=#ct6S2JIG^4xp;$`|NIV87z{=qvhZ4t>LiXWpS_p4$`s4S<6DpGtk|uN=SeJ^yhu z)lID)f8gtn-}>4IkGKEAe}4Sx_CFO7KQIQ)U8C2fSf9rQa>m<>{Duh6GWLdj*@kBs zcH{$NxQF+GEZVG-&@0~qY^NDsX2X4YE~yNXQ~U7fwXe}{{{3>r@MC--m~XcE?sT!r zYw9f2x0r@dF&@p+qrrFXDmKZATOb8P;Ew&4p9!%Z`B`JCDaoCLbxe=8Hd1Y%@+5uh|R{H@qvi$q|}7&g!72Ylaez&#%?C+Jw48Hi&OC5^@#^Az;>wJ$qfd-aQtH}s8d{Tl(j_-6={@z*SfXWn~1_x;DGe&XZj+M4h~ zANmK54?p_!@#*jG^H6r8xv-XfTr*vooio{b+3iyNbvdvv+r%%!#_`Y)?&00YOr^`J z|K@v$>cTF(L+)s~pkhMXaT-7V;NO2d(wTkYZ-m0dy&dow!rj|h<2~z`&O=>n?`5KV z?|M^k=w*MpiS_fS?)_dT%-m@A=nTeAO|gt-P)U*O7(CL&FReST$3=l&ID%Abo!1aa6OFW_tP2PmRF`kov~v{e`cXRpeRSEw-}1qJan$D zLmiQzO`o}~<>c_l#De#4ANd>3Bn>@oz6 z5-z=Ac-!A`{73ZlELf3DT{PQHNPJmsaWxH!waR3Usq=L$>P~VdqmwahYA}5*hRHU( z)(PCVy(9~OTc-P(@z@#ApcEGBL?EayS^Cl$=Ui&m?ULgUiIgYUg zi_bnZLY`RXg$iyTEGD%2jV>uxyX7k{ROc9H??sQmCw~K%Vru|Hi0GXGO%{$_WBJfG z%@W6EUOWK0M#OZCinNa8^1r*4J%4}(W8Q&ZL{(^lNRlsjj*gAHDX`BW2w5K7HI5dcEzQ6ac5?$Dq8@#~(Nze?*@@!k}I_<$t2z zc>5N$e)C)NBW4aC4)S&1tbKUtuWEsR>bztw0arH%z&e(f>}CU$P{D;_aQHkZp|1Du$0)8$;Fa=3hB!o%=J> zXkq8xPThzNkMk;j$`mbN*pdYb)YmBicsPdld}a_x-PBv3yYLardYzo!J7O$R)9m4F zu$Ix%an5Vvz&qR2FQR3=^j~V04=&4Se#V>TuwvuwgPbhInLyE^%OuuifU}z07$@jn zz>!>7!vRY%^dr)-0bQ&OyI~WpUT@wXeNf-L_|VtNY4p|;aBH*06dJh*f>F1QFYl8m z+!bfM^OEOz?h|UR8W8F>1H@eMjmhzhP`)mFV9npeNBYHMcc(N-*d!g zi-#J`{(*5qXm+xC%FaF1#Ilm!;Aiiv>6>SCPY^AiX7@SOSZPs8K6>kO|fj6QCyx^bJu6hd?CJcicP-JjDmdO6?+mb5yHLWHwlQy zsfm8Bz8$!k2HqU_z`7PBvY+)0P!ehr)M#IK&9)b3aPks1RV%UUR`^=ie35o)j-E+7 zQhXLGYiW*PuV4|9cY>YlRDurIxgvI@m=?0@vn?P;41P3|$76Z%!A|oyWFC7CXMG;b z#AZe6yU*q_X%HNToi&tZbCR_dnfy0*33E)ej3SvPj|T9}gFkg&fvJJlADhFLTahvl zKZhyMD6?7mql?Iny?F|C4TLp8C4p89rkE4s=q3-70E=6gWh86bjS0f_55LY6R$4h3 zr5+y6ICQ=SkqBS8a3fg&kf@$d5T4=2lj39yRHH|FWAWr2el#ka;H|*ea6R)mSM0w3 z92++$&hX|wvE~6Pub(&3!8)isZCN(1tTUd)YyW4bIX}ug8Art=R&Q5w%#gZLZ`acQ z!FtY&QH0DA-_^f|>iE>Gk!)V;0#1xGr~(9WKQi37S8d|gv`zD8?ceVAqBh=5^HZO5 z*ZYTzbGJOU$*UXvgE%#3r0cF}mJUlu%1y0R24lmO+68xUD=2~nmFbd56KOF}!}Xjq z)Hs})n(&e;Sk6pIQYuH~;`7A1 zOggr(tk2W+)hZ4%HYJJWnPMkp(?v7My+)vIGhe30Z88RGlW_&7>%^i)y==_&vcmdI zu3DKUvEvSCf78)*f%wE}CY!qb@-qgYt#im@$CJQoxu^{ND zND!+LGbBn3}C&I{^SjT(YKm81GKq@U_G1ViBkMnPvk|iYNlI9f^Wzv%rOn* zccJi2HH-_lkLA0}vN=&;nUK+<$!pS{JfwL;ia@c?yMIxB^6pZQU@dgd-oNt(tY$B@&fS+cjN8AkEM%|`jXvttMlxQ!tS zh6A(jHH>&REEb*>31BwO;F;LHzSI>y`&TYQL+YGe_+=U^5Z{yjO(#PFDS&&%8W5~* z#OKJ*!N&*qwoS2DQp3tUf(E2;a9IS`G`orG4q!+2eAja3XiQ8j!&I6qgIK#+3_M(l zPn9-ad?XI9rI&0nF-^3t3}}j(2cqMtCFZz<(;QyCb{;~LD>*aEbu{O}CYue0GZ9si zJCB84Gc(_KNsr}5vkYk4G!qs!f*4H@+T=5de7hYQoaJKZF_?zq3bS{!+_5G48Jd+L zb%s!6-apbL!KLOf!cM!^>~m0E?9FrSA30qQGwQ;Et~A@)I=dF2lxS*Z&HMg!EsGcK zv{N(slWl5AZ7($A@Ot!#m)_IpvqrxOi#qYB}&IlNxPN)UB~Uu!1B zSo&$`SXw%+0L-JM>0H0?hQOSxTKTi~SiE2noaY&`%Zi&!$#=dv8>yAJ;PAz2G*7?t zx)$b%rn$CSo`zSkgwqr>=Ylu)yyUMGe$>N$Oxh7{VB213@qIq-;Hj{t0WHP7=j1O^fEtl1*0zv}?_)7Iq0IK6p3o1e0Ob6SCosL`3yO z+F&>dMYZ8AG@9jHZRBB?vwTnUe&+Z~8t6({&BVi|mr1#}lIm-cW6rRX;eezyW}0up zVT;Q-LWo-}jtR-iyZ+*)45nTonOPb(P3H?z<29#V!&_k>)4YES7Xt*T!C1|~guM)d zuO#53q1T!PwV#f$cS%^=F*+_Y`&1Q=(|Z zy9#gEuDLlBpIE>&<{Phu=1Cd{t>={aqd3{3SL3D(WRh8q zpL1mKnQJY~RlYEtyrbW`6-Ar(SiVoNA*X>Wn+)@u(+_kny*+G%VkFkbRg+0ohb<)^ z_Jjb)6I&-Y(E*UW%vBV7-hgWC1v?te%@__NeF+Oi$>u0SXu9w%BT#t6o04kW13ia$ zZLl+<0p7&1ewx2ys5pO7VuQ`mDDGqgCwn&yo5Ou6A@nOxIQ+owx_4-9;KZGplid0i z7}C~)jJ6Bs+N+bnIV*vVdI7VE%cgn7%S;QML7J%7hr0(f`#}$E)ftx7)MO{u_5MY3 zDtD<_GuCJ(_|!%-c_I>{Ucmuzlj))T!=F7x6O)OCqdex`Gy}prIbCO~jf|m^z85}o zaPGXH#hKGT_wU+7=^8=YbvTXY&ZTwoZ#S*G$DzPaL0g%v;XvU)LZ!NZUkmGG>&V zjA`*_tQls#+J(p0;ByUw%&v21reF+5{(>~z#H=>}KKGzx4VgF?d@j!1B`-p#QJy`~ zszk`PEg3a-m{nSZWmOw^-=i&tf2Oaz3a{%wDhg?3B<{dk>87E!@(qMEd zGQ8%dN=@ak%;tQBp*By3TfIIkD~mDDh2~ByCtl}&P_uZvZRA;+qi^xTAOb5w3eEYu zZX9l#=1Ru=ywADZwJB%-06+jqL_t)C_pfBuknw1Ku`_2i&%b{Xw4TFVH{G&%ZMsY? zR4|u9m%>SC+t@P$CksXaIVIG7)&!s9@jI}c^PJp8#aSQu%Ba43RvYu^+DLOyjKJqp zi%pQFVMLe_=lbsq+U#;vxrHY`95i1|R9-tZ_MRoiyv{>J2g2nUb=HES@CPMa4Rr(W40ma;N%F>;j$5B!a$iR zf7T5*b7zxZIPmitUJMtSL#e9=qshEzZY{HBg+hy{MZ+Zjg#YA)>nWOD3y2^QaJma# zGuS;K+-@m75CIzdAgk%vPYd`ld@t0># zeqkK$Yra44^NDL3g$Xo#p1_Z8KH$hJA~24Pv0k+4cW&%{!ZA=A--O8Ib-2eU0L23b z-*Dpb2Fm8X>oP7Of@rXXT61hLXF~~KoE0$)FSd-mcSs-zxL%3ZSZ&opM%T!I@&>Z5 z=b4MiJPc>xHJ(0lk86^9PyN+=JX!huGv{4V((Ik^UQ9XfF9;* z^PHRK5tvW`5+Dy((3mTOOyK2p@yrm%exHDZY}XuH5}H?}_cd#$TniFGQZ70I zFLRlgsfdSuGErISMt;iwMoqZ#BQ@nPZz+1X?6&Iu_Zv`y0((0FkTtK3@ic znUt_7o{)IljMc?!lg0a&s3KN(!##OQMwfL!!%P5*<8^3WZtVO4ZQtas$u6?uP8Z(V zk^>JfHSu;Nx)~)4DsWyt=g@+KZtjUO5#JZQOS9p=csb5fo^pA8i&uP>;!A?{j^6pe zz%35=mt@E09&p*@GlN7U7P{oV^a3(fG9_d>H$g`2$a zUULKJGlL=iK!bFh(aX!pm;YIs%|=LhMK~0xvkmYntF_e+eqK=#!>R{PwaD>cX%^;v zojD~OI@j4LWZ5;l78vBLK6eCSs?9Y--+(j%^3eW)%lijNh}$DOpI~bM5Fos6en8A* z`jXAGE5w?6r)Op@a@IC+dCD10e!mo~p?;ANAP!S{@9cKtI#)6|oullZq%ym4_#oGW z*Vfon9x(d@Kd=f^HxD={kdn90Lox?j%ay-1JM+i@)2baDtf=%Rl+Dz(89)R;2hPEb z0h?aJ4uz4r#2m+}nv7>I7>v$A5%fm0NjJ@gH&eUO4BHL2MNkVAv?Zm(LeJ5VF(0Yt z5Y;x*FqD8I_5rcTafQ^K>sXz!>sze#k}hr^p19J9hi2{mLmjI2;oU)PDG4 z47X3{0*-0|Jr-}9w2-5*CJdX9e|ryASf~5A|crGD8&HIp8Xrmvbq_Z zAq>MCvn=|U@$6r-54xI#6L763LBfpY z&+w_A)Yun9pHHX-x)JY>aDXKd52dkn(}nfp4nia756j#Wa67vBwj2t`PZDf94#&W~K=R`Un^=^gJ^2P4Yl2%fLdV=O zp45%FXwHZyoN^e~sBI5iA<#p2Ajscr0uC2tDhk)@3Y$cDosv(Je2up+Y$uOk{~6$xQuqGdEQcaY*~ z$q8GuF|XfU;*ybZ>nfikL+%KBx&-v4g*R$-CHL?O;^9(}2+NyrOd2<9@o{3CS`5=1 zA`rKlt6rKHeQQCQ&tCIl4O^!tZ`LuI=Rw7d8oi@p(}%AG8TQ$~LDO6P%2&(XI%g+b zRQ%n)M%c{w)SS_-Sx&WE%~)yY{+;U>&Drk=&Hgz;7d(3T`4m5vQ5!|#v(cY+33P3& z4ZG3wd}7w_&)NvGzbu|&AP?(P7Ej4WlSMJ{#)1`$DdoeP7#R)ensNXQJsGfj+y`VP4UQuMMC!_7Q&8gXYcAu;>BNmlTo6%Du4u~~LG^gZdKAT&i$B7` z)gxcf(z*FYqeAfGTup{f&1ri^>&#UzK%h=x1t(8<2@b|18wVdON}?@H=JI8@$(=vr zbEJY2K?c=9lg#b4DtPVVO77v6-9xKGS=y<2EQ)_nvrmqBotNi=!oqv4S-z5kaVsz5 zpy^YKj-IL+tXJ%Av4*Wvc&DY#r)JylXkK`HSDNqD!s=JPL~|t3hIw={OKs%2qj{vB znlpO({(;%nXx?b>Rj$dJ+`*<6AOPTzN_A&Od{Iu%;bQIcjkQD&j*T9?k^b$hYYo@| zyVIoO(^8ub>bS_0u(3EeDafbM-17+njfCR4FSM9^4wKJr`lV`+=@sU+0n}p7`vg9? zU^hq|9N=)RjE*M_>Q*C!$-301Zcx)t4By1#p6%Z|2Iu(U-g7Q;=Y8HYS2_hN`{MSh z%tL;%xXvuzBBN{co*cqr+zm`qw1n0P=c;o(*P2lgB}yw^)3To|)oqN(irq>Lcu~zK ztJylu8Z)`pY#)0hEx|s-2`HiJ>0B6JK+(=1YL3LyddGe zQwv3fmyDxBco{=`T1Rv6!G?EomC0S=l9BP$0xi*eW+PeTXWfj^i}`7qSD1ra;t=)v zu;%iT$Jvxo2{TL9P{_i1@F7U!PMsVU`zBwxJT>uDKyiZd4Wi}C=rZ1GCP#5#CWQUt zS%hIkPvKO_ zgP?)UEvR$pl0`>z#?|3iBCzU@12k2m9Oi4#`cyerW17ZJLM6F#rOY`Z0eW6^)KGhEMGUq+z}`g{&Q`fWoi#DKeUWL_b-s16HS;umu4rl&?&d$ zh$cn!M>EjL^RQ;3rp`oc`}d492l`rb*znMXS1Kqjjjty;&-ycUvmLWuu7m1)`l4r6 z0ya##0`^3gISgSaCaVXSGuOHJ#}hatCaM6k&=e(Lq!W=SU&~?M@$`HU=|*gC^p;X) zjB%US<88ec9Mms4dm}8~JU~hmt4&#{47kc&_qk>{V09I`4loxbB-jt??u5j;76vv} z45UakXUv?2Re!9(hGs<;M%EU)EgI)OiLzh<2s-$9!+l1>Fl~5Ecn};+Z)}Q&5N-< z`sFCwXe3_FU9(MGfST9AHJiL+b^J2A&L+(uT<39`tTMn4NYQ6aWK@uON;WHHnsM?G z9*S0_d9ZQj(uc%LwSTx9BUHk|6m-vM^IbnPf{~Lf4%5X8O$QKRnBceu2V%yI zT#^jxaj4^LR%oKJgFYGYPxDvuGJrrsbbzfQ37qe0Lg9sLQRq%om^{U3uG&(eu)3I_ zCVP$_HF9o3%bOKHLvyo7F`VHxyLHsIc+VArq&eb7bA0B#t66@pODY#PF@b~1w3AG0HXqQP(%$|IXCk9rUUZ;9MjaM9s5N(z>? zlZsEckCd|P;uVxfQGx_#fzzxf(IhN=e zD-h!8b@5AMx7e+T9AlGiYZjbs$1`t?n-V1$*MDc|(8WEu#lrp>Yq-bjn>xaqJBdM+ z7rBWeKeSxpCqg6h5+I~Zm(Mxb$}NQBxPnV5O6pF$5Gxmw2`8@eR20=7b$uJebVviTp45G_fKGBocy|F~5o#&bLmgDqB zpBJOti#uzD0sZji8cy3ClRQ;0Yxk;Km zb9!Ay^H|SX2)SwjdfGkB@I=S(ZE8^BGw8uW&PrMtG<*MLCxu_5YI?hL!RZf+IyH-H zX@;MMBJjz#cx8H;W=F35E3zD9HoJ9P^P+WXVF6^9u4~Ql8ClK5O$0IbG?V)RWA>WV zQ48nOnD<&!n={PJjZ(%;2{dHAH!>y86Q6bIN*(lCyE2j-BfHjWuR^nI%~E*BovaQ} z1`)^zjpH=v58q94Z6QoFlSh^Xh&Y53E)2uAb9g<9d>;?F;6S7ILW4^*vPxSW_FK}1 zwUCn+t^9$PmVGuT^Jeiz6=O#)FvFjp&{QfE{6zCUX4UUeAoz^Q7czxVwk`~5Si1g&Aghg+Hx*} z2;=Z310L6^cq0u7?`X~j6N8g0yw$9rsg&KFdCkI@E)qTQC(6!G&Edst?yf4aCj%pR zpRU;?BJyg?M?G#dd(D$!>a6}uhn#437sst;F)N5{XDHdy=&v=~)BI7HHKEyY^*Odg zSxzS+AS1EPyNfO)dNR4z>}tprjMbPiqp3wqdB%Xu+{I@sQxq^!6CYUDBHw%SS{f+; zBmTwuL^;4#!toAvVN|%}2SGdQY?WFVE97N0CCJ=H+h>G*a!}9NrP#M93TFRACeHW6 zz_xydiyLNYK{$Jp4^e7xtr-k~1~a*B#PLNhEnCgpRCuu3w_jXCyL3_PR2`PlX}o-n zHgVW|UgS*5lbg}R&%T(e5XSS&Fo(Hu!mB?T8dDzZY0=3TQf&7aKikLHN5a>s!W;}tL5_$u05 zh1lK&e?H%jbN@Ic8uVg3bw->u$;OB(F&~@n-I>&fb1>k;m@DK9Zp!h7-#%TeXUl_k z+Qf4P%9<}a37SB5%o|2jliJ4x2D41~iW0V9{5BgXJoYS~&8T%@fI7sun0-iPG}gSz z$4N4;>~Y9H2Cx`4w~4Vq=Z_b{FXwzw3mDMX-3_tz&*9vO0!0i$k-Lcsa#e5C%1Y_gVz1D{dxmR`YEwfE8;lF3;8s z?QpxA*R>GGs>Q6)f-W^X)+P&u)%)j9AWzjST&YF}hI}W;>NNGr1kCz&&0gcCIcIs( zOq2s!3(aZN*_t~`5j45kzvR9+bLTcVdiG@PAL|7(+*j*kdhVYlbDyAU)tKPXyqGYy z%^f5kALve6uh-|ud3Eu*ihrV4kFRmSlc`uHHl$K{Gf+JD9|?h^>r4g{S%Ja_WvG13 zz@~HW{PR-*ttnTnubHqd=b)L2jV@iHBcs=q*o>pM2_-tSzo5%dZ zEHv{Dx$7)1%fmLi#0=9}4dM)X_{@=*dPoq%{TmLe=+pw{ZekeWCL<{b%;Y?C(q&#? zC)NV1d8CD}WGreN`+XvQT*e}lRT^sn$WV*j!_kaQAH*#k;(b4wVHj!7VI7R3+1j{B zD}U%8)|@bl153No46ilgYb{b|c;oTjuR1#=XhJ(_oiJc)Ej*d=(%hIr=R5SP&T^Z> zs?J&vo^{Y`HbvU^kC>fTbMFC5@A8Sx`sjP+aE?xM<10=zpiv8Kt`>WOgj}j6xRuA; z4o$qSMJSe$UVJ!@bRgUa89jCa$8yR22WD$PHC2}j6GOCabNkYCpp0D0&un6)K?d@y zBPZ9YGn&keiOAH>`!~GCb4jLV^V-ZCSN$Rj&8gX@a?@Q1*@9a?muZQLqPg0P-lkb~ zhQ|A+1o$r+JNo|5T=Z^duHSI*LakZJB$_|ARl+()){BwF1GUGRKAY#9m$~03@XBbr zYm8>iNIUmcCe|^Ug$l-2M}MB)8>K=PD6P(Wtr`2$?6M->wHkSQowM3gGd0dRrWUO; zwa^PYrBHV^Ph^<=gNmsUx(*h@1k!6BQ^rd(aX6}Z%5Kw;d3~|Wv-#BAaAVPID$x~> zed&0AXD+pf!jW{TS-G4}x%4rOq0P9hL3fqLW6v{V13A_a#lzGypplO#CfXu7r`|0k zAk};^j(3)CdJK*YZrz&LX#-{qE=Qs=Y$#210&|O1q&*lsK*r%W!Qgpeo^glj+8Q%c z^<$w7J~Y^5%>Hg7FqGF;rm}%Wi;J@Hj*h(LGs4LzVsc_jGml9%hj(r`A%=IbM9kQl zE$Uix$Dnp?vz0?lc%&y8ITwp)wo1Ix{#aRZ%SV{&^O z{-H{cTq{p$0@hVQ_FV$bI}2L00Xs40s8VW3M+D~qL9)yuHLS#ul^WYPy3~7~^E5#7 zBEoL)tFEx;{opHG}3EGxs zXm|+_&4J!(RtCpkYIa_Q*j0|~M0rOT;%F>F9}Caa`)Bjb{yD}WdbjObBzV8a!%O^j zHXIWy+4gfG>x8)Xy3HL`qs@|;@R}fJ*{8k#c8Kv75Poxn=<;s}!fj9Y*;+76g_`$# zX5bS__PquU!8NUhbgoP(Wnsf<>Qu39F&c_E=PZzmD`9n-p*6eF+@M{vF{_3FM8;|K zh>KoOd#FU0dMv`WtUqAuiK}==H__Fa2=STAN!`yzrAGq~U9V9A=vdAU#No=4%A&a{ zSH;}p9S-A&ftS~CV57+pTc$0w!60}I7YL7Kgg2UF3;x4qaTHnb!*x96UfVuZDqXJNL4IeNeNp`6&eNa&@RPQF_J0 z12>Hrbl4fqn3)b_#U(TDE6qiYW+UL$%bKm`w$4rBdX5I!l5fi{j?@ccNcqskz-UfP z6R)mu#k$VR7i|}{2)hxv&tT2VH6KatGs)+&;%5DupVZTK&E~D|`k9eZoGV(R4qi5Z zWD<97Uee%8VKi9d`bgsS^h?((#!8+WI z9%!*>T1%t|#N1&CC-i#3|y%lbBM$2Hp8s}1hPpS&T+Jw!~JWfXg( zS$15CY-1E7ajr2vR&xwawk`zU5KNup3wGAT9y(+w0(QD+G}FS^W~}OiBpEFUcLQDX6zsFm%;NbV)0O7R+3ReHTqMTY zMsrA_W5x>1{z1KsFEoo_>a1bbyCtq0`@Vlk@qp&xG0mMb$Aa|18q70e<3}g8$k>|f zBSxv&|drnApELR0FQ zHL$*uH}VzOI#qTsf_WYC;dYplGt$7ejLmK0iiq0`Wx4yza3XjXZ_u~Tx$>6m>CZWV zM)2sUHg{ghc5hGNzBOQqH*dn(lva0j zO;W<2$uJ`qVXzQGJ14;js}C~^0wYfU)wg>>WW^yKFe7yB$q0uR@0KrojUyf+{Y)Bm z#+hSdo`NQisd6drq$vws_0WrnTF{r8G3SF{R zC)6dmb4H?-A8~kWPLSjXrUV2cNEZvzbs=yJ+M}frk78J&**qwRd^S$~n7bB$PqmBN zxtYah?X@`+`_82_m(%iENFsO^_0yDj%`E@3o^zM?TJ*4%3)!SVK=b)tk%=XGnfT>I z!OCkaiZm#&;Y0?)u2V>IhVO>!LXXC zK-xXc$>Xcf99)Axd*6SW!ZrMX+j3P4fgtfmpJUayGcsQ1N$Y_(_X~M6hFTm81Ad)3 zqSY*dbeE!iZmj_(c+dAnjsp&NF3n?4E{pfHA%`}4a^~QMhgYtnxfJ)`X9$1)y^+YM z1zhgKYc6Z{sY=4;wEznvKfLaIiAC@lQ{$`Woa-LUo$*?GV@|yHjyluiXff96fVFwSk!cnKZswx5&@u95|Yp5TOw> z{Xd!JENr3Nov3Sa`dZC%nO!TEtymRETSQOCO2Fo&<@o zrq*+DD5KX^{Mfx_crlFTmH<+717aOh<#OL>Hi=QC&3My15-Pa7$?g0M+gv&2=M1C> zaU|^>%_6t5rJ1m3BGMxTTZ0ZkV6&#CsBq%!QPGxW2f&2wiWihjK5x}*D&T6T=GJcZ z&maN?8k@O`OSIj=K-S!f@ep!1#h7E$yma2t98vlkMa6rM&NZ14vy$#-ZZh#HWT7#d z>%M01Uj%xcOKxrOEZ)uO`i}#w$GSkMZs{tIL$!XpfsMWFR%d%_Q7R)9?Cpix_I)i$ z?OK#`xbXzpz-IL}01_A3Fk@Sq$LFLEX)bfZVY$q1J}#Ka4=FDVwWnD}OfdOBq&HaK zj3dTS2X~U#GK5xc@1MB^Q*(sLnTh#xaOTJvUKrVntev7^-<1_vYjK*<7RMs2T@Ifo z6OHEJ&Cq?o!j2|qxmhdR+kFy0KfsQoniZEE_ce#*awX0Ozw)Qf5T>QX)B=7kVTfIG zrnP~XmQgfVphIU(33IG2KE2obmxQ8=|C*P1KCiYu1z4RfWZL&{;!llPN9H?6G$RKI zxg?qhzp3%!s1=stfmrj{QUS~!rC=BPhmRX1dB9z2c0OaGFZT{HmXz@n5tAC~&V4SUI$Q&P$i(FeJcev~`jVkSXL#KqZ+64t=C8xmJ1F z@q%-La7@&`juDgnt7gdIz0iEF2g>C44v^{0MT{GJqrv2_4WLV`xshD-%9#3i_14Yj zt9MNhkTK=4h7q!ICf)6stDP)e6BaTJg}J*i*UthquG{RPR-R( z%?U%ZaARXle$6!+f|0A5VYZI03H1GEMvym}BkHULFj|)2{(Aoc;F?t%#MGL)Hs&H( zO9FbKnYsL?7|ld@1;M%&aNOBH#jX9DIt`ylt~H0Z8k{rQrXDt-*LyAW3Q!Do=FK7@|h8C{6wv43Rn2bg@xzo%R^)j2}wlHMNtl9h@H7Q zFZ^OvCvJ)oOL^!ZG(^3_h)mNl0beUO$v5DV8Z3MS4N;N^}znyB~iCa%1&OfAUaUqAxZ35Nod ze90S6cvC~X_?p9a()fiYU}?Hw4nJ4qc-E_9%4g4Tk6(RKs-NQ@-=bm7%6nQhM;rU2 zwlt&7Cj4?-?H|sGNT5N^zuPBv@fr-bPzLH^&1mpoF^9Lgs~JRcbB59I{Acb$^U6Jp z;kBli%ssiXuxQRVf8Vu|eGkDz(YYj+$(uI5E5>z|l^l9mMpFk7+VEBgrl~&>=2I-g z?pvxMoQ>ga3gULS7&hwG;a0DpzN_p1)yU2h~=7y%b(abW252B7us#$9jj@YoMmg$cJQ>I9Aohh#lDnOs zcjvQfutSlxovMhB_N)qzY-IJJpaU@RPd{@+r=26_!<|0drtkf^3gFzO*t;yzOqeJ3 z9K%-hU@D9K%E}--I>8t!ADpE;EKoSKl8TGN5^FsZR5$f{{^y)YMPFW~4}G3; z?#um4bOhYf>{3%J^X{4%V~lT>WSDI9EObzwYL<1$ny{3jSR023TS!{3FpM$0@CXz- zbHy&K2HoQ1nEJ~I=4H4U1PQGiJw({fg_n{*A2f(5V$_+3On$|_c#CNww-id>fnUJ z_i{j*Q~V2!%NOcuh^RrMcWrKt0uZqoEn|G!My-L6gig-fKaY zOU;ir9z_XU>83W1*iH_aZ!{Mr`^tY^3#2?l^Wu$+E@J9TZDV@EkDZdzX`j7+UdWB+ z;g#m{GI;v_O@1ftWXafS^#0G>)R_#7U;NBH(S1YQOBTk7h+0Op^s)1$=A0vG=B&0( zoDpMN8>W7f(xqpo!?-woHjQj8G^V)DjE<1ePvnI2lUy+|*HjvM!t%5BOR8XKJ{I*ZEG(;U&KS0!0sCrraOXvV-Rt zAm+YiYZ}T6Ubxub1P(VEy{@>uG((=L`GGU1oV-`j(=Kfi`Fr|gYfU`@f-Uben5B`N z8mNPBtHg3#S-o*O53Z5#$>f@Rq`73mkL|2SYG+{R=4Jp$Ev-Yn*W|lDBH@wE%p zH2a9f*@i~5wAuF%_^Bwe>*t)qTo9rxpz(Z@ax{_Q(!EZR9IK8VCw#r1Yv3b2@8+48 ze{a_`_?6Z$T~cR!^SQO_cM)byM!)!(bJ)H6Fn?<~$7-O5}H5nw`^7}*esGrjqy|NH4d-hWkHP4k-KVAzUfm}HV0b~>sP{A2# z!G`G){LEZ^v&ZEjm%hj_;#Ld;4!ah@AO4=^*WcDfpC7U|g7K?g={mr*Y#OV%ZfFF~ z0&LV}a3*C%T`zNk0p7#M9Nr-O394ZeQV&cq@deW2)o_3Vm>!h1(yIbX=NUpF`~~^2 zzaP!YZ|W`YrDl0Ac+sr3|eR3&Mw^$Z+S!N6PXoVXs(b8 zyyUR7Y6Edm=h_1j?~7<|Y-*ucCHcIaxvchbKUkPnHp_kd?&IT~_uiBZyFBSUK8G1a zXR5-TV0>e|XL5~q6;OtY=auk1Rl;V(mQ7slb!M@U<7~|;kzRp_M=zG>%jqE|MUamBsG=KdfDnsHn;nJjw}z7Nee`JLjv=H#k|P3NS?Gv?3PGoysFe=fsp;3RWm zX_oV|+CSHMTLiq`pV>d=&-mQBX^Lir3@_n(b3qB1MW*hbk2A*#_(_d-^ge+vC4Cc+ zb~SRh^*#Z^K3bk#3COzghNH?iueV{C)Q6WXYqZM2oxm&>cTJ!D!v#Wq_Ow1M`*Y6b zEiQGI!8cCmFP?Mol`PzA+LA|=B5$_9^{O8H(^$cZGI!S`J2K800|hG%@wlg99|;F{MkR} zE*BilS@5dGBy(cn|KE7d{r}+oIA!CLzTkZHs`iXp>*P~HYS|Y1Y2$M(U!tzP z=$QTRR=DTFKE-xMhcwR@&Kv-u)ac4FfjO0O_&F!1A#;a4l71p=bmvRyG!A3aB#}=| zGZC6qOuocm_iD0q7epab2zf^I&eZgBm=@;Asc*!@`0c~7%ny`9{T``*9)eLU< zrr&w-Z*!;6+_k``c9&O}yR~qD!)|#ubB9aX%+ca}qjmaC<0_QJW_j2?FZ=ho)Lgw# zdib20{my9CPe0>o+vgX&^*^|O0z*Z6qC4o7_dauc;Emrn-X44Nn6s$dp9G8(ukLhp zE6>uW!5DSZ%olH_>ds$q!-FEnpPo}CdGiqBLB>ODeW4!GUZaT#m_$ITa9?y?H?cDY zwZe>gfV&)F5X>(AN#$Ss7J>;8ocrNQ^zm;@=qS0 z{9Aur7#>VA@*0YLJZ7Zg=cVy%k7k#x{=r@Fg50>BZg|Ubmv{0_CIb7l^3ybvYH#p|(a>!U6mk2#@!0q&055vs066`O!3{z4xRdRLG&lBnG*3EG-)#asm*&YS zk{8i@@!kjl)Oq7tbsF>30<79ijWLd9#x(d?D6iq(#>+Ie;_q^cV)5PM#XmfSGJn=t z2D8rG2zubmy+#g+7?`IQm%M8l)5s)%d!J{~d;^ODa{uT*CP*9b%w^@tvz{4qcK(pmG3;>eav6N>RrNWUh*ZCVjC`d7un*4zBaUBu#X5*UJ0<(j*J2WxHcw# zRg9^;AmK))de^{->R36LtC12M!;Lq(!V3&Pm!(->jED9qnuk}R=e|j)^Mug6!~Oq( z=JQM-Qm$P@{a$_6XYnE z(paPR-@g{!(sV(iKGu6P+artX=wS{1cRkAmaF{u#;hFGRyE%aAKzdhO6B15NFzfN- z$yER3#Y{_hvcNcX4tFq4hYNg6z`7q;X>bo;Eu(GuHqC(5qPaUN6XyBca1!DOCjzJi zI-no(%c|y&eCVG%UVZY9YuEDQGP7z&0wh))!z$50qs7zvgtmGTaDQH(8A_o7ro6kj8A}60>6n!~>pAB&%rDdbbtJ)7p+XGX$j`CiXV%nSRO$=o8n<~?f>J@^5c z%5{Q;_H4~Y2{z{x&F}xr>AUAo-aS6~%14h6^31aatIP9*p>;B-HqX~ge(dPandhv` zDi~ZmmozsHy0%$|IlwExOx?(NE-w5cmqnOlQ%@1{;Xe2zvX9K>9FVkV4g$(9!+QeG z&-i$13nSO(*6a;V+!`t&zZfMPE(ptTCWNEMhJ-P(?-e~nKK1DJ;|IR*zm$ztSGmQ5 zk`=nHiAi|PSl(dld(QVpBjc>Ec%27N^`elPeO{k)%6msM)u9A#47A)<#x?TlS1mw| zW@@GB^E~G!!EkGSug=bu6y6IDWxRZTqTqdMHkVkvo@6_jn2*qH7?@q7`Sv-dxM%F& z1v_bEu4htG_Yx4aq`O82VX-D4~MboOkgO1KhT@aw6@B9PxtBk3{PmZ=NN>O3usJ@30EbY$c>M5o?#$83hfOWkx*>FN<)nziNs~n%NXfL)rr9b1dQh;shwF?Jl6#tQ zz)()~3jdb=Ro7pB?JKMoXpUQno9tOIAzU;}=kfDuzNm#sxC}REj1r|d6*n0NtchuX~)$6Ub? z%bJ{6Sg)@%Ez+Dz!WNgpUUn7n>SF|X990@dD3G+2E+iT!G>5FJ{YKZql8vDgNT|nL zVzd~16a}u=^o8f^PxNNlAvxHVf`MG_H821^Fq&iFLoYO^VW(m2m^|S9p)pX8b#btI zA~fdTS~*r2<1`C57+(68nBlqz;H(<*U}eJG?iqL&_3oBxDr zeg++Gy(x8W!K{Tmf~RQ&#uQiqVZ-YSqB0Cf_Qn8_@4jZZ)Fxpjnm!io6VXD<1le&)m_rYtu4y}Q!2KKUcdDfNqjY-g`>mauy<1UZm7W5sKZ zO3cPpv&Uo8Wcg*IowXoOyrz`TTT#@+1v5OdCRun3B90*~4>Qf?EZ{kbg{T7Sb$}=n zJv_+D8!r)?d(Pah`P?J&!V3%XW)xO@YB+dJu6?9pf^}XX!VT1RY_jB6IUV}jnYT4o z%s9a_Uh9OfnhBLJ+y-H3)4Yow%?dlYJ=Vp+>YMZFXAYds4;>f9l9fE?ne*v}&URzp zd-3PoGoKlgpJg(pNZfB0?pqq_UcSxE1QZNSdTuyenNTUfYB^`LIv^&Xdw*E|vAMZ+;e& z-|Jt*wsz{z2ao<0P&`b`u#XSl)2Ww~^6Y2k&f@_xf`8#uB-WNOxm*AW+ zuYrr-52*L~%KORp`tH>kF@~ zgb)d+OkL5!*+Fpp{n|$pT5@@$M2SIdMmxuRmlrLGEXur4X)t3aF-+#*o;-OKkn3XJ z&_wg(lLH#oF$xA&2gQ&(JlKpQZbgt+QP^7sU?jzg{ofGeM zno%)D$mcU8FjQ{ELyXP5hBwxrmEnv_G!Z%X>YF~E#S0?w;lAd|oYU+F{h*(wnG9Y4 zv3hyTIV6)NO+mNA2(t_0EL4VkzI@*294u-k*TwH+JgG5Vm3VUh%*hqC3^Ypp!;3+j zLwn~r=OCX0J+q&@(w{9BOKXAuyiZyOXdTF4k*h|;QMYPf*n?_1qHH5B_j|&-vQpW$ zG9=O);H2RmeWp)9G{;fRJE>r8mGjBzf!@O|1MImuxU-(FG zvJ<~X)$6&rE!z?-2pd`g$aRujlz#!eup|TRGCp+`R#N z@)quV6CuBoNW*{u6=hN(^6L--j+w{?7 z#tUpF*g;M`e7n1!Iww2sIwwm<7j?r$l6KzuCDJ`PhyPL<#T-IhL#@9D(0y3 z3NDgM|I`Jzb!M-4y17)vXY8wS>m1t8B|g$lTh=MM40B&Q44?)XCq8Em2Wrz^MkEgQ ze@;h+Kq5FKCDX(Uw_6v3(|N(AUfb8;DF$f?C6`^}*UYk7RR2YvfdvpV4GiY-w+LPb ztUiDPPH#Q3_nZqA-lYpJz1DX^%f0^AR_?5iK{&aFmpG}H{nb~0Oyl2>A-_`HpX3Kl z92)YawXKg8$6xgmPn%DkaHU4@;uA)lYb0N&vI=8C*bh!9zQcyYADTk}hvsVxn~Crl zP=9$7;s9%gmv}e@e?HBMDbMI*>IKM?A9D!be6!hmi#CfZHu4pTy-M~`1R-hTV56{}B5!jb>_%qjG2 z8s|HoV>&fsA%|NfAi^fcp?SmLSU8PY3v&mA7cR#P(0JAi5#F|r$JD#i&Z#w%M#gTj zi8$i`DH^@j5zT1INJlCY&gE+VhH&kliwgLRo%NFsjVmLQ zY1I@yjI1;D^K7sut)LpGwwZS5C8tpKIfiy?|t{Z=ex3)+tn33 ze8vEz?zX1SH@jvSk_}9hfY#58*9>e3W>Xqjx^{NX`60j3HqPBRR4$xnDX+-cI5kHI zEg$EL$OPy(m#)&{IUyZ$!KEXUO?SgskVvSUH$rSK6{{P+!f5l+d6G?2JvGd*kPL&?sG-ze@)ADy)?;HG8#mc`5NN%{k(`z)r<6b8hDNq%1kwF#A>g zhCI2Tz?r$?0WoiHQimL~+9AwYgE)7!Il86j|R@5Q;B9~&p_!(OY+h^1+N5XRo(<{-8kyR!@4;NWtlfPD{ z)+?8vb2+AX4aU&mG5x(1bF;(FciuKkR$ya$#WkaGA$a+;%q2gyRIyC`?44)eptf{$ z!?yi>?yyqm{4`r!OYaJ}fEY+SPtqJui)!Q9WgRiIpDnNObMdZm7M8-d<-@kcxwE|- zXW=+(Z(YeiLhY?{SALyZqMxOkj@jAmF+I0Q z<50he-av_G+$Jc_4x9C+@m|J0EUGWigEqzchGkhlc40}6s`=z_NT+`_Ql+DvQe$gV zVLX@cBUDZZ>TY#5v>XQ;H7;H=3R^~Po$DM(2*;}aficv^ASZFs$Svp~_jh}K0`--(f|)wzuH-)7w#}3jQhKY=4%RM-a-lFViI#rI659%zRT43`%|!^c(trARIK7GEWZfy%VNAhdxilz zD7o&MI99#OTi7Pu1yo)=L*;Jd9xf=^4;dR9fv`LlIxtkHW7q(f2Wva~k<7s}(11SZ zKQJ&PJ~J^pr#@IWsJ85>n`h&UkFzG9!o?t=5WEIw^@7I~z|#ulFuEg?7j?vevv$Jr z$awPF*glPO%`!j=BYph#OP6Q*4k_|nxxl02Oy6iosLkc`+~e#=vTP4${ms4{Gt;-n z%*@XUA>Z*%yn+Q<1r~OzR%TB!D;ftYYs2w`5}Vo=K#qBtu}ifp9j@hzan)ABJ9BC@ z_yfC!1y@SuI^)Bo-><&~K$~O6F=o#itR83bj3h%YvXZn(va@CjXPQzqoa}{!0?WEt zR2y_v4I!qgG@H~EnDAP(bg)-eiIv9M_UzN4dXF=IJ;Sa_A5nFQQRB7OIgERJ3<*dd zcGDVHwrNA9XV-6z-Qu=HnZrIGWUX}At|+$!ka?$}&!Os~b9CuHh{544x&YOU7GA)m z`i9mFvg2dBB7Y-m1}@z?N9@IGhBBqK#bYjBJ|;Zr+Nz-oXVwUP>+=9#UdQ?~KOuWP ztl+sqx7M#b-F)cosrZ#lMe1L!CKx^N}QAZ4gs>t2qY z97|Rfh16*wWtmaIZmM#~XcCHKS|$YZuC*-Z-m(}e2q_%ompWc=^m~n7oE?s zW@v44QpH~$Nu=c>F`NtQ8fUZ3IVQPj_@v~USm(Mq-?Gu;+;Va0b6W^4=Da*+XP%A= zlmACdPi|9Rc*3J>Fn2!O%j694Y+7fNzS=yGwMu`vIhXy$OPtHda2FjXiJVyjQhB7I z4cA-LHHt`WSgNjWKW*B12~)%}TV%a!H)HVd=}?F&LCI`Z{%Mtxe5X@x^rsn_ECWRa zL=;wLqlxn35!5t5?xKnZv$t{hloJdkb^TUuWK3BYj%vYcp|FY&V_0T)Sa2+_+*w@GHE*TjZx z?}{~>HpkqIPF&<;e|fs70SX14uA3iLeLA;jXZ&np&0pGOIa4w@+7;v2DmbZ7CP;7Gb~sJU2!?K>F257vo|k@;QF#GdMUDufDQA&L138 z4q*%e1v`yHJJ?G6tDedP>)MlB!YU#h(gY8_ThwapE>G67094bgfp_Mp3W=q-pOj-@_dNS-C^%Cox zs&`1 z2NzuXrHPfe7&vF0L5;IL+op&tKxw+Zz0B~QnLQH|`dPvydMaylXti!20-m^7_t3~c zr3>yB8|0moW2aheT>9s0v+LpF-`~QbwL$MI65C%JESw7@PSVAkdpP#$11kR}X}D^` z+19GGb*_1v75e$X*!!$z%Xyw;Gm}KZ&_~+xm%hA1(*C zCU$3UwaKZLd*{b|s!#GyXtqXE8-y(M-D`#fd2E-i8I&EKAm%o4QUz{eXPc2#gu=z4 zY3ti-Q)widCN$eL?2&7ZCfERr1~Q{MNKa|W~t-v(IDNZZf~Vq5-kZsh%NPyU)1XJ8nKx+db;nE6 z>$ZO|_N>|z=gz+rU*G@vIHxmc(wJ;raW3*M9YIC54;R48axPo$sN_M5_2oH}i2hs< ztykP5g_e}DM9CkyE5jaV2^}*Pi*o_yr8y^DhUjtb4>hlw4fyh?1@F@4(8+@Fkz?{J zoNms+tVSsv%sFK#aDNPOi8*Jvka^9kzB-&EwpeOFy!0h4egeQz#DSv9J~^|eQKbO` zB)N0iua~eLW_V<{%zUq%(4I#G!zcr)UO8$ax68hWV488$*LURF#IQ1R>5dp%!on#} zbxm>l;<^f)`bWLlWz7PoBYiL|%Bkx3yBmeT_@RJW%E3=`Yh0y9MSS|~TAKT1wo7;8 zYSYU|<55@NcH1HWv-b;}YQVKvX@;zrTZ!>&&pG=6Y9Ot5{NRh`|D4A}Al}0s zY;7y3d9^|4nF;7}$De$OAzSwWL$Fl1zg)d>j2v7vk~$vs&O96TLB_-fR~OCmXJdT) zj(F3SyY%~k7vlMYUx=5^?3YTvgywhp+RBhTs%yq;8XA>l(}OFO{&fyYndcD|4>#E40SheoFGdk||+xMP`ln?uK$} zM$oZTdn>9TY39Oo%jmV|TpdOoPD_CUkelqX0%V}xHWe+r_kH}5d0srA>(5p8UKT)f zibP7(%)GQ+cuy;ob$lir`H-)&GJ@MOL)FLG_3~}mw>=wiaNG_X=Z2an_HlezNuU26 z!(EVlq7)WZ38RV}`+a4b0-$96Hcz3b2rAw~#4%4@E3Y2s~}yPmi}9v8fAsY?$vBr9-cWbEQkR7q4@rQ$KpSP<$ogb>)JAgD-#N zj=gu)Fph-IF($&LiMmR;sMX5`GMl*4b0FW9bz5APvw{r7dBw>5N?940?t^k3qIGiLFZ*+0a}1 zq&$}-D~^Gyr10x`6fP?6sPl?1aEI|$mH=XgDyumWIri`~xE-4ZLfH$)P8g{afBSU$ zY~e@^a~DO zO}^*_VGcD)q*dS~KFJ}oo7UVpIURFL?u+-{@q@8-d_1Nu9Eo#BzZzdXcP7RLM}*4- zRl^lt;j-f(L{tAgJkDtuUCbFCHa8A)fU=k~-6W%Ft6IfL&Zz^yvE`q6mK+1xmD7c| zoihE*L+?(>wucLbg1d9XHCV@)c1D#4IySaxO*LL~&hY{$+!hdsZ)DDaO+5U;(Lbtg zLZq-D#>uhK zRbE`H4Yb<$sR~fbMWPW`HS8ef<*M}tp>$5LYck0=w!h4r1EO(h<`z{PP*blsg$-Us zv$o@Gl75hu2g^*)JV7v!Hc)iC_03L5^uPLIV+_gBH?z(OPNh3)9lJOS`_k)N^5Rv8 zTSbGqP(FQONxbEz55#+KzQ=eQhnB>P5C7|!AH7A``j*Y&3H-u!uB{o_N1S=bFO#Nz z;b0ya6BuJ)C}g)vW(6CKhcy)wOZynN%@WCK!Swu<&863TkW}D6mfUQd3s>p|>zr}P zUE_S|@he!r4tu`H-ju6faPG}HVGtW3MMTn;Mvi^!8FKg68>yMktuE|l=dNH$r_j63 z4x4O~$u^g<_nYu20Yp%)d4!f9a_Q}hNwc+s1THed7Z~vH(T27K=n$!(YMd8K%~b|% z4BZ7|fh`Vg5F89JkPKM3G>EYzaIGosfW$7uFF zCYcPONDpkDoSAfSl9rU@r?_McAQAvraV!x1q;_i%(`_*9S^1C zU5MgMoThhByh>+ZyCJle7`PCr)m(?G6ba>TukATt;3T<&5Nd|tBxQsNnfnYtpbSUN z0jMk}3<{nqKx3{yr=X3Dgotfro3d{*?OhOe;b`;=guwuS%?{qewS_j8N$+-|sV-y5 z@@_@L#)3ae>oe8L5nkZwk%W%3ZLtOqDSy3UQEL*9y8DiO#e*+$HaM694aqx2pBP&e zt6VEP`*~xf``!9u;_?un!{YB)ve)N1d2EWZL|=+yxs04K?bE*D*4}*p1ApO`_;Q?4 z_xKX2aqiOqV>oS^*wxH8Ugm~((<4;LJW-Q^ZlZ6bXe?@H-+PSGzniT%yYz5r_H$0X z0}--?P;l3gsY2KmMcy|2M(3PCm~$;gVHbn!T5BxW`xU2S;4H$a2>Rp-duWv(dpP$O zx7jo!Ra?*630jvY4NRITm#Vap>tPm%2RfseP7}B20Lms8F72rl_N8%qu{=3sZb;l5 zCK=~kl?1&F=u97HHR0Uf-DcLPHN>9P;yeRV83L%lz@f^<#|?EA%d(o=1p(7JeZ{PB zojz~UxQ4XTcd(jw!STd*Rp&l1@x1)pR`V^LPY@nU|&GOtT58cJ+!6Y#+z0S}0=&Apk}$ zm*R|~hf8BIXYlmr@dMKyY%Feb5;2xG07G%zwmq2Sokq$X6OI_w-0)2Ui`cX=0kdIe zec`ru{N-Fw4Bh<+wb)(l&uw5fg*A1p9BgUmicY{BWrO=Bq7unW^=xS7|Z;dnjQY?Sf`QPQD zF$O#9w(f~5W&+s62HwbtTu^Uq?QMj@Q5WK-$lD5+zA|^n1)K$-w&i$GDa>plXt_|G z|F|G_!I$G%0?!@k(Nzv|#8Bm0WN2;jxM~Qwzj)g_PVjR`;hH`qEi59`Z9|2t;gokh zD?K*psB1M$kas#&^glhtT$R^cGw350xTTZak?}=BQl#4LOaN6!?Zqs=jM@??vxGqm zB%PL}gxEXTG(2#+tI>fFz+&$$Ch<*%zvFYE3S8qzCy0^snC5RkIz zS@m!oL>m?2nr{!+;^F{Kwq*uqa1p5ArtB8N%!i|?*$$|*Mw&d>QDX|F6aoI~hk-jw zg0%m(&I^SCkfeugwef&}NiH7P$X>ya6VFBQ$QpOx^wZk<%tB6R-eI+`jPUo^R=5rq z9UyEj;*1q?{%15ed!)0O%1oRw5a&H3V&Y6uDnW=Zqcz5UZ+PK}f6`D#uXvJTKCg9A~D>q~}yI@a-RWJbK_pk>1mz|n;c35gP7MJ9l9bCZKE`>uKESIVnyXCo5 z$(OsiCBUmXVG&LBD`z~IjcMj1AKI3Y-E8c!0R&4QkMahAjiE8OsikS>ZR%Us+;8(u zTw)|la_F^%ciB0|d^WvwCU94%Cx`wWD+^L<*f1};*lM@Hl93NeTQhP@kx1#hp-e0w z_-kTIue4^!o^^#D&$e6Yg~N+8W5YkcS3sN!!2VL4Q-%j1urG47U92%RYF#c${JJ=I zft!;_b?``$c%@Mz$6HJmb52F|V-aVgHQb5=mgF60+epHo6n4&K>>S-Z@TpL$U|X}? zb%QuhM6(0-hAhsOtB%moF{4f#u!+TqRFc51VWp4sHF50K;@Vsi>+s+&eS5g7l|2y_ zmWm@`W>5Y&3NMkGb)*S6=5ZCI{)%U9{s~7{tx4DFy*@vmkyKhkmGFMoA1+ z5G>%F7MVwb%Ak$9sxH~5)?$w&sb(AkKnGbCn`DH{B5(2tD3QC7`9Yax z6?3%F@|W5E^YTzWx)o?d31bM)57q>G4{ znMTH{Vt1TVpSaC9W!?BSkfdrnR}GwaR5K6qRbR7f68V z88IWv)=L8MRP#aHk|0U;z>#5`oE@g(JA$Fg+DZvjiU)BMCu`iH&VLw`$`zc_9|~Q9 zO6C_6>`{TBj?Ocwh1ZrfaLe4-aCVV6?;H^`Wwr&&F2X{kfBK%u$}??Fqad@efaQE> zOUW&v;e-dE72UYlNNUcK+rJ+Z1W5L<+*F%fz^!SLA=dEXfJQ@HB1lVz{4ihfFi_gq z*kH1}2)EZG#)yN#tS-m7;h39{39CYSeeqCvZVJXP4SGGvTFNocKGEin_~gpfY{OYH zhjJau3M>mXy79DQ*N1-WvoTWX!Sbk~FfzmeS*#ZL7e+k%lYi zKulr7M&`QhF_t8Es$om%1bw+kX~saGxZr22w?*JgYVZD{k|eX+&{0Y%z;>KCdfB49 zBxjsdyzOk8r1~m(%QG7COdruU)+Cgiasi)llx+_Xab;)wv`(*5BT~U9$1nRuUK(GU z7*~dB{H?BY?pTdMadr>P2Trg`GCj^}LyV#wFVplFscnRrIZIsIdDC*!CnpZcu6$<1 zM7Nj_#>OXcIVsG!O`H6|1t9;=aESWbDYcznrwExQm?_3(I1^l!y%QNX&DoE=%1@pa z8qfV;O(QGv)CF%oz9u_9)MKf3+PfF(BrCQ{?J6C%NtUWg=jXEbW4PBa>cY`x&>@C0|gmsBx8#<6F`;jWK{(8aA!uL!|{2 zWAVvW`nV6$JCb!NPe#qA(9|UVz-69$K|pn1`_XNWJngNjUMD-YC>QoEALC9=^iXOC zN{*^}^6=1o`lg;{v(C(Ram%|Kzk@!@XyIl# zj`~|L=cIEFox#qw9}K)az7prM>zte%3rI@MU4&3@5!m8&&g7)@c?J~A5HDDnSvQA~ z7M}9mTQl&ICH+*@eh_b^WUUFOT$@?9a~@k)oEP_lcAgtG1i-ZhRlJlcs=p~$#v+pE zpk?2f7t!x*Lr>Yf=0N9C(HQDXX z$5l6kHu=3B3D{)bH<-o`5Y7p zIf+28>$^+}rnc0^-t0B~W#@_4w2+sxuj(7;Hej-^a0zAvgjDeH)>1Db)Nqi$@rn~N zPB*e}0s((5A<`QQyu2<`g`X{`+|U_)p-0jOjL$6b0x+v@XS|>v3(<$(CFW7Ge4LE7 z1mIF~fK_RN+IvS{6-$`TCVPENfBS8={*EhZ&t^_vsN|$1>=OMHi}9iAJn~a4voSq; zKBm;Ep(V@pr*Fa3&$Z+S+6UDK25Ck%=jeexcQ7WKVJ&pio=f=_x=6M>D<=cuKzHWU z@2UAId1 zl4>Y^OLLCQl26aM;>?bs$(pw+*i*D6U=^whjuW-vWPY|&BOMXa1vhyiY$x2=FDVKa zbDuhwtrga3gIU9sofj;%ySXoe)Z2)VD#&^ZRpY=|P}=&`;VCMz zxT^GV?s)WbmXW=UTO2)zS+6Jt>hM&7Gad7^a-8f>&x_Lm9{?DpJ$B?-@-}*&d+CHW znG4iIPfKyIwTXjvEn6dRbn(ftPMqZ4>%nWTb42k#7_pcDE-Z64bqTU8$a95opPUeK zv5>PF8H*E#hM^}e=v%FGhH)PmJAK`M>yHdNJbSYqvgS=|y||z?A_?@bEB>;h;+4@B zG=!pm;42>S{qs@Iv$%7N`CZYzT&U{1-y%iNc>PKC`0~eE$#H_O+N{@e)B0^o{hqU= z!&;XHk+J5PP_47r%<=OrgZe41<@s7fR-6Y%vORn~DHP1_{CKUDpLh-oEREs8QOC~D zCB=zSuxE(yQJbo3zb?QR)?}-A5=@-SN~)yPoypImi0on}Q;M z_2N0_aD?LJfIip?fiN3QwXn0c$%G4@xnb*8}1C<=Go{YAOP^bzRY>L-UDuwNeY#i6P&6h^2=pZU8VNW@0IoQqBBEN_V}JB9~Y&+yUj{Azu)k8o!6 z(=9XV!+;+DT{^^1_vy>&WaqRABSSdLj=?1i8RRElIM2gyi9RAWJjhShVW*rz3nNdc zS42WMjbUj6wIEI^LmqbzJx=rrz(e|Qs&bFyrz=b&n7krGQ ztqHkdTIT5{+^AF(btt`h4%Ga5W~+Xv)~DtzT?PcOSDY7`$-`c*wiqezM>ZmT2Tyx& z{Z1!s3WIC(mJ(dfG5XUUIs^$|7OK{4*TVre#MV6ZcV_yaoR-RON(VnS?Xv^3ac=66xzDLj zV?%57`)&vHYo;q>+xQK!Tn~GnJpWuAIsalTAK4Y7x;UOy|ISXmqBl9W#Ky5}W4X>J zkDYxoj$Sw$tCnun@}|f&Z<2#0!riZL-JOZG%WjU%%k*{NTHH=gycDmVe>z5ocg3hMtQHI%a2MnYuEm^N>|BHoQV7OYMO&<{>cpp4{0J zI=1yy|N1wt6O7TJRX%|k(8cDQeg@#o)B&w++hX&IJvz=ugf|_h&OfVlWxtMn{j>|~ zppO0aaSw;@bj6DHeK0eR}p}OiWMc^D0_@wD$26 z1e~(zrbwJU4T1oC&o;fLE&z{?n0{A)lPvU8Y;6ky_` zBU%^JEsQ$DtaZ*QXKR+8_n7zOI3)MZO2)YkIXN~h`;aTx&Pf^`ibf0^Y-?ArZh1Tls$bvc z4l)WO$$wug^#D>?77jwpHXkJSTH@GAAggS14f5Oo7lMe>pzVAdX3q&~r7$x_8*3?4 z1w?uiM?%RM)C!iW8#b2|RO}FD3(Jg?vexX$sTn!lI&)hvpF7lMAP0(g+cyWNpT03X z7P9coMg3gK#N<(3m8{VD)CK)i(>fiqx|t5TKzw73x{mG1nFG40(xsW!vVp;MTGw>G zr-IFtzJ2!0^l|-m==HH_d{->h`PQt~!6Q0PIx%xW$Ng60`b`2T`kzO`819O2a&4AY zYu&lYgNiF0okJ}hS{F-o5!drz6`t36cZf?y)pa4cWL=EvLXzH3&z=%reY>wNT$e0a z6QlYihhx)+W7V?TV%xIy>g(}1bowEAt&8!IHS*6soSQuztC!y%TgKLE-8vlm&U{^c z-5M)~#)R8$Zb6hzz?1XjLveQIOsp8aN#}nZUyA)P}nrrR^^DU)C0)5GH zmwog4ud1zk8)A4~G=-19gz8yUfM%m6KKxIAEK7-hzqG{Ur+d5>bBeh)zZ4m!8?07o z9bqqf2Up#{)8;nL0P%-H>Ed9esp1nfy(sFkDFwzY(AwG0cU*KwL^AiI64?RajXm># zQux`>)&X&*-lVGNXyuNkC4j%eK{NAI#8AD5T04Wjn)d?sz=&^5^0& zU;KDX>cAdVp6jEWV$%`;ZZoBx;CxoT~kJNHt2=7E0~FHcX$QsL$! z!80*2Galb_&;J-Vtlt_lQ%B-2ANr+u?DQcmNK50~^osbddwx1@+PFQYPCXvK`PaV? zyLbNmc-yt#7OO^ihf{aDbeHSs(XYqn9{aU;@!ZS$(fO<6jW_;m+`IF7o$QVH9f6tY z^Rf5fU&Uvh{10(zP79*O$anXYlleLIZDt~F*!g$kjl1uOHOp4$w?_3N$eL$UGm~-l z+=2M&Qy-159(hEI{1(aeTdFFISItC?qsG!>l+(fbwDOkpWQKASdt-}K3$pSNbGp#> zTxweB{zm7VLL~`Jaq-|n2hNiD?juYI-43|2wXAf^eclzCADk&MC-HKUZ8N7299rPI zsDVlA6|y|3NJ*2k#|2w+D1moL60LDM&Qdax9eUaINu=w?#T3N!NRF~DncbVRY|1kG z)8~u8cMZ)!#$JzPO>mmUCH-k<82G{7I|3*wLVZC`JmX5zQzVG&b5m&F>tc$j#z6j(3aeDefoH>6W9(wj; z@!+cu#Ng0YtvC5@g&8`3J${TTFOFxmzTLIwAI4j+y-U5l5RX0miMap8Pirk+FP_{4 zToMygr()06AC7n5@*OdzpUHaZmHXqLY&? z@4oft;`VJ?lZUx6H?Nb%iFjq-U&g1N{Ove9cQ!_ry(vC$$IryI>(z&$rJ6JP?c~W* z@%ZzK{n8)m0(P6Caw3&{c~@g{dS5JC@$K=!JAWqjtlgxG>s%}6w4Pp=IvcO-|6<(# z^smO*flWFo_2sbgdAW72@*w;SK{oi;E1vbvnWVxQ^gKW>53h5omH*$=obz-siz}>i z{Y3lg9X*|Q@FjV44vy@V6HI-a&?Q8De|hvsPz4>nEFsB@wi+nFV+XJey-9ghuei<$ z%Ww^^Z>`F4ui%ceFieF&Q++4R=AqFa4202}N*uo(q4zU=)v(SqBK zslby;TJvzjc2HLGcWP`aDSPZG7_q7TX8w>>F<%>%EpoLlH|P2R2r9eFmP=q;lmwj{ z<_&8eM^Mceg=cmoF56y&>PLb&taGH_0-o2oTP(jPK6vYo##Q6X^s^<0wH(2o^~J7@p~X{zu}+8TXx+X!}|U7$DaEC;!h8JEk*{%b#Ztowr>7Ne0a~> zWApfGtvC9DARUifU{2~h>F9~4;!9eKo;$0HQr+awqzPF6dj<9gxQ#axr)E~i_uTc< zapR`#F*|iMKL61F8xNm&QRhoz>YOi^^=8IQy!qyT8u#qFF^1;O#e-k}?fBB62b7g1 zv330i%0T9}hkK(fI6vQ}IJ@{NKDTEv=tqxp3ilJofA-;&U&3Mss62Hmv_} zeB`G0#MTw7^hO15Qq08Jv-{((pZvA>%Hd~p?x#0hc(Toz&UI@-dD*t5~?nvbX@wKoGQt$1I$cy5$m+Yv`Zy%tG!+4H%+FnyCQ<1E7EICKZ(!@Ol~;R8g% z{!|3I?0vSMcDfE*mnD(~ihlz>d%s^*RBXN8C(xerj z2sk9$Vc2{TQ|C{o88g!{dH!U6frCxzMa}VKLXkYf*+2p@t)AxN2xYU#r^U$CFcH|2 zt5#aV(pJ(ALp&6Yh~%Yv*UuD+hrvMV<1BDqTvsg9y&qkGnx}(g(DHPgBqE7bU0_8M zh7vx@5B3gkh^sd4AV_Q&8;!?b_?>uoVqPaT;w0BWVV~2xjaRLId)&L@Izz1)oQxGZ zk-9K>EY^>|CEoXj|0-_XxGBRJseiLAc5c2Y_H4KzKK{`E8OP^0=^aV*dEnU+()7VI zNDsg2Zr1KCH^%xAosO*>j}1#l;<>4b(5aohxZ^dYuiU<7%T4;p6)jM)F*c2i$HQ~4 z=+3_GN-fzC*C^(el`BHGuXJ(xFXGx=cc@Q})@|0W+NwKttKv7l@;h<&?f)>|v~%}G zeb}&eXRH|=i{E_U=M_^Ys$6jD9g@k}(RlaW|0>>g%`LjS*Fkobjcazq&P_MOmaqMC zeCmZy$FT1H^C({HY6faE-ctKgb0J4=Xj9|YbYxDK^f7til9Q04lle*(IzG8c9)6FW%=vO%HKf7BeVn<^_ zPoJz9*%dczyH3CVsdLQ1H^tvs`KGvS$FYPia4UI^z zcb&@v4i?-L9E|D7b9$N1J|k;48IyDGn8qWyx7dcLHKShxm+X7n8y7c+ZMHtz4Cd$( z=b>AAHEiCu&T&rAm9Cn(G!c}tX~$JFF=7kCNEkS0ce+$8HC~%D)>Xi(0Oa1>8g&Km zn*%b*KIvJfsdKSpf;o~;3M5K72q?!-kn|f|b4)95ZK@49@S2{%-LyfZ5O!WqpY#&RBG$pw+nM4v2o2+v1JvHg6@bn z9D6jL)KApS#x>ICh0Q>mi}OQw#l5@li=As$5g?B4U8koZ&g#N-Fz&hOU+SlxzCBhB zU*cp(wp;W&oY!o*E&lX@e-nTC>Jz%~{zqSU|YsF#r(n3F*(0F)~&i$H_URqym|NgV$b#4 z;+l0E7Y1FqF}7~lrZ)^`){Pu>}@%Zle_+!5iGkODNKo_kZA8l)vWV1~?y1!uj z5cG{7Esjfl9Ab9nyw3AZipvG(ZJ}$9_utH%OHQwUoh!=yb54{8hlX_HRgWLXsOB(z zVzk?s({4p|b;c<{)K%P&4xe7y-0v1EJB+(68fvzCP`X-3QSQ>L89BHCw86j&Vc8=$ z`DTE;JS{If@92oSC=C9%OE7Wad>q;Lm=2!0W5fa`Gc#y=e1Jz-6<0ehW#4C)rfkv4 zzrzJUa{jBD$gRQhL4h9&Nrr3w2+-%&5b56$mP~8J5?#VC+jB;SI(WL=2v7cwE}nR^ zOG(D`;++=u8_}a#FYo(o?7#7LJ&vF|-J`4Gh8^#WFF*EaUDU3V6OV0i;yNDJY`@i> z$POHTJf1xLa*VC~aJ>J%|2A%2pNkX=$)Uqf#Vf}T>0)+eT%{AQ^~;wl)?n<}^WJ#> z^x62eum0PZ8(~38jxYd#K!3k;on(kJCw)A2F{yV9Vq}HhHPnSl^@G0T-56&~FEp~z zqRfTYRLuqFPgv9Pqs$F#h&y)YLNqmTD4sp|VvMi7F?OzA?Od{_UY-pNEhccN_(@BJv6Ap zq|1hG?dJY*AA#d~Tew&YIP>QK=_k0^nZX!ec{Wyz^Ev6%WfqbH+ujLt<^x%W z3}<2ujKq?e{qgK8Uy5(r^&zbs5o^}%irwqq8V3&R-Af(YtUog|$79v_eX*l1IQ1Y^ zJahQTIB?#LLb!TMnaw@>H=Et zF6z_i!eu?sMd{3pPM8K``S`VQ`%1gUsguvfi^osJ_AR%>`ei&SHxSod`@Z-ucP-Il zXk0kX#i3Upk5{#nUcK$+STQJqI@!7B`VYj@2mUl3Ij4(s-Pxa+ekGQ#{YZSj`o4X6 z@|rliFCO3fb*+cfv3AW3ar5@;baEH5ZO2>Vd#8Rfe)&s3AM?wuQU~~WfqLq`=NMB( z#$-ZH9EVKE{sa); zY^w_KY}%s9?JqmVbV_&GRxVebnYUQAZZ+=gd3&zAFtu53a8W*cA<{YXNF7*dRW(2M z&IKa8G8d^&lrGP9?~v6k3Ea2zgfIQ;vv8b>)WzxP9W6N-+f|t-ZWk9ZP7-^Et!%u8 zHL%*#x0d(xPepDsh#BhQ{)Ap%bvw9TZ7LduHUmf1u8$d;iI>BPQNB*8k};(~M|@jT zSGD6&Sm0U;SL=KJ?w7S`<-UL@yVsg?ys0oXJro-^?~k=>*UHvJikAZ>Djch6Ue$I_ zo_d>_+!t4E|KV7#cK|7K zdeY<3qtEHl)+2G>&HqwQM7&*>5m_#rKN2sz`c#~pnu+zR_QX|MCzp!IvaxOPojM;p z`MH0hb>pno4Q@C!hVoU_Ep5ovpg2x(o~Ob`s%G?hmH8!y`NvKE-nytKNwhAe6;I6R zJ49qRFgq99w%iGf%5?14dC{@yk+?={F&~o(oxi^MuAhp#V_c8fN}x6S1zi(NF5RdL zW!<>bN%iout?~AoJ{Zq@@t?=3`EfmwH>}5JpVN8k&&2oM`Sw_0;&XaB?&)~?(DS+h zI1}KtrT_py07*naR2Vz9+!fbs&`m*o%;DBsKBA9S?2V5-^Es`n8+_i(7~_^VATkpd zzfRdA`(5MbzH`wXt71Y=;T_ti&!!IR4GWT{-lHdze|zhkBDlXf25p@qZd(yL4sce( zz0*A9XTZ)}&_%cAMB2c$JjsV}X|=z+jhy|$(uICjE*cRI0XTWby5tH`Q$a4QuRVx< zyf)Q|n@4ERp`8#`Uen02TawF9K>&2D5`jWH4`yQX0zMOauG$$tv3*-7Pfflz3PvIm zq<{*?tu#nQ)Ax74btx(vblyB9@?-$C`89YOsDXSzox$kurwj@g!^BP}`o;qN)V`-R zv0sv(E)M@14L^JaEjJ@QFC2&ncarcw7h3tFdi2ch8sU9e}%H+wiZ(X}x>M z)Ah4@q+#jk+vA3HT!bo=9w~i!-=D_e`OWd&yFQQ?oWh;gyQU93`s?wT=RO(7ClBl0 zSlx+QabJA*JwF+DY}xAWUc37(ap%i_9A7;4N{sPyb(MqM)wntcuff@yeCRUkwyQ}+ ze%eVHw)BVuV3~O7lP@NNaqRGe@kbB+YCLiLkr-X^j`-jk{(juPiN#?^Cj~6DbMf*^ z_s4&F_?P3AiKDT0;&-xVug{BleV&BTh8-xqJa`qsMOoQx-) z{QdaoBfqN0MUE-d+{RYkab@7Hh?}@J;`#D`0kJ|@+=Bur{DFMB2 zjKScv&izQ^YN=s|*%;F28ouWp@6d&uE{rw)*>7zdh&)^j(i++~y%&JX&$*1=W=c6V zU*H-pvdh&8CtY_;!(A^FBcr3bkjO`E?J6Tj>cgVy_ectxcJHJ?)*An|m{;e0$Pglr zzv6|X3qDj*;Mu0O(}~RU3Y|3Ar2>cSpHz9&*rF3=-{hc5X0t}No2NJ$FnI~rmKlm@ z4%Kn)0=fdTDh<7BLdY>&zp%LP?mOe&J8#e2fi3gSQ-&Gc!UQTFZnR)YH%0CmfmDGz zc}HWvGHibK(5A#`SVG&=*YdZxaEoPg%uF^=UdZ&osV+F4-1naZnSH{RekWeD1vKU6 zN(&pw@PpQvF3O%i_Cy>w@m+eCPsg?%eZOwqt$GypA*}@~b$rgn8J)yjz3R@`xia6) zn>_Psy!`4P#+jk_>hah2_<|Fxsq_2da}WGtd`XYdo|`_cW0I#vJ`nGJ!w<)f6}s7` z&y(MK{ddJfhrSfYd=XiMw9De8h#9Ae=kS{UQp`KaC7ne z^Ph}AeC&7PpiYK1Zv3(M;ro6hwvO@G^_WhK@X+IG5C2|#_PLM6VO==hviqmvLvQ#% ztkU8$IJPye-Tbb2y@&*ijdpXHPs9AN%sZi?1E~s>03cb4|PB ztvCI5@xI&M;uFwa+uj^+SpTv3;;G44shs)ztF+hUZ*MFc=LF*@Air%9gp9Ye5F?e+G+Q4Cx&Jf8i1^ z<=VeQ7+e?y2Z&2s=R6w`g?SI}oLbbYp}j{UUDCWD97_^R3$i$; zAa8QX%23Eu=#&EsRf@JYJFZOZX_I#R6F84c+!^DhAtqY*u}`~%ZxXb8#EQo}-~X<+ z*(SYIEq^ofCS@j}szLkZh}1Uc>U1}L5NL@=G9Y9D!}@ABz54R4&AB-pPor_{^rNx& z^sne#NbgAc@~Yx^*N&6Sh{vMxN$f1-R5$E~PsAe!pN==}zAaXd48$_sl)8EKj`-}6 zmvwQqLfBJrc7A8PdHr>TD=KM_FeKSG1 zZ;uz-%K1(_+3G*%Nv*$gT7$p(_;1Ijp8aEe|H!$x<=X!#K78jpbm6I6bNa~GxE!bS z-6MbYz^}v?_y0wlpIaZ_apzCRyKlHtkHto;-FQn}z4EsB%JKbr!b4v@H2n5>$8~S4 z3(k3c#Nu=DTMzu-T2Eim<@{`nJ^PM$|K0x}-h9^e0ZTx7e$CA@;_f~oyK%Sg_DQ?>HcjBG*yjd6Ix;Xd3QU2giTA0@}=al4J zGs>y?g42(;sE%0+?TQZ;oM2wpQ!?_+5fjp^({~H-=(c-B|H0r-n-(^wsio5Nl`_VQ zd9iq%OElz#q@878TZBMsZmBaW_>DMwDXp)>(SV$xP`FOJire%cJAMMN;q9@^XP{cZVPj4RVL%;a}*kXKoZ+lj%G z(lIosdfuORAt@~qwN~64H(j%pb*;&n$$-AuYvz@B;oyT>kaqY^)}{^m;)&Jw#@CJ? zi_xX4bh7tKTyyoe#cEwBP$u*xIbS>Yu)Z+pjdAN$w^>HmmtOpA{N5w~D2A55KUR(C zAXMLupZ;ik{K1v6{+<6#Y+t7P4okP_5wP!wuO0rUI%K~yeYI_@q1IBE<6p|+O#d0< zY|5)SHYA+%A8}Lh#TqAc!THg@`XA!yiDj{FWLKOz@mul5XK#yZHhtLdcH{-;XX4kt z_>be1z8quK$i~=v;-j*8W9+)~4Mtx&xGGi-PQ<~f!FcYT-R7^4nO>ZXM_Z-S zxnWg)OPq30kgfMDE*?3Ds5)+~bh(gDzIGRWd(lDCc{RO#4JfsQih-Zk0K}aGhRrUk z#!VNLS#XwJ%XFr|LhIe9f=O(RhT8d}qrG+goIy)Y5KE+-=^4=BT+QhX0RG4UX6FV# zu}tr(7(?}MWSw&W=eMvdAcoooL;$FEZQ!zD^_Az`V%)_z-~&%)6~yN0!$s$yo>QAnJrJIDaiZ`slxnrOWTs=T=X} zmtOe&xM|znaohuUNbk6=7}uk3JT|U>SDteP*>(<{vCX5XTs-G+C<2~1jZB}fc{Vxb(pla75VaB0 z$z*+z0orbz>-wO+q=LY`QsEMod63xsTVkde+qRCVE+b2{v77NN&Zx*S67ROox!I!Q zY&@eR2IB+{*eOnHWD>S@j=*i5tBUOyFWjuRq=DcdK_!G=v8}TNNd{Q&N%w&r{loccj=;2Ul67*H@t4wo8!}ZLSsPZ zc(eL)pygw?=;J`w8Y}df@)wUj9xtET7jM4z?XhVkH_-G3p}w5))B2dvgC`HhdR<(K zojxveHooxKKZ(_=cEx+IyTPnBZ+%l-zx;RO`57L|$Fq%D_S;Ry&YH%&($qD%V38l= z*H^OTq|#AC@x^YTFBJO9!@n56`}FVX%OUw*j`?`t>0gT5^nE3FtkY8_vYm$i7ykG7 z+<`CYrrY&8_j@7!`0-E1ZCkI8?ds#aZpMudF4IlUIXzZ;IBvN5@9MGMeCK!a?6dKS zul`)TbbdBAj9#Y`FkKW*{I<^XHpR~M|GjQ9j>O8f+w`dL?K+=+Uf*q^b;=iAN!}SS z`O1ZRFI_dWU)p-yv{&Nh4z3bEC z)_0uv9oja3(in>@wxe3awd>ZocAN;>=Xl&`^_gn3&zK(4!pRHOgl=0O%hhN{Jv7pr zZN>I_q?Cb{7eH6l*k2xhV9U7T8u=>_|9r+xT~VihU!k?Ge;kb1E<~-dsgXN!A5rI zUCrC{L35of=pDXu19$54n!9!92Aqifdmq$=*9)<7%@61q{JapI*JnGQc;OQan_0d*j^sGg^%GoSQy~ze?{+?v3LbtYM+Ik@RqjI&F$(fGdrC z^-z85=8r^rn$CrjuO&Lcob4_;!7CroE}C--E^3#5E;_`Nz-vYiKF!&-tgA{s z6U2sI_$26LiKHAL%plfPn?*Up5K;POgRm8<*y*3ssHPuRYn&aepEGs$zK=(CCk5hM z@Pu=y*3Kv}(HqJ2*+CkwHGb9;6Oa~JRTXp2pw&)`Y{=2LJ)dN5tx_RxsnA}GTQ=+j z)6&(DEK&H9Ye zfIcRmM?+U`iqD@sr7xGzyLL<87&oo2&j#rymR{WZXK{Ss-ndim{;lO>Q7Y$;KO2u8 z{EQyUe}gX1I0iXM8uA6`Q~SRZ2T#5wuI7YAYv@LO`Gme}QT4{c5Z;h~*tQ(>G&wfS zBl}IONwR8BiGaq2GI4HS+^>ttb4za0x}%5e^fbq+(UI79>Zm_Ex?HkTx>@$gr~X5X z=u1ZYS=NCyF+P7F4xi?meYbmky9xJN{%0$A)EBH*-_`6 z!Wo^&&hhhDsg)F)*Pe6ux+p;l=bTVHS&iOIv`>#Zy4B9HNO{XL(vl;ROYMx~#c9EK z%fPTXH*HP3;H*l|PUyaK^4ZxWBO{o1DoQQ*9(IMwkl;#?7ik$J3U;nZ&3OrZNv~v+TDFB{yIvbBkE^lMC$|~dbD7z%^N3kK5+*VFUVjVA zb3XIj<6JR`p+EdMjt2E;`oR3N@$mka;>LA+EA^7tpc`S=jhu;n8k2b)Pn*Z@irs7U zSxS|uvwD1X|EJ>Y$PdI-E7$9JjVy=ueL0>!voF?;T&48z!*g64t%|kF&&ES9eI?$! z`I^ojpJ&fe4d!vYI{Co@A9RR+lTU>PeN)JoAhC zh{Lyw@1$^+>&r1u#D1;mTy*l$uNPnZRQ!p)=xpPPo3(~q(5KV3#ju|AJA7UrKhQ-d zU+K1TOy4+uOuy7HzeVSHn|Etr@l}s;Pa%|)pGtM1^q%pQ#=UVSVkW>>{VeI+&DsYRL4XEhI<)VCTAuF(k&3nno+5z~ps z?9=)QfrEO0;~JfY=u|{^ZuohV_PciYcLjRxLUOj8K2RibPMvoIO;L3>+1Rktlj|ux ze?Q9Sp>%O(H+}KO34OWLB=4Rq*XJztZL@Q_!=+CT$VPYMwcu;%^=~;%7v$*hXnw$4 zCz1ILU2q+U8*lo-*mmuQl?jiU$C1aK=XBA!O4yX4p_Q>lzXj#ric-5x9dvjxCOJ&1 zyX$@Zmw=Y%if!?tSCTS`RM<8fOT0&Ot;&3jwmYs1V%rh zJQ5uloy04v3GAMvK;zcdx&D}Z7J6uCXB<0te;hdX&RD6>b`R>a);H{WOWc3#<2vRK z#Ez@}UaZqo1eA&MFU7;JKC7QU(R!zM@A9%M;^aA9|^-$$`-_`Q;>$P2((0%M_;*E^S`Yu!uhDk6jbdXvI}FWV%7AEc z?e$$l`og1+yz`gz^Dgp%AEkC9dMCwmM|dmsnf9@PGqTe?dfDY2^fGq;yh-26i;o+? zYW&!Df#sU#5UjQ|3XA?xRUs3XopWC27y}IPAusR(H)UYBxJ?Ku%wd?7VfD3J=P*Hs zZJW;iI%e6l9IL~f7vo}Q zNvd9EnUjW_kb(2a)YZdXjp0aR(6r813_rb=7K)fP{WcPF6-&bAZ{*H-BTo(EAC z$I#AZ&8BlR4j7pm#WMeb!6`{}79Hnqol7QN#<~#5vjO&kIVUliTtd^+H_kohq`T~# zD>C-ZqpeBcN!>B2_X4P{7+_15F=Ysb>~c)GoLZ{yozP?cH{BWQ_1xjOzF_Ctt?$w= z3p}ZFqxraM$G!S;Nc{8#LZ_aH$B!R~)%tepVcl$RSRBbzu`KEpmccc{58*w>76f85nhn>lsYEXy8uYIz_bqYE%3o7QKi z^&qjvLFb)11!cYAOAAk)(T#qs#9V%Jp*g6Z?+bkqq+gG94m>b$TJP(!;;HEA!Et>d zCGQRo=%Z(RR?|f|+jqS^etgq?LeW|%>|`cP<#ok!zO9!srpJ@Vbd!`fT}US9lE}UB zcnH*c`j8d%r8^%-BxL5O1LQ}LaA`OmfA{`xcFrYk?>K2Z6*=d2b{K+5Mmg{rs&1Nc z^|3Q^m(!*uYx-7a@*FIq8WP8}@FD2BFbLCMvYFXyxNR=Lxe)E5X>Jzfk88C}LLlB} zmkicO<3YWSCifLtk?|s89d;7x;GLDMDUHuqFy+B2eG%n4k%q?(181XRnW#Zd>P zQPeqogj!$ldL$m$`;@+&R*xL8Ag#JNZqeQO&mKJ$Z&`OkY#yseN%hTMFP-?Zz92`x z-!!^bKLwDdU^Duyrjt4WaZAL>nZFuCUjQ*Pw?g>(;qYQKqIVJp^*I7BT1l$7B}dbQ zT+IheeD}u#!P4P}4BP?tp>R8w681(z_F4p49>^*FnGWq+4D|yUlh?yhm~b#3bc#Q( z&lN3Qwmrs1_3kAyX_qcrt4D3!yzFL9i_m$!3(6OMG(hw9#z5|mm2KdSCIgLMO}iX3 zNnl4fij?ACPaBeB)zL7hy@%|98B?0YG0Sbc}=hho$Ed*kY%|0f=wzBayd z^HnjHOIz&U|Ft-*Z>$~Gw-PQJ?S0ehq<-t|jP87UU2~s`vrb^<23G1ZtpX62kr91% zRDFVdGIGT|aZSA4^^U*V?d&}#!G6X^Y7et+24>#Uo>i1DY$G4e zXg2{WcYsTl7o@{6Hoiq!O4)#Z19X*se&MnuiRxX|^ZFe7s3MiX{%jhlh9EtCg_{59 zyXt-8hoa3D8Jjb(9b4=Tp*+)-re?QNwE zY@BmdG8>uaq?xuv!yeh<@oT+tztk|6aZ7_Ee)`wq7_B&z8gyZ&k7L1AvWw@OkrFF= zVc!bkF>ZA$l;nQSH8PEYO*5WueCe3wH+Y}Z_jjz{t|t-n2ElHvd8=Rk{Wv}J{c+nS zJpxbBh1rX*d_E@hWY*FpEA^8|dGn1&ZqLo0)q99zTJyBBxC06y4t%_4cwmLrOwOQH zwDygRtdv|&V!5X&X6u}=F)<{W7iw9}xtLAqNNi_oE16~f`aE?Z@3VKES0+r}ywN#* z<=vk825x>1r9UQ5zU0{-7Mu^O=;^ot{i?&*SbmQQ>*$akLtd-D*Dllg89iOl`c(nm zV%R3D9q9l_MHI&Cf+J_sQgZJLV(_?0{r8Oye~TB&{Y9XVXmNBhzv$A%-O z&EIc!opX#nTzKY)5Su`$Y;hn%YTB`t{g6ziS(5L<{NdwBWn=$GYgk|4FFys^nJ z2)tleQ^}zlm1XzHn~su`>wdU{I10OLXi=r~QkHGgDJmRLE@~&UIzTZ37h#u}l4;kU z5Btfsb#q>Kh6abW$B{$#$NqEQ5!dN)&|&>%-Ss=~iBBFo7gue)y)GE1WAD*N;^p&t z$8YJhE+%=zDa#VwMdz#fkCwp8zS@lMpgudq1s9*_;RNl%)Oq=y^|xG^3lR3J7Jl^) zl{;ls9vsd#{QZ_$T3~|-x$`st!#=6claQ)w=Yz~1DRY8qqTrV&6Rme;gS{S8nbT(n z_cd zf#SOjpFW+dQpgSypEP2J9GCK;ZR}2nApO!2eU^?xwQ+H5%&Aw~ay7f-q;<0E4FEXl zKRi?}I!+Ka+^iPo48quR!iO`7bVSTg-ZipnK!x_ zuW$SaVaVoL0{L8N{Gb7o#n_f1Y;z;YSDYUEHabM4G@Qn{r7N}cLmZ9C9vnsq-W5wb zVq4U9vd=!JP0Iz3MzI#{J@Dl?cHZfz54Yy zH>Y<)_1JCyXLN@2xu{WntF1q&2p@uL!#6=LnLnd7uPxU4Ih3h0EEYWcQGAS!Lvprn zN8L)g$~`I<_Z|JBQ#je=yi=vG0M|W9(gw1!mHEJ!xtmUHsFFbmu>jU2bn{R@N#P>n zGpF~(!!LYAKMyb}Mh!=Py`VIq~q#c})B)9h5}Py?J#um?v!7cs@x~Fc*zq<++Ohb_IIP z@oQnQEiw*Gpq6X|7UrHR<#L>fYpC++=S&AYBE>C{v{fwoASj)8lBd7G%EoOet>@;F zE+7ZaKOQd}c_Qx8MJMm!?bvdizT-j{mmA(38~kO8`bO-D7vrJB&+GTj_1m0Uu<9~Q z)=Tx%aC*alcL`f?c(~Ji{n|Nwu~79|Uluqqc~a+i{7z`jIGbuizmjwFZJDBN4HYNH z!^smEow#|^PfR=`JA3C1V8l?@RTj4DXia^?;P_7r05t-iQ$qL2^R^sJiv; zL7ppO;#e|XxXz)#KlkZ}ZRJ>Eim_$$T61mzt^on%HLT_wO_d&YUktFJUR-P{K{roO z(06bfNwDfqyFR&W_-{Kl86SSVh?yfp+Br8wu(P&A*BkQHbVZ`Xw$%7tyBTU|B5a;Z;{{9 z*tqWAxMBJJxO#&gM^Ks8kL*7C%4hUN9BXw_btKN8d({`7x?;@AB`9Evr_zK zrTHkHzSKHqmgqA9de%MPD;16oJVL_yhay zkB`6b3o*9zcKPJRC@?MaoP-YO6n8{l%E5VO>Iev)|65i~V_HWiI(x(*rmXqGx!uje z!q{vm6@q^B?wp~JL^gf{<@L-tdkC)Y7)CFBdCIC9x16 z2{=x)Z{4BB#RBM=3-9crTKe`{vLZK4uD$rX*(b{sOTgH7re&9+i*Rk|IPh^V#rIO! zVjv9j_(nLJ2#ye~9WUl;n^MWEK`+zJ+uEe4leo*58b4V$N6pd+p)bjr4lEcyZ~-%5 z?i0HJN^ftCA0ZnR&pFKKN9DW0*t;1PRN@vODEg0#zud4d2|U$Ih~(c3j6-D!3>k7k zHmW=S`%XU|FCIP;>$Yf()8`MjuhMT@&W-8!ee+XHr;fg)leE8xk)>D1Bvljd$w-N`KR7CD3Ew zpU0ZePjGOjJ_~(u3TRd;N@GFxy55zb?+ik5We+@V3rps*lX1-H2IB?&2s)9uSf4t7 zI6nXN567Y5_r{36wLD+a3e5Pt%d1sSC$7Uf8O!-pvHB=jLI?U?O|WOw=8B1yowL@6 z6HoOv=j<*KrJHlqElCco-U<74B*nqf2V6Q>Q#N(xoOaH!s@*sg)b~eF^D$U)D9qZ z2Ff(>v5hZnME^f=Zys}5c3tT!|d!2pGJ$2uG_uc2x+^RXpZ^~=VC1|V++aUI^d~LD> zm@eX0L?lX0TVus0AP9(AxYYL;Kq#W>ZqAM&BSt3w1fO$G4n22m*A|dk73KPR=UF{(QxK(MCx)yYHrP zxz-BGSzT~Db^Ha{9Q4~(3%#jvwx8Vm|9LgU@C?7Ps`I6oioGt_pVs*X5Ebvcfq>CfF5p99BC62bIp?^m z1?6`$=ajFFxvWSIW?<1%eEn_b3vCyhvvJw9cV1i7xp9}slPjgIpcXB1TS?XDTo})I zWd=8oHn~z==i5F+B(42cApCFw$i=-QiL~T16*L>8>cmJKsc_JXUHKTd{n<-^n!Rx!h^T;i1XHGw_r`djRyzAEGN6KG({m3|a zO3P8@!2s}UjvQ!u^VV-D4`=~++hv#g0T}zW2ptgiu@m1Ox7?ubCe(K(?c9A1CBaoi zHP1oow~QP-n+}hkv(`y!7@3{ZiQj>9FY8g;e7-^1H{NykU)95h-l3m>xm8~*ze5iZ zy4|m<4&A8-7Tv0!54c>nsa)wr8V}-l&Iz}nLycA>J?F6Y{BLsT`Lk)+s)0Ht%nj+) zaLp##Y|XhWP+-f@j&j0Jrp9(7f~bYIeVinc9Xe)X7!=0>vz|>C-bASwTQ=<<&e}$y zoGngEEsO+i|4q)alE67LZm?sEPJiU0VgfLa&q@RyGlEP_!F%MY2%HlX{iSUKdb1c) zg9H1NiD+zmXK`c28SJS{rH9FK;!C`-&Xqk-6FWw$zU;Qn#lfZoF)mxxX%<*PEgh;r z_E0_ksDo!i2d!0 z?&Tx;{mp(Gch7C#Kfdqo59Xe|K`#ycwhqW2pv-&xvll$)+Z@=m836Xh0X0bC!xmTVWTWTG?+H3@uOX7PzeIL_v&Y@m)-MGjo_(~A9d^fPmzSQPbi#Hz@7GszvrTTv@w}*#wkl9uj5q1#IL?Z0IlKk_@{u~+)Lmin2G_x#;)_w{!r zh@MLQ&F8*6UOl7ZSL@Eu&s4pxJJY({aqD~ZlKu^!*!Jr~2hPXddFMy< zHKSZ;JE6NAo;dc3zYjj|a4-ntM1SGNrxQFwBN^jz*4y;t^^^KkmM?1U*Tt$6Cm+{s z{r8PqugPt$K={obeRC3O-DqqLLjS*5hb$hpv~MMfbUC*qkJn6~Tas{|cU0$`IuFHB zk%Cr3gX)Mldb^h2B1ccPh$r~mM;A=3ZCn)Z60>h@; zuC8n>$37U{`7m%uybXp0Vf#vm<&wZE%oZ*1s z+`{^xe%v>wg8L3$JwEu(zdNox^BMgJ`H^wtjW3PsZ~EEsAOFBl=x0c{rBy|JForrw zm9mUVP&5Bh_w=P&Ds*0~48s^UPJtN^<4eco`yL-(d*<7EI0nKoZo2&=<8R*eZ;uy_ z{@HjQDd)aj%#v7qi~n5N`xQa(yy?)Yv5*{ zflCSJg0n8;grtga;^p^ZLDBx+wt&o_ysrlnoa>#bDQ(T*x(GHnHv|BYRNzBFKV5`kphwywU%(0jBP>vVx*U8znx{|Cl4-Tus zcP9B>{h@PDj+gY)1^veEjypcApIXt=zmGkr6Te5s%j4GZ6CeK1^_y__=$s~}8Nhhm zs(h?q6~?2dZFp?_--=(HGk(gAM{Nf;2IQPBH0mKFdbr5bFV_j^p_|7KzVD~U4d)(H z-=EZ4|Gd_`XZ3nUPjmd19v1iR@lO5r={R%3c{hUu)L4SaYyJO}$V8-Y;SD{}D)y=O z_=PkUk_$&>)ZEveb1loD(+%OmftQ@3w_EuY4nZxJ4YsxnHol82n(&nZTV4}5zQo)- z&xpy4LcH=tMs=eoSH$oe!B)t}Jpdc0;%v3&0w`9PFSWF@b%u?L9BlR~+IwigF!6|c zOH@i?XU@zxB~Okoj`NPbu9BBn5UQBk2U~%bK@Vs7p>sE?Gx(jK&f;|t$@KyMuFJnqy3)ZTGJ?%I0g$P?q?=RT!7JM@(Qv-|Yv=TqY= z&p)Q`a>n+GYrk*&*t>sPhxMn&tNJAH_~|3#rDI?y zZ^Za*S_N)?%sDmqT<#KmRq4Q)Z|dPgdZ3x%_mB77`(xuy{if(kCv+b5#{GI2?B5>$ z$zS{XdaCXRts_$2qhIDGKv`1oNK=t4hN;K5pfU##m1o>9s;osUo{BB zt9TKbF}28J-3p{_*0D7L7^3lB8}E_rQpg27Wn;R<*_Ozpa1`-h=cgIu_F5-eqB=r* z5`aoxwHY}Se zX6ZcYM2eH5W1k%l>p=U!E!XQx*Fn7sPd|qHl^4D)c)fYll_-7&V4Qq--2d<&jqktp z-yN5U&*7`yF@EAletx{?k>A(J*)zI5rMJn-nRjfe03{_)=H z^gW47t{Q*+2mjHy>E^$p6WBl30(4xzZ+iW>{RTeaeebyKZ8wkaeCreApMB-$$C-V1 zhan+MJm9dHO=7!0NTP{uVT06HrO>;f&6}Nb%zsCnkpZo~S7>;(9dV@gNiHsg)Mg$- zaHdnemx&!r5C^+BA}P));Taf(Ez-uiv3rhKU06ZGP5+8BdLJIxm`3J3>hx1`&vow* z>V++6G$`exc6>@|wREdoG`|8;?65K&asUYkO;l>g6V~d8f@>Phx%t>78^cSEs_Jif z{D@1LSk%RBjvq>bnAEJtTz2WC)Vq%#xSb!y&%H8S<;A$fP!U$8E_{$xo=G1udn|mV z-+1{H#J<>9N1PV77bu!$sURLdan7)C<^R_4ny&mm`trXsZq`LMJr+z?vV-#K5#8Bw z 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 z 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 EXO=7cY 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 literal 22084 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�gYl^6l-ltkTlmdD|aM=)lE&m0c9Ljcj^BL7lC-z2L>3r2HR0o`S5yv$fIU z(Ljy{fR*V8?ml`NzCU4E3@Tu^MghIeYibgs5OPxjuhw}@!ls?k06$%=1#iA_y#)3t z;IW^h?|p21<;s;|L6cuUK7hPkewHGl2+j8iMUGPF%rDN4C(2Ail6@}Rg~2{g-rJ{z{~1EjGA5=6N?hjSsKMb2|Q zAc<=Mt|OpqlmbNH1hrKR76GKj0R~k^bIV_IbHfdAPht|1Rq#@tNHzFzCz|8ed!kl> zUjR9H4SV~~X!({vqeYCa!-r3t==~(%x>>N$8MD@Kx+!Q5+@~8k+KJj}Z`SQ8fT^vt zklPLc*5Pz{j$&bClu4Hg0==4zY%!ggWjzAW5pJy2(c7yDh@$Y_9^3DdbUI#Vh7y^zS=ItIwCM6Z3 z32<}s%HgDK%=e#t?+D023RQMtVIkL`(Ho>9(`^r z+P|SrTvqOq$}LH{U=7uY6>DnJ zDNPtd7?);Qsiw2JG%*borLhPl7P%z$`Px5Vf8P0Newg?BzTfwAd7jVndFKs#*L`P1 zdi_3g6ad6k12Uy_vL-X5+YC66HSDvoUlGi3W7%6cL~#3+;Zo3gG69f?b;&}--a~(yFaIpy38yE@gjx`daI;5xsY9|tg5+f`*s$*xqK!=FC!y^XTIgxZu-xy`6j$4 zbUIyx^txs9=FrK(HWd|>4tEcB5yZv_KoMag|cPB=Px_k+{{P`xDn2YQolmS^R0@O&P#&ZO9>?ShWvT$VJS;*%lj-1Ooy_e?w^+cbwv9Tc_@^En%Fs`N20K!=@Y%j@IkIDgmfFsK1i+-=HWI@>xjn%GEQ!8{Zs=s;fvrKy^ zT_^eWq-yd>Vg2BS&yzSYWpMaqjgw!}gk71*m#ej<@19o;9IcmCg}AhFX)an?T3dVL z1BrZtE|uJGY2Je!_dJOADdY=f<**6G!+DUj+f`4j4wN^}mtY%kj*lPSe#MM);lh5r zAxc+)6L%+$CJIZcK1@x;;3;ES&s0czj^Qu=BvM6c%RmQ)m%^G?A;}Wr-C3Ffa;&sD zRdpIy>gZFcBKb+`&OETY!|P6&Q1W6>V=eXdh1ez9vI=&E65xu8p|( z0qmi;xR}t2k;0|#UbTm-4|RbMr{5BQc^ptvM#3wm^6BY~(EQ&PH~we{=u zfvv9>Khl8A0T9AQEzCc5b#!)GUR(P6k`ORo=VSCFf{-6GIGpY3Tb*}+aR@NI$?))S zFt{%-P$H2O;0F(~Hc%fU>hC+|8{f0Fx96s+t}B37nLn~hUZ`U_IGBQ|)z(AM#0^jx zL!z`sooUOCSY)N(+3`2QT|)LPfuL1;cU-HsRZ{mi+PkEtfTs?}tLD#ojdz?c87 zC&$0FX0nbSukVd*a*-_vKq@bH`>2o#m34vVP1Z@eOvF`%c=hb*jt-WF286YHz{BK< z<$3K;B&3|`{+>x`n9Am4X1*6H8+szip%HR0>ypW!rFe7&sXFpC;AC&!&rls`Rkw*9LgUHl}%%4bpBhmBr8Tr%g3VS zULlr;vodnlM#fu)-g&&aj4D}}5wgXNwc_>I2nMmBr6cFk)6<#eU1K)VO3%x&xFV0T nXk=*E78GxYJ^4R=n!@Hzow=b{nG)e=My#J{=WHvq@jvqqm+3b2 From de4ee731bcdf0b2ce3e719806a47777d2ae520bd Mon Sep 17 00:00:00 2001 From: "yi.wu" Date: Tue, 28 Feb 2017 17:23:43 +0800 Subject: [PATCH 025/186] Refine k8s distributed training doc --- doc/howto/usage/k8s/k8s_basis.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/howto/usage/k8s/k8s_basis.md b/doc/howto/usage/k8s/k8s_basis.md index e296d69dce..f42631ced0 100644 --- a/doc/howto/usage/k8s/k8s_basis.md +++ b/doc/howto/usage/k8s/k8s_basis.md @@ -12,9 +12,7 @@ - [*Namespaces*](https://kubernetes.io/docs/user-guide/namespaces/) 命名空间,在kubernetes中创建的所有资源对象(例如上文的pod,job)等都属于一个命名空间,在同一个命名空间中,资源对象的名字是唯一的,不同空间的资源名可以重复,命名空间主要为了对象进行逻辑上的分组便于管理。本文只使用了默认命名空间。 -- [*PersistentVolume*]() - -- [*PersistentVolumeClaim*]() +- [*PersistentVolume*](https://kubernetes.io/docs/user-guide/persistent-volumes/): 和[*PersistentVolumeClaim*](https://kubernetes.io/docs/user-guide/persistent-volumes/#persistentvolumeclaims)结合,将外部的存储服务在Kubernetes中描述成为统一的资源形式,便于存储资源管理和Pod引用。 # 部署Kubernetes集群 From b6a0f9a32a4a3e35f9d8ffa4728c69fada5fe5ed Mon Sep 17 00:00:00 2001 From: liaogang Date: Tue, 28 Feb 2017 18:00:34 +0800 Subject: [PATCH 026/186] Add vgg training via api v2 --- demo/image_classification/train_v2_vgg.py | 85 +++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 demo/image_classification/train_v2_vgg.py diff --git a/demo/image_classification/train_v2_vgg.py b/demo/image_classification/train_v2_vgg.py new file mode 100644 index 0000000000..33b53b27da --- /dev/null +++ b/demo/image_classification/train_v2_vgg.py @@ -0,0 +1,85 @@ +import paddle.v2 as paddle + + +def event_handler(event): + if isinstance(event, paddle.event.EndIteration): + if event.batch_id % 100 == 0: + print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id, + event.cost) + else: + pass + + +def vgg_bn_drop(input): + def conv_block(ipt, num_filter, groups, dropouts, num_channels=None): + return paddle.layer.img_conv_group( + input=ipt, + num_channels=num_channels, + pool_size=2, + pool_stride=2, + conv_num_filter=[num_filter] * groups, + conv_filter_size=3, + conv_act=paddle.activation.Relu(), + conv_with_batchnorm=True, + conv_batchnorm_drop_rate=dropouts, + pool_type=pooling.Max()) + + conv1 = conv_block(input, 64, 2, [0.3, 0], 3) + conv2 = conv_block(conv1, 128, 2, [0.4, 0]) + conv3 = conv_block(conv2, 256, 3, [0.4, 0.4, 0]) + conv4 = conv_block(conv3, 512, 3, [0.4, 0.4, 0]) + conv5 = conv_block(conv4, 512, 3, [0.4, 0.4, 0]) + + drop = paddle.layer.dropout(input=conv5, dropout_rate=0.5) + fc1 = paddle.layer.fc(input=drop, size=512, act=paddle.activation.Linear()) + bn = paddle.layer.batch_norm( + input=fc1, + act=paddle.activation.Relu(), + layer_attr=ExtraAttr(drop_rate=0.5)) + fc2 = paddle.layer.fc(input=bn, size=512, act=paddle.activation.Linear()) + return fc2 + + +def main(): + datadim = 3 * 32 * 32 + classdim = 10 + + paddle.init(use_gpu=False, trainer_count=1) + + image = paddle.layer.data( + name="image", type=paddle.data_type.dense_vector(datadim)) + # net = vgg_bn_drop(image) + out = paddle.layer.fc(input=image, + size=classdim, + act=paddle.activation.Softmax()) + + lbl = paddle.layer.data( + name="label", type=paddle.data_type.integer_value(classdim)) + cost = paddle.layer.classification_cost(input=out, label=lbl) + + parameters = paddle.parameters.create(cost) + momentum_optimizer = paddle.optimizer.Momentum( + momentum=0.9, + regularization=paddle.optimizer.L2Regularization(rate=0.0005 * 128), + learning_rate=0.1 / 128.0, + learning_rate_decay_a=0.1, + learning_rate_decay_b=50000 * 100, + learning_rate_schedule='discexp', + batch_size=128) + + trainer = paddle.trainer.SGD(update_equation=momentum_optimizer) + trainer.train( + reader=paddle.reader.batched( + paddle.reader.shuffle( + paddle.dataset.cifar.train10(), buf_size=3072), + batch_size=128), + cost=cost, + num_passes=1, + parameters=parameters, + event_handler=event_handler, + reader_dict={'image': 0, + 'label': 1}, ) + + +if __name__ == '__main__': + main() From fe44bc9082f6d1467fc90d68718902ed298b51dd Mon Sep 17 00:00:00 2001 From: "yi.wu" Date: Tue, 28 Feb 2017 18:37:57 +0800 Subject: [PATCH 027/186] Refine k8s doc update --- doc/howto/index_cn.rst | 1 + doc/howto/usage/k8s/{k8s_basis.md => k8s_basis_cn.md} | 0 2 files changed, 1 insertion(+) rename doc/howto/usage/k8s/{k8s_basis.md => k8s_basis_cn.md} (100%) diff --git a/doc/howto/index_cn.rst b/doc/howto/index_cn.rst index bd3d0ec292..5b84eea491 100644 --- a/doc/howto/index_cn.rst +++ b/doc/howto/index_cn.rst @@ -10,6 +10,7 @@ usage/cmd_parameter/index_cn.rst usage/concepts/use_concepts_cn.rst usage/cluster/cluster_train_cn.md + usage/k8s/k8s_basis_cn.md usage/k8s/k8s_cn.md usage/k8s/k8s_distributed_cn.md diff --git a/doc/howto/usage/k8s/k8s_basis.md b/doc/howto/usage/k8s/k8s_basis_cn.md similarity index 100% rename from doc/howto/usage/k8s/k8s_basis.md rename to doc/howto/usage/k8s/k8s_basis_cn.md From 7ad8363036af9d8ae91e6698ff09804023602bdf Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Tue, 28 Feb 2017 19:44:56 +0800 Subject: [PATCH 028/186] support boot_layer --- .../paddle/trainer_config_helpers/layers.py | 6 ++- python/paddle/v2/layer.py | 37 ++++++++++++++++--- python/paddle/v2/tests/CMakeLists.txt | 1 - 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/python/paddle/trainer_config_helpers/layers.py b/python/paddle/trainer_config_helpers/layers.py index a8b536dda4..4f7a2735e2 100755 --- a/python/paddle/trainer_config_helpers/layers.py +++ b/python/paddle/trainer_config_helpers/layers.py @@ -3110,7 +3110,8 @@ def recurrent_group(step, name=None, targetInlink=None, is_generating=False, - in_args_converter=None): + in_args_converter=None, + boot_layer=None): """ Recurrent layer group is an extremely flexible recurrent unit in PaddlePaddle. As long as the user defines the calculation done within a @@ -3256,6 +3257,9 @@ def recurrent_group(step, if in_args_converter is None: layer_outs = step(*in_args) else: + # append boot_layer to the last of in_args + if boot_layer is not None: + in_args.append(boot_layer) layer_outs = step(*in_args_converter(*in_args)).to_proto(dict()) if isinstance(layer_outs, LayerOutput): diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py index 1155eca9c8..542d5a515c 100644 --- a/python/paddle/v2/layer.py +++ b/python/paddle/v2/layer.py @@ -140,10 +140,13 @@ class Layer(object): if self.name is None: return self.to_proto_impl(**kwargs) elif isinstance(self, MemoryV2): - return self.to_proto_impl(**kwargs) - elif self.name not in context: - context[self.name] = self.to_proto_impl(**kwargs) + name = self.name + "#__memory__" + if name not in context: + context[name] = self.to_proto_impl(**kwargs) + return context[name] + if self.name not in context: + context[self.name] = self.to_proto_impl(**kwargs) return context[self.name] def to_proto_impl(self, **kwargs): @@ -256,9 +259,32 @@ class LayerOutputV2(Layer): return self.layer_output +class StaticInputV2(Layer): + def __init__(self, **kwargs): + self.__parent_names__ = ['input'] + other_kwargs = dict() + parent_layers = dict() + for pname in self.__parent_names__: + if kwargs.has_key(pname): + parent_layers[pname] = kwargs[pname] + for key in kwargs.keys(): + if key not in self.__parent_names__: + other_kwargs[key] = kwargs[key] + self.__kwargs__ = other_kwargs + super(StaticInputV2, self).__init__(parent_layers=parent_layers) + + def to_proto_impl(self, **kwargs): + args = dict() + for each in kwargs: + args[each] = kwargs[each] + for each in self.__kwargs__: + args[each] = self.__kwargs__[each] + return conf_helps.StaticInput(**args) + + class RecurrentGroupV2(Layer): def __init__(self, name, **kwargs): - self.__parent_names__ = ['input'] + self.__parent_names__ = ['input', 'boot_layer'] other_kwargs = dict() parent_layers = dict() for pname in self.__parent_names__: @@ -443,7 +469,8 @@ layer_list = [ ['nce', 'nce_layer', ['input', 'label']], ['hsigmoid', 'hsigmoid', ['input', 'label']], # check layers - ['eos', 'eos_layer', ['input']] + ['eos', 'eos_layer', ['input']], + ['gru_step_layer', 'gru_step_layer', ['input', 'output_mem']] ] for l in layer_list: globals()[l[0]] = __convert_to_v2__(l[1], l[2]) diff --git a/python/paddle/v2/tests/CMakeLists.txt b/python/paddle/v2/tests/CMakeLists.txt index 948cebdf72..572deaff35 100644 --- a/python/paddle/v2/tests/CMakeLists.txt +++ b/python/paddle/v2/tests/CMakeLists.txt @@ -10,7 +10,6 @@ add_test(NAME test_v2_rnn_layer COMMAND ${PROJ_ROOT}/paddle/.set_python_path.sh -d ${PROJ_ROOT}/python/ ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_rnn_layer.py) - add_test(NAME test_topology COMMAND ${PROJ_ROOT}/paddle/.set_python_path.sh -d ${PROJ_ROOT}/python/ ${PYTHON_EXECUTABLE} ${PROJ_ROOT}/python/paddle/v2/tests/test_topology.py From e6e8bfb44ef70320bcf1cca1abeebd6ff58281b4 Mon Sep 17 00:00:00 2001 From: dangqingqing Date: Tue, 28 Feb 2017 19:48:22 +0800 Subject: [PATCH 029/186] update --- demo/semantic_role_labeling/api_train_v2.py | 55 ++++++++++----------- demo/semantic_role_labeling/model_v2.py | 25 ++++++++-- 2 files changed, 46 insertions(+), 34 deletions(-) diff --git a/demo/semantic_role_labeling/api_train_v2.py b/demo/semantic_role_labeling/api_train_v2.py index daaf0f0582..0317c818db 100644 --- a/demo/semantic_role_labeling/api_train_v2.py +++ b/demo/semantic_role_labeling/api_train_v2.py @@ -2,6 +2,8 @@ import numpy import paddle.v2 as paddle from model_v2 import db_lstm +UNK_IDX = 0 + word_dict_file = './data/wordDict.txt' label_dict_file = './data/targetDict.txt' predicate_file = './data/verbDict.txt' @@ -29,6 +31,10 @@ word_dict_len = len(word_dict) label_dict_len = len(label_dict) pred_len = len(predicate_dict) +print 'word_dict_len=%d' % word_dict_len +print 'label_dict_len=%d' % label_dict_len +print 'pred_len=%d' % pred_len + def train_reader(file_name="data/feature"): def reader(): @@ -63,31 +69,16 @@ def main(): paddle.init(use_gpu=False, trainer_count=1) # define network topology - output = db_lstm(word_dict_len, label_dict_len, pred_len) - target = paddle.layer.data(name='target', size=label_dict_len) - crf_cost = paddle.layer.crf_layer( - size=500, - input=output, - label=target, - param_attr=paddle.attr.Param( - name='crfw', initial_std=default_std, learning_rate=mix_hidden_lr)) - - crf_dec = paddle.layer.crf_decoding_layer( - name='crf_dec_l', - size=label_dict_len, - input=output, - label=target, - param_attr=paddle.attr.Param(name='crfw')) - - topo = [crf_cost, crf_dec] - parameters = paddle.parameters.create(topo) + crf_cost, crf_dec = db_lstm(word_dict_len, label_dict_len, pred_len) + + #parameters = paddle.parameters.create([crf_cost, crf_dec]) + parameters = paddle.parameters.create(crf_cost) optimizer = paddle.optimizer.Momentum(momentum=0.01, learning_rate=2e-2) def event_handler(event): if isinstance(event, paddle.event.EndIteration): - para = parameters.get('___fc_2__.w0') print "Pass %d, Batch %d, Cost %f" % (event.pass_id, event.batch_id, - event.cost, para.mean()) + event.cost) else: pass @@ -96,23 +87,27 @@ def main(): reader_dict = { 'word_data': 0, - 'verb_data': 1, - 'ctx_n2_data': 2, - 'ctx_n1_data': 3, - 'ctx_0_data': 4, - 'ctx_p1_data': 5, - 'ctx_p2_data': 6, + 'ctx_n2_data': 1, + 'ctx_n1_data': 2, + 'ctx_0_data': 3, + 'ctx_p1_data': 4, + 'ctx_p2_data': 5, + 'verb_data': 6, 'mark_data': 7, - 'target': 8 + 'target': 8, } + #trn_reader = paddle.reader.batched( + # paddle.reader.shuffle( + # train_reader(), buf_size=8192), batch_size=2) + trn_reader = paddle.reader.batched(train_reader(), batch_size=1) trainer.train( - train_data_reader=train_reader, - batch_size=32, - topology=topo, + reader=trn_reader, + cost=crf_cost, parameters=parameters, event_handler=event_handler, num_passes=10000, reader_dict=reader_dict) + #cost=[crf_cost, crf_dec], if __name__ == '__main__': diff --git a/demo/semantic_role_labeling/model_v2.py b/demo/semantic_role_labeling/model_v2.py index a78190a2b2..cec58e52c7 100644 --- a/demo/semantic_role_labeling/model_v2.py +++ b/demo/semantic_role_labeling/model_v2.py @@ -23,23 +23,25 @@ def db_lstm(word_dict_len, label_dict_len, pred_len): ctx_p2 = paddle.layer.data(name='ctx_p2_data', type=d_type(word_dict_len)) mark = paddle.layer.data(name='mark_data', type=d_type(mark_dict_len)) + target = paddle.layer.data(name='target', type=d_type(label_dict_len)) + default_std = 1 / math.sqrt(hidden_dim) / 3.0 emb_para = paddle.attr.Param(name='emb', initial_std=0., learning_rate=0.) std_0 = paddle.attr.Param(initial_std=0.) std_default = paddle.attr.Param(initial_std=default_std) - predicate_embedding = paddle.layer.embeding( + predicate_embedding = paddle.layer.embedding( size=word_dim, input=predicate, param_attr=paddle.attr.Param( name='vemb', initial_std=default_std)) - mark_embedding = paddle.layer.embeding( + mark_embedding = paddle.layer.embedding( size=mark_dim, input=mark, param_attr=std_0) word_input = [word, ctx_n2, ctx_n1, ctx_0, ctx_p1, ctx_p2] emb_layers = [ - paddle.layer.embeding( + paddle.layer.embedding( size=word_dim, input=x, param_attr=emb_para) for x in word_input ] emb_layers.append(predicate_embedding) @@ -101,4 +103,19 @@ def db_lstm(word_dict_len, label_dict_len, pred_len): input=input_tmp[1], param_attr=lstm_para_attr) ], ) - return feature_out + crf_cost = paddle.layer.crf(size=label_dict_len, + input=feature_out, + label=target, + param_attr=paddle.attr.Param( + name='crfw', + initial_std=default_std, + learning_rate=mix_hidden_lr)) + + crf_dec = paddle.layer.crf_decoding( + name='crf_dec_l', + size=label_dict_len, + input=feature_out, + label=target, + param_attr=paddle.attr.Param(name='crfw')) + + return crf_cost, crf_dec From ffd045a0d0c127e28eb9283c91f9f439984a0bdf Mon Sep 17 00:00:00 2001 From: dangqingqing Date: Tue, 28 Feb 2017 21:49:54 +0800 Subject: [PATCH 030/186] Fix data_layers and data_type function in topology.py --- python/paddle/v2/topology.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/python/paddle/v2/topology.py b/python/paddle/v2/topology.py index a51b1073b4..6329915350 100644 --- a/python/paddle/v2/topology.py +++ b/python/paddle/v2/topology.py @@ -68,13 +68,18 @@ class Topology(object): get all data layer :return: """ - data_layers = set() + data_layers = dict() def find_data_layer(layer): if isinstance(layer, v2_layer.DataLayerV2): - data_layers.add(layer) - for parent_layer in layer.__parent_layers__.values(): - find_data_layer(parent_layer) + data_layers[layer.name] = layer + if not isinstance(layer, collections.Sequence): + for parent_layer in layer.__parent_layers__.values(): + find_data_layer(parent_layer) + else: + for each_l in layer: + for parent_layer in each_l.__parent_layers__.values(): + find_data_layer(parent_layer) for layer in self.layers: find_data_layer(layer) @@ -86,8 +91,12 @@ class Topology(object): get data_type from proto, such as: [('image', dense_vector(768)), ('label', integer_value(10))] """ - return [(data_layer.name, data_layer.type) - for data_layer in self.data_layers()] + + data_types_lists = [] + for each in self.__model_config__.input_layer_names: + data_layers = self.data_layers() + data_types_lists.append((each, data_layers[each].type)) + return data_types_lists def __check_layer_type__(layer): From 2c0342cbfe1176e371005dcefe94c1c3ca1adb98 Mon Sep 17 00:00:00 2001 From: "yi.wu" Date: Wed, 1 Mar 2017 09:36:40 +0800 Subject: [PATCH 031/186] Refine k8s doc update --- doc/howto/usage/k8s/k8s_basis_cn.md | 4 ++-- doc/howto/usage/k8s/k8s_distributed_cn.md | 4 ++-- doc/howto/usage/k8s/src/k8s-paddle-arch.png | Bin 530508 -> 513104 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/howto/usage/k8s/k8s_basis_cn.md b/doc/howto/usage/k8s/k8s_basis_cn.md index f42631ced0..6278dacb17 100644 --- a/doc/howto/usage/k8s/k8s_basis_cn.md +++ b/doc/howto/usage/k8s/k8s_basis_cn.md @@ -1,6 +1,6 @@ # Kubernetes 简介 -[*Kubernetes*](http://kubernetes.io/)是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。Kubernetes可以在物理机或虚拟机上运行,且支持部署到[AWS](http://kubernetes.io/docs/getting-started-guides/aws),[Azure](http://kubernetes.io/docs/getting-started-guides/azure/),[GCE](http://kubernetes.io/docs/getting-started-guides/gce)等多种公有云环境。介绍分布式训练之前,需要对[Kubernetes](http://kubernetes.io/)有一个基本的认识,下面先简要介绍一下本文用到的几个Kubernetes概念。 +[*Kubernetes*](http://kubernetes.io/)是Google开源的容器集群管理系统,其提供应用部署、维护、扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。Kubernetes可以在物理机或虚拟机上运行,且支持部署到[AWS](http://kubernetes.io/docs/getting-started-guides/aws),[Azure](http://kubernetes.io/docs/getting-started-guides/azure/),[GCE](http://kubernetes.io/docs/getting-started-guides/gce)等多种公有云环境。介绍分布式训练之前,需要对[Kubernetes](http://kubernetes.io/)有一个基本的认识,下面先简要介绍一下本文用到的几个Kubernetes概念。 - [*Node*](http://kubernetes.io/docs/admin/node/) 表示一个Kubernetes集群中的一个工作节点,这个节点可以是物理机或者虚拟机,Kubernetes集群就是由node节点与master节点组成的。 @@ -51,7 +51,7 @@ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s htt ## 配置kubectl访问你的kubernetes集群 -编辑`~/.kube/config`这个配置文件,修改`Master-IP`的地址。如果使用SSL认证,则需要配置`certificate-authority`和`users`中的用户证书。如果是使用非SSL方式访问(比如通过8080都安口),也可以去掉这些证书的配置。 +编辑`~/.kube/config`这个配置文件,修改`Master-IP`的地址。如果使用SSL认证,则需要配置`certificate-authority`和`users`中的用户证书。如果是使用非SSL方式访问(比如通过8080端口),也可以去掉这些证书的配置。 ``` apiVersion: v1 clusters: diff --git a/doc/howto/usage/k8s/k8s_distributed_cn.md b/doc/howto/usage/k8s/k8s_distributed_cn.md index cfc3086036..3a47a3832f 100644 --- a/doc/howto/usage/k8s/k8s_distributed_cn.md +++ b/doc/howto/usage/k8s/k8s_distributed_cn.md @@ -6,7 +6,7 @@ ## 整体方案 -在训练之前,用户将配置与训练数据切分好放在MFS目录中,训练时,程序从此目录拷贝文件到容器内进行训练,将结果保存到此目录里。整体的结构图如下: +在训练之前,用户将配置与训练数据切分好放在分布式文件系统预先分配好的目录中(不同的分布式文件系统,需要使用其制定的方式挂载后并导入数据),训练时,程序从此目录拷贝文件到容器内进行训练,将结果保存到此目录里。整体的结构图如下: ![paddle on kubernetes结构图](src/k8s-paddle-arch.png) @@ -28,7 +28,7 @@ PaddlePaddle镜像需要提供`paddle pserver`与`paddle train`进程的运行 - 拷贝训练文件到容器内 - 生成`paddle pserver`与`paddle train`进程的启动参数,并且启动训练 -因为官方镜像 `paddledev/paddle:cpu-latest` 内已经包含PaddlePaddle的执行程序但是还没上述功能,所以我们可以在这个基础上,添加启动脚本,制作新镜像来完成以上的工作。参考镜像的[*Dockerfile*]((https://github.com/PaddlePaddle/Paddle/blob/develop/doc/howto/usage/cluster/k8s/src/k8s_train/Dockerfile)。 +因为官方镜像 `paddledev/paddle:cpu-latest` 内已经包含PaddlePaddle的执行程序但是还没上述功能,所以我们可以在这个基础上,添加启动脚本,制作新镜像来完成以上的工作。参考镜像的[*Dockerfile*](https://github.com/PaddlePaddle/Paddle/blob/develop/doc/howto/usage/cluster/k8s/src/k8s_train/Dockerfile)。 ```bash $ cd doc/howto/usage/k8s/src/k8s_train diff --git a/doc/howto/usage/k8s/src/k8s-paddle-arch.png b/doc/howto/usage/k8s/src/k8s-paddle-arch.png index c41a62392978eb94ceeb0ff24f23964055f5e06c..2183a232ad402b76f82a67234a5c93e13ce97ac3 100644 GIT binary patch literal 513104 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