|
|
|
@ -58,7 +58,8 @@ class TestLoDTensor(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
def test_create_lod_tensor(self):
|
|
|
|
|
# Create LoDTensor from a list
|
|
|
|
|
data = [[1, 2, 3], [3, 4]]
|
|
|
|
|
data = [[np.int64(1), np.int64(2), np.int64(3)],
|
|
|
|
|
[np.int64(3), np.int64(4)]]
|
|
|
|
|
wrong_recursive_seq_lens = [[2, 2]]
|
|
|
|
|
correct_recursive_seq_lens = [[3, 2]]
|
|
|
|
|
self.assertRaises(AssertionError, create_lod_tensor, data,
|
|
|
|
@ -67,13 +68,23 @@ class TestLoDTensor(unittest.TestCase):
|
|
|
|
|
fluid.CPUPlace())
|
|
|
|
|
self.assertEqual(tensor.recursive_sequence_lengths(),
|
|
|
|
|
correct_recursive_seq_lens)
|
|
|
|
|
self.assertEqual(tensor._dtype(), core.VarDesc.VarType.INT64)
|
|
|
|
|
self.assertEqual(tensor.shape(), [5, 1])
|
|
|
|
|
self.assertTrue(
|
|
|
|
|
np.array_equal(
|
|
|
|
|
np.array(tensor),
|
|
|
|
|
np.array([1, 2, 3, 3, 4]).reshape(tensor.shape()).astype(
|
|
|
|
|
'int64')))
|
|
|
|
|
|
|
|
|
|
# Create LoDTensor from numpy array
|
|
|
|
|
data = np.random.random([10, 1])
|
|
|
|
|
data = np.random.random([10, 1]).astype('float64')
|
|
|
|
|
recursive_seq_lens = [[2, 1], [3, 3, 4]]
|
|
|
|
|
tensor = create_lod_tensor(data, recursive_seq_lens, fluid.CPUPlace())
|
|
|
|
|
self.assertEqual(tensor.recursive_sequence_lengths(),
|
|
|
|
|
recursive_seq_lens)
|
|
|
|
|
self.assertEqual(tensor._dtype(), core.VarDesc.VarType.FP64)
|
|
|
|
|
self.assertEqual(tensor.shape(), [10, 1])
|
|
|
|
|
self.assertTrue(np.array_equal(np.array(tensor), data))
|
|
|
|
|
|
|
|
|
|
# Create LoDTensor from another LoDTensor, they are differnt instances
|
|
|
|
|
new_recursive_seq_lens = [[2, 2, 1], [1, 2, 2, 3, 2]]
|
|
|
|
|