mindspore.mint.gather ===================== .. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg :target: https://gitee.com/mindspore/mindspore/blob/master/docs/api/api_python/mint/mindspore.mint.func_gather.rst :alt: 查看源文件 .. py:function:: mindspore.mint.gather(input, dim, index) 返回输入Tensor在指定 `index` 索引上对应元素组成的切片。 .. math:: output[(i_0, i_1, ..., i_{dim}, i_{dim+1}, ..., i_n)] = input[(i_0, i_1, ..., index[(i_0, i_1, ..., i_{dim}, i_{dim+1}, ..., i_n)], i_{dim+1}, ..., i_n)] .. warning:: 在Ascend后端,以下场景将导致不可预测的行为: - 正向执行流程中,当 `index` 的取值不在范围 `[-input.shape[dim], input.shape[dim])` 内; - 反向执行流程中,当 `index` 的取值不在范围 `[0, input.shape[dim])` 内。 参数: - **input** (Tensor) - 待索引切片取值的原始Tensor。 - **dim** (int) - 指定要切片的维度索引。取值范围 `[-input.rank, input.rank)`。 - **index** (Tensor) - 指定原始Tensor中要切片的索引。数据类型必须是int32或int64。需要同时满足以下条件: - `index.rank == input.rank`; - 对于 `axis != dim` , `index.shape[axis] <= input.shape[axis]` ; - `index` 的取值在有效区间 `[-input.shape[dim], input.shape[dim])` ; 返回: Tensor,数据类型与 `input` 保持一致,shape与 `index` 保持一致。 异常: - **ValueError** - `input` 的shape取值非法。 - **ValueError** - `dim` 取值不在有效范围 `[-input.rank, input.rank)`。 - **ValueError** - `index` 的值不在有效范围。 - **TypeError** - `index` 的数据类型非法。