mindspore.enable_dynamic

View Source On AtomGit
mindspore.enable_dynamic(**kwargs)[source]

Use to specify whether the shape of the parameter is dynamic shape or dynamic rank.

Note

  • It needs to be used in conjunction with the JIT interface. Without using the JIT decorator, the dynamic shape and dynamic rank functions will not be enabled.

  • In the scenario where both set_context(mode=GRAPH_MODE) and nn.Cell are set simultaneously, use enabled_dynamic to report an error.

Parameters

**kwargs (dict[str, Union[Tensor, tuple[Tensor], list[Tensor]]]) – The input types are Tensor, tuple[Tensor] and list[Tensor]. If one or more dimensions in the shape of the parameter need to be specified as dynamic shapes, the corresponding dimensions in the shape can be set to None. If the shape that needs to generate specified parameters is dynamic rank, the shape can be set to None.

Returns

Function, decorator function which is used to specify the dynamic shape information of the parameters for the decorated function.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> import mindspore as ms
>>> from mindspore import Tensor
>>> from mindspore import enable_dynamic
>>> from mindspore import jit
...
>>> x = Tensor(np.random.randn(2, 3), ms.float32)
>>> y = Tensor(np.random.randn(2, 3), ms.float32)
...
>>> # Specify parameter y as dynamic shape
>>> @enable_dynamic(y=Tensor(shape=None, dtype=ms.float32))
>>> @jit
>>> def func(x, y):
...     return x + 1, y + 1
...
>>> out = func(x, y)