Skip to content

Commit 62047d3

Browse files
author
Zhang Ting
authored
[cherry-pick] set int64 for Output(Length) of sequence_pad, test=develop (#24161) (#24658)
1 parent 0650ae0 commit 62047d3

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

python/paddle/fluid/layers/sequence_lod.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from ..framework import Variable, in_dygraph_mode
1919
from ..layer_helper import LayerHelper
2020
from ..data_feeder import check_variable_and_dtype, check_type, check_dtype
21+
from ..core import VarDesc
2122

2223
__all__ = [
2324
'sequence_conv',
@@ -963,7 +964,7 @@ def sequence_pad(x, pad_value, maxlen=None, name=None):
963964
'fluid.layers.sequence_pad')
964965
dtype = helper.input_dtype()
965966
out = helper.create_variable_for_type_inference(dtype)
966-
length = helper.create_variable_for_type_inference(dtype)
967+
length = helper.create_variable_for_type_inference(VarDesc.VarType.INT64)
967968

968969
pad_value.stop_gradient = True
969970
length.stop_gradient = True

python/paddle/fluid/tests/unittests/sequence/test_sequence_pad_op.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from op_test import OpTest
2020

2121
import paddle.fluid as fluid
22+
import paddle.fluid.core as core
2223

2324

2425
class TestSequencePadOp(OpTest):
@@ -173,6 +174,13 @@ def test_dtype():
173174

174175
self.assertRaises(TypeError, test_dtype)
175176

177+
def test_length_dtype(self):
178+
x = fluid.data(name='x', shape=[10, 5], dtype='float32', lod_level=1)
179+
pad_value = fluid.layers.assign(input=np.array([0.0], dtype=np.float32))
180+
out, length = fluid.layers.sequence_pad(x=x, pad_value=pad_value)
181+
# check if the dtype of length is int64 in compile time
182+
self.assertEqual(length.dtype, core.VarDesc.VarType.INT64)
183+
176184

177185
if __name__ == '__main__':
178186
unittest.main()

0 commit comments

Comments
 (0)