Skip to content

Commit 9540ae3

Browse files
committed
Fix
1 parent fefced8 commit 9540ae3

File tree

3 files changed

+0
-207
lines changed

3 files changed

+0
-207
lines changed

paddle/fluid/pybind/tensor.cc

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -663,33 +663,6 @@ void BindTensor(pybind11::module &m) { // NOLINT
663663
>>> print(t.recursive_sequence_lengths())
664664
[[2, 3]]
665665
)DOC")
666-
.def(
667-
"has_valid_recursive_sequence_lengths",
668-
[](phi::DenseTensor &self) -> bool {
669-
// Check that the lod info is valid and match the outermost
670-
// dimension of the Tensor data
671-
return CheckLoD(
672-
self.lod(),
673-
static_cast<int>(common::vectorize(self.dims()).front()));
674-
},
675-
R"DOC(
676-
Check whether the LoD of the Tensor is valid.
677-
678-
Returns:
679-
bool: Whether the LoD is valid.
680-
681-
Examples:
682-
.. code-block:: python
683-
684-
>>> import paddle
685-
>>> import numpy as np
686-
687-
>>> t = paddle.framework.core.Tensor()
688-
>>> t.set(np.ndarray([5, 30]), paddle.CPUPlace())
689-
>>> t.set_recursive_sequence_lengths([[2, 3]])
690-
>>> print(t.has_valid_recursive_sequence_lengths())
691-
True
692-
)DOC")
693666
.def("_as_type",
694667
[](const phi::DenseTensor &self,
695668
paddle::framework::proto::VarType::Type type) {

python/paddle/base/lod_tensor.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,6 @@ def create_lod_tensor(data, recursive_seq_lens, place):
102102
tensor = core.DenseTensor()
103103
tensor.set(data, place)
104104
tensor.set_recursive_sequence_lengths(recursive_seq_lens)
105-
assert (
106-
tensor.has_valid_recursive_sequence_lengths()
107-
), "the provided lod info is invalid"
108105
return tensor
109106
else:
110107
raise TypeError(

test/legacy_test/test_lod_tensor.py

Lines changed: 0 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -14,182 +14,5 @@
1414

1515
import unittest
1616

17-
import numpy as np
18-
19-
import paddle
20-
from paddle import base
21-
from paddle.base import core
22-
from paddle.base.lod_tensor import (
23-
create_lod_tensor,
24-
create_random_int_lodtensor,
25-
)
26-
27-
28-
class TestLoDTensor(unittest.TestCase):
29-
def test_pybind_recursive_seq_lens(self):
30-
tensor = base.DenseTensor()
31-
recursive_seq_lens = []
32-
tensor.set_recursive_sequence_lengths(recursive_seq_lens)
33-
recursive_seq_lens = [[], [1], [3]]
34-
self.assertRaises(
35-
Exception, tensor.set_recursive_sequence_lengths, recursive_seq_lens
36-
)
37-
recursive_seq_lens = [[0], [2], [3]]
38-
self.assertRaises(
39-
Exception, tensor.set_recursive_sequence_lengths, recursive_seq_lens
40-
)
41-
42-
recursive_seq_lens = [[1, 2, 3]]
43-
tensor.set_recursive_sequence_lengths(recursive_seq_lens)
44-
self.assertEqual(
45-
tensor.recursive_sequence_lengths(), recursive_seq_lens
46-
)
47-
tensor.set(np.random.random([6, 1]), base.CPUPlace())
48-
self.assertTrue(tensor.has_valid_recursive_sequence_lengths())
49-
tensor.set(np.random.random([9, 1]), base.CPUPlace())
50-
self.assertFalse(tensor.has_valid_recursive_sequence_lengths())
51-
52-
# Each level's sum should be equal to the number of items in the next level
53-
# Moreover, last level's sum should be equal to the tensor height
54-
recursive_seq_lens = [[2, 3], [1, 3, 1, 2, 2]]
55-
tensor.set_recursive_sequence_lengths(recursive_seq_lens)
56-
self.assertEqual(
57-
tensor.recursive_sequence_lengths(), recursive_seq_lens
58-
)
59-
tensor.set(np.random.random([8, 1]), base.CPUPlace())
60-
self.assertFalse(tensor.has_valid_recursive_sequence_lengths())
61-
recursive_seq_lens = [[2, 3], [1, 3, 1, 2, 1]]
62-
tensor.set_recursive_sequence_lengths(recursive_seq_lens)
63-
self.assertTrue(tensor.has_valid_recursive_sequence_lengths())
64-
tensor.set(np.random.random([9, 1]), base.CPUPlace())
65-
self.assertFalse(tensor.has_valid_recursive_sequence_lengths())
66-
67-
def test_create_lod_tensor(self):
68-
# Create DenseTensor from a list
69-
data = [
70-
[np.int64(1), np.int64(2), np.int64(3)],
71-
[np.int64(3), np.int64(4)],
72-
]
73-
wrong_recursive_seq_lens = [[2, 2]]
74-
correct_recursive_seq_lens = [[3, 2]]
75-
self.assertRaises(
76-
AssertionError,
77-
create_lod_tensor,
78-
data,
79-
wrong_recursive_seq_lens,
80-
base.CPUPlace(),
81-
)
82-
tensor = create_lod_tensor(
83-
data, correct_recursive_seq_lens, base.CPUPlace()
84-
)
85-
self.assertEqual(
86-
tensor.recursive_sequence_lengths(), correct_recursive_seq_lens
87-
)
88-
self.assertEqual(
89-
tensor._dtype(), paddle.base.core.VarDesc.VarType.INT64
90-
)
91-
self.assertEqual(tensor.shape(), [5, 1])
92-
np.testing.assert_array_equal(
93-
np.array(tensor),
94-
np.array([1, 2, 3, 3, 4]).reshape(tensor.shape()).astype('int64'),
95-
)
96-
97-
# Create DenseTensor from numpy array
98-
data = np.random.random([10, 1]).astype('float64')
99-
recursive_seq_lens = [[2, 1], [3, 3, 4]]
100-
tensor = create_lod_tensor(data, recursive_seq_lens, base.CPUPlace())
101-
self.assertEqual(
102-
tensor.recursive_sequence_lengths(), recursive_seq_lens
103-
)
104-
self.assertEqual(tensor._dtype(), paddle.base.core.VarDesc.VarType.FP64)
105-
self.assertEqual(tensor.shape(), [10, 1])
106-
np.testing.assert_array_equal(np.array(tensor), data)
107-
108-
# Create DenseTensor from another DenseTensor, they are differnt instances
109-
new_recursive_seq_lens = [[2, 2, 1], [1, 2, 2, 3, 2]]
110-
new_tensor = create_lod_tensor(
111-
tensor, new_recursive_seq_lens, base.CPUPlace()
112-
)
113-
self.assertEqual(
114-
tensor.recursive_sequence_lengths(), recursive_seq_lens
115-
)
116-
self.assertEqual(
117-
new_tensor.recursive_sequence_lengths(), new_recursive_seq_lens
118-
)
119-
120-
def test_create_random_int_lodtensor(self):
121-
# The shape of a word, commonly used in speech and NLP problem, is [1]
122-
shape = [1]
123-
recursive_seq_lens = [[2, 3, 5]]
124-
dict_size = 10000
125-
low = 0
126-
high = dict_size - 1
127-
tensor = create_random_int_lodtensor(
128-
recursive_seq_lens, shape, base.CPUPlace(), low, high
129-
)
130-
self.assertEqual(
131-
tensor.recursive_sequence_lengths(), recursive_seq_lens
132-
)
133-
self.assertEqual(tensor.shape(), [10, 1])
134-
135-
def test_print_lodtensor(self):
136-
shape = [1]
137-
recursive_seq_lens = [[2, 3, 5]]
138-
dict_size = 100
139-
low = 0
140-
high = dict_size - 1
141-
tensor = create_random_int_lodtensor(
142-
recursive_seq_lens, shape, base.CPUPlace(), low, high
143-
)
144-
print(tensor)
145-
self.assertTrue(isinstance(str(tensor), str))
146-
147-
if core.is_compiled_with_cuda():
148-
gtensor = create_random_int_lodtensor(
149-
recursive_seq_lens, shape, base.CUDAPlace(0), low, high
150-
)
151-
print(gtensor)
152-
self.assertTrue(isinstance(str(gtensor), str))
153-
154-
def test_dlpack_support(self):
155-
tensor = base.create_lod_tensor(
156-
np.array([[1], [2], [3], [4]]).astype('int'),
157-
[[1, 3]],
158-
base.CPUPlace(),
159-
)
160-
dltensor = tensor._to_dlpack()
161-
tensor_from_dlpack = base.core.from_dlpack(dltensor)
162-
self.assertTrue(isinstance(tensor_from_dlpack, base.core.DenseTensor))
163-
np.testing.assert_array_equal(
164-
np.array(tensor_from_dlpack),
165-
np.array([[1], [2], [3], [4]]).astype('int'),
166-
)
167-
# when build with cuda
168-
if core.is_compiled_with_cuda():
169-
gtensor = base.create_lod_tensor(
170-
np.array([[1], [2], [3], [4]]).astype('int'),
171-
[[1, 3]],
172-
base.CUDAPlace(0),
173-
)
174-
gdltensor = gtensor._to_dlpack()
175-
gtensor_from_dlpack = base.core.from_dlpack(gdltensor)
176-
self.assertTrue(
177-
isinstance(gtensor_from_dlpack, base.core.DenseTensor)
178-
)
179-
np.testing.assert_array_equal(
180-
np.array(gtensor_from_dlpack),
181-
np.array([[1], [2], [3], [4]]).astype('int'),
182-
)
183-
184-
def test_as_type(self):
185-
tensor = base.create_lod_tensor(
186-
np.array([[1], [2], [3], [4]]).astype('int'),
187-
[[1, 3]],
188-
base.CPUPlace(),
189-
)
190-
fp32_tensor = tensor._as_type(paddle.base.core.VarDesc.VarType.FP32)
191-
print(fp32_tensor)
192-
193-
19417
if __name__ == '__main__':
19518
unittest.main()

0 commit comments

Comments
 (0)