mindspore.hal.contiguous_tensors_handle.ContiguousTensorsHandle
- class mindspore.hal.contiguous_tensors_handle.ContiguousTensorsHandle(tensor_list, enable_mem_align=True)[源代码]
连续内存管理器。
- 参数:
tensor_list (list[Tensor],Tuple[Tensor]) - 需要申请连续内存的Tensor列表。
enable_mem_align (bool,可选) - 是否启用内存对齐功能。暂不支持False。默认值:
True
。
- 返回:
ContiguousTensorsHandle,一个连续内存管理器。
样例:
>>> import numpy as np >>> import mindspore as ms >>> from mindspore import Tensor >>> from mindspore.hal.contiguous_tensors_handle import ContiguousTensorsHandle >>> x = Tensor(np.array([1, 2, 3]).astype(np.float32)) >>> y = Tensor(np.array([4, 5, 6]).astype(np.float32)) >>> handle = ContiguousTensorsHandle([x, y], True) >>> print(handle[0].shape) [1] >>> print(handle[1: 3].asnumpy()) [2, 3]
- slice_by_tensor_index(start=None, end=None)[源代码]
返回根据tensor列表的index切片出的连续内存。
- 参数:
start (int, None) - 起始位置。默认值:
None
。end (int, None) - 截止位置。默认值:
None
。
- 返回:
Tensor,切分出来的Tensor。
- 异常:
TypeError - 参数 start,参数 end,不是一个
int
,也不是一个None
。ValueError - 参数 start,参数 end,为负数,或者超出list范围,或start >= end。
样例:
>>> import numpy as np >>> import mindspore as ms >>> from mindspore import Tensor >>> from mindspore.hal.contiguous_tensors_handle import ContiguousTensorsHandle >>> x = Tensor(np.array([1, 2, 3]).astype(np.float32)) >>> y = Tensor(np.array([4, 5, 6]).astype(np.float32)) >>> handle = ContiguousTensorsHandle([x, y], True) >>> print(output.slice_by_tensor_index(0, 1).asnumpy()) [1, 2, 3]