diff --git a/paddle/operators/pool_op.h b/paddle/operators/pool_op.h index c3d82ecbdeb412f0234fcddc27361d79b58c7122..d6ba5e298a4939e31fde71bf5bf8484640a7ceaf 100644 --- a/paddle/operators/pool_op.h +++ b/paddle/operators/pool_op.h @@ -139,10 +139,8 @@ class PoolGradKernel : public framework::OpKernel { auto& dev_ctx = context.template device_context(); if (in_x_grad) { in_x_grad->mutable_data(context.GetPlace()); - auto temp = framework::EigenVector::Flatten(*in_x_grad); - temp.device( - *context.template device_context().eigen_device()) = - temp.constant(static_cast(0)); + paddle::operators::math::SetConstant set_constant; + set_constant(dev_ctx, in_x_grad, 0.0); switch (ksize.size()) { case 2: { diff --git a/python/paddle/v2/fluid/distribute_transpiler.py b/python/paddle/v2/fluid/distribute_transpiler.py index 934eba73b82dbfa93c210f7675793417c10a04c3..908810c8be1d262c459825a49a61c3b3d826c1d0 100644 --- a/python/paddle/v2/fluid/distribute_transpiler.py +++ b/python/paddle/v2/fluid/distribute_transpiler.py @@ -225,7 +225,7 @@ class DistributeTranspiler: if len(splited_vars) <= 1: continue orig_var = program.global_block().vars[varname] - if orig_var == core.VarDesc.VarType.SELECTED_ROWS: + if orig_var.type == core.VarDesc.VarType.SELECTED_ROWS: height_sections = [] for v in splited_vars: height_sections.append(v.shape[0]) @@ -234,7 +234,7 @@ class DistributeTranspiler: inputs={"X": orig_var}, outputs={"Out": splited_vars}, attrs={"height_sections": height_sections}) - elif orig_var == core.VarDesc.VarType.LOD_TENSOR: + elif orig_var.type == core.VarDesc.VarType.LOD_TENSOR: sections = [] for v in splited_vars: sections.append(v.shape[0]) diff --git a/python/paddle/v2/fluid/tests/book/test_machine_translation_encoder_context.py b/python/paddle/v2/fluid/tests/book/test_rnn_encoder_decoder.py similarity index 95% rename from python/paddle/v2/fluid/tests/book/test_machine_translation_encoder_context.py rename to python/paddle/v2/fluid/tests/book/test_rnn_encoder_decoder.py index 53ed912c6fda67953848c513bc8548549433017d..3fd3dbaf779c25aac29b6a3b085d1a08a7ccd5b0 100644 --- a/python/paddle/v2/fluid/tests/book/test_machine_translation_encoder_context.py +++ b/python/paddle/v2/fluid/tests/book/test_rnn_encoder_decoder.py @@ -118,12 +118,13 @@ def seq_to_seq_net(): src_forward, src_backward = bi_lstm_encoder( input_seq=src_embedding, hidden_size=encoder_size) - encoded_vector = fluid.layers.concat( - input=[src_forward, src_backward], axis=1) + src_forward_last = fluid.layers.sequence_last_step(input=src_forward) + src_backward_first = fluid.layers.sequence_first_step(input=src_backward) - enc_vec_last = fluid.layers.sequence_last_step(input=encoded_vector) + encoded_vector = fluid.layers.concat( + input=[src_forward_last, src_backward_first], axis=1) - decoder_boot = fluid.layers.fc(input=enc_vec_last, + decoder_boot = fluid.layers.fc(input=encoded_vector, size=decoder_size, bias_attr=False, act='tanh') @@ -137,7 +138,7 @@ def seq_to_seq_net(): dtype='float32') prediction = lstm_decoder_without_attention(trg_embedding, decoder_boot, - enc_vec_last, decoder_size) + encoded_vector, decoder_size) label = fluid.layers.data( name='label_sequence', shape=[1], dtype='int64', lod_level=1) cost = fluid.layers.cross_entropy(input=prediction, label=label)