@@ -46,7 +46,7 @@ void TestSequencePoolingSum(const paddle::framework::LoD& lod) {
46
46
in_grad.set_lod (lod);
47
47
auto in_dims = paddle::framework::make_ddim (
48
48
{static_cast <int64_t >(lod[0 ].back ()), static_cast <int64_t >(second_dim)});
49
- in_grad.mutable_data <T>(in_dims, context. GetPlace ());
49
+ in_grad.mutable_data <T>(in_dims, context-> GetPlace ());
50
50
51
51
// check tensor contruction result
52
52
PADDLE_ENFORCE_EQ (in_grad.dims ().size (), out_grad.dims ().size ());
@@ -56,15 +56,15 @@ void TestSequencePoolingSum(const paddle::framework::LoD& lod) {
56
56
57
57
// call functor
58
58
paddle::operators::math::SequencePoolGradFunctor<DeviceContext, T>()(
59
- *context, " SUM" , out_grad, &in_grad)
59
+ *context, " SUM" , out_grad, &in_grad);
60
60
61
- EXPECT_EQ (in_grad.numel (), lod[0 ].back () * second_dim);
61
+ EXPECT_EQ (in_grad.numel (), lod[0 ].back () * second_dim);
62
62
EXPECT_EQ (in_grad.lod (), lod);
63
- for (int64_t i = 0 ; i < in_grad.lod ().size () - 1 ; ++i) {
64
- int64_t begin = in_grad.lod ()[i];
65
- int64_t end = in_grad.lod ()[i + 1 ];
66
- Tensor tmp = in_grad.Slice (begin, end);
67
- for (int64_t j = 0 ; j != tmp.numel (); j) {
63
+ for (int64_t i = 0 ; i < in_grad.lod ()[ 0 ] .size () - 1 ; ++i) {
64
+ int64_t begin = in_grad.lod ()[0 ][ i];
65
+ int64_t end = in_grad.lod ()[0 ][ i + 1 ];
66
+ paddle::framework:: Tensor tmp = in_grad.Slice (begin, end);
67
+ for (int64_t j = 0 ; j != tmp.numel () / second_dim; ++ j) {
68
68
for (int64_t m = 0 ; m != second_dim; ++m) {
69
69
EXPECT_EQ (tmp.data <T>()[m + j * second_dim],
70
70
out_grad.data <T>()[m + i * second_dim]);
@@ -78,28 +78,26 @@ void TestSequencePoolingSum(const paddle::framework::LoD& lod) {
78
78
79
79
TEST (SequencePoolingGrad, CPU_SUM) {
80
80
paddle::framework::LoD lod1;
81
- auto dim1 = std::vector<size_t >{0 , 10 };
82
- lod1.push_back (dim1);
81
+ lod1.push_back (std::vector<size_t >{0 , 10 });
83
82
TestSequencePoolingSum<paddle::platform::CPUDeviceContext,
84
- paddle::platform::CPUPlace, float >(dim, lod1, " SUM" ,
85
- 16 );
83
+ paddle::platform::CPUPlace, float >(lod1);
86
84
87
85
paddle::framework::LoD lod2;
88
86
lod2.push_back (std::vector<size_t >{0 , 2 , 7 , 10 });
89
87
TestSequencePoolingSum<paddle::platform::CPUDeviceContext,
90
- paddle::platform::CPUPlace, float >(lod2, " SUM " , 128 );
88
+ paddle::platform::CPUPlace, float >(lod2);
91
89
}
92
90
93
91
#ifdef PADDLE_WITH_CUDA
94
92
TEST (SequencePoolingGrad, CUDA_SUM) {
95
93
paddle::framework::LoD lod1;
96
94
lod1.push_back (std::vector<size_t >{0 , 10 });
97
95
TestSequencePoolingSum<paddle::platform::CUDADeviceContext,
98
- paddle::platform::CUDAPlace, float >(lod1, " SUM " , 16 );
96
+ paddle::platform::CUDAPlace, float >(lod1);
99
97
100
98
paddle::framework::LoD lod2;
101
99
lod2.push_back (std::vector<size_t >{0 , 2 , 7 , 10 });
102
100
TestSequencePoolingSum<paddle::platform::CUDADeviceContext,
103
- paddle::platform::CUDAPlace, float >(lod2, " SUM " , 128 );
101
+ paddle::platform::CUDAPlace, float >(lod2);
104
102
}
105
103
#endif
0 commit comments