GetShape
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
功能说明
获取描述张量形状的Shape对象。
函数原型
template <size_t... Is, typename ShapeType, typename StrideType>
__aicore__ inline constexpr auto GetShape(const Layout<ShapeType, StrideType>& layout)
参数说明
表 1 模板参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| Is... | 输入 | 可选。多级索引递归选取。 |
| ShapeType | 输入 | Layout的shape类型。 |
| StrideType | 输入 | Layout的stride类型。 |
表 2 参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| layout | 输入 | Layout对象。 |
返回值说明
描述张量形状的Shape对象。
约束说明
- layout必须是有效的Layout对象。
- 索引Is...必须在有效范围内。
调用示例
using namespace AscendC::Te;
auto layout = MakeNDLayout(128,128);
// 无模板实参时Is... 为空,等价于layout.Shape() 得到整个shape元组
auto shapeTuple = GetShape(layout);
// 带索引时等价于layout.Shape<0>(),按递归取shape子结构或某一维
auto s0 = GetShape<0>(layout);