Skip to content
版 本

MakeShape

产 品 支 持 情 况

产 品是 否 支 持
Ascend 950PR/Ascend 950DT

功 能 说 明

构 造Shape对 象,用 于 描 述 数 据 的 逻 辑 形 状。支 持 传 入 多 个 维 度 值,也 支 持 传 入 嵌 套 的Shape子 结 构 以 构 造 层 次 化Shape。

函 数 原 型

C++
template <typename... Ts>
__aicore__ inline constexpr Shape<Ts...> MakeShape(const Ts&... t)

参 数 说 明

表 1 模 板 参 数 说 明

参 数 名输 入/输 出描 述
Ts...输 入Shape各 元 素 的 类 型,可 以 是 整 型 变 量、Std::Int整 型 常 量,或 嵌 套 的Shape子 结 构 类 型。

表 2 参 数 说 明

参 数 名输 入/输 出描 述
t输 入Shape的 各 维 度 取 值 或 子 结 构,可 变 参 数。

返 回 值 说 明

返 回Shape<Ts...>对 象。

约 束 说 明

  • 输 入 参 数 不 可 为 空
  • 输 入 的 参 数 为 正 整 数。
  • 支 持 的 数 据 类 型 包 括:size_t、int等 整 数 类 型 或 者Std::Int类 型。

调 用 示 例

C++
using namespace AscendC::Te;

// 构 造 普 通Shape
auto shape = MakeShape(10, 20, 30);

// 构 造 层 次 化Shape
auto fractalShape = MakeShape(MakeShape(16, 8), MakeShape(32, 4));

auto dim0 = Std::get<0>(shape);                // dim0 = 10
auto innerRow = Std::get<0>(Std::get<0>(fractalShape)); // innerRow = 16

免 责 声 明:本 站 内 容 由 asc-devkit 仓 master 分 支 自 动 编 译 生 成,属 于 持 续 开 发 版 本,可 能 存 在 缺 陷,仅 供 预 览 与 参 考。如 需 稳 定 及 商 用 资 料,请 查 阅 官 方 昇 腾 社 区