diff --git a/paddle/gserver/layers/SliceProjection.cpp b/paddle/gserver/layers/SliceProjection.cpp index a361d19bde435cf407c0da3b96107927385c4976..267dd6154b1b21cc9b936384d438a2c3bdf0c246 100644 --- a/paddle/gserver/layers/SliceProjection.cpp +++ b/paddle/gserver/layers/SliceProjection.cpp @@ -87,7 +87,7 @@ void SliceProjection::backward(const UpdateCallback& callback) { size_t offset = 0; for (auto& slice : slices_) { auto slice_out = in_->grad->subColMatrix(slice.first, slice.second); - slice_out->addAtOffset(*out_->grad, config_.offset()); + slice_out->addAtOffset(*out_->grad, offset); offset += slice_out->getWidth(); } } diff --git a/paddle/gserver/tests/test_LayerGrad.cpp b/paddle/gserver/tests/test_LayerGrad.cpp index 00ca4982e9ab01e08e930ba08f5218a1c2dbbb81..8ce8600c6743779899b2685c1c12053922265411 100644 --- a/paddle/gserver/tests/test_LayerGrad.cpp +++ b/paddle/gserver/tests/test_LayerGrad.cpp @@ -167,7 +167,7 @@ TEST(Projection, slice) { testProjectionGrad(conf, INPUT_DATA, /* parameterSize */ 0, - /* batchSize */ 100, + /* batchSize */ 10, useGpu); } }