Plugins¶
Potc support¶
Potc is a package that can convert any object into executable source code.
For DI-treetensor, potc can support the source code transformation of treevalue objects
through the installation of additional plugins. So we can execute the following installation command
pip install DI-treetensor[potc]
After this installation, you will be able to directly convert tree-nested tensors to objects without any additional operations. Such as
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  | from potc import transvars import treetensor.torch as ttorch t_tensor = ttorch.randn({'a': (2, 3), 'b': (3, 4)}) t_i_tensor = ttorch.randint(-5, 10, {'a': (3, 4), 'x': {'b': (2, 3)}}) t_shape = t_i_tensor.shape if __name__ == '__main__': _code = transvars( { 't_tensor': t_tensor, 't_i_tensor': t_i_tensor, 't_shape': t_shape, }, reformat='pep8' ) print(_code)  | 
The output should be
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35  | import torch
from treetensor import Tensor
from treetensor.torch import Size
__all__ = ['t_i_tensor', 't_shape', 't_tensor']
t_i_tensor = Tensor({
    'x': {
        'b': torch.as_tensor([[4, 6, -2], [5, 2, 7]], dtype=torch.long)
    },
    'a':
    torch.as_tensor([[4, 1, -1, 0], [0, 2, 3, 8], [9, 5, 0, 4]],
                    dtype=torch.long)
})
t_shape = Size({'x': {'b': torch.Size([2, 3])}, 'a': torch.Size([3, 4])})
t_tensor = Tensor({
    'a':
    torch.as_tensor(
        [[1.6284724473953247, 0.3768380582332611, 0.6547043919563293],
         [-0.8493189215660095, 0.24233856797218323, -0.3979470729827881]],
        dtype=torch.float32),
    'b':
    torch.as_tensor([[
        0.1390693634748459, 2.363795042037964, -1.0959696769714355,
        -1.8152844905853271
    ],
                     [
                         -0.464792400598526, -0.10408748686313629,
                         0.3499223291873932, -0.19817695021629333
                     ],
                     [
                         3.5152814388275146, -2.1466362476348877,
                         -0.11760104447603226, -0.3095119893550873
                     ]],
                    dtype=torch.float32)
})
 | 
Also, you can use the following CLI command to get the same output results as above.
potc export -v 'test_simple.t_*'
For further information, you can refer to