グループレイアウト#

group ov_layout_cpp_api

ov::Model の入力または出力のレイアウトを操作および構成する OpenVINO レイアウト API

関数

OPENVINO_API bool has_batch (const Layout &layout)

レイアウトに ‘batch’ 次元があるか確認します。

OPENVINO_API std::int64_t batch_idx (const Layout &layout)

‘batch’ 次元のインデックスを返します。

スロー:

ov::AssertFailure – 次元が存在しない場合。

OPENVINO_API bool has_channels (const Layout &layout)

レイアウトに ‘channels’ 次元があるか確認します。

スロー:

ov::AssertFailure – 次元が存在しない場合。

OPENVINO_API std::int64_t channels_idx (const Layout &layout)

‘channels’’ 次元のインデックスを返します。

スロー:

ov::AssertFailure – 次元が存在しない場合。

OPENVINO_API bool has_depth (const Layout &layout)

レイアウトに ‘depth’ 次元があるか確認します。

OPENVINO_API std::int64_t depth_idx (const Layout &layout)

‘depth’ 次元のインデックスを返します。

スロー:

ov::AssertFailure – 次元が存在しない場合。

OPENVINO_API bool has_height (const Layout &layout)

レイアウトに ‘height’ 次元があるか確認します。

OPENVINO_API std::int64_t height_idx (const Layout &layout)

‘height’ 次元のインデックスを返します。

スロー:

ov::AssertFailure – 次元が存在しない場合。

OPENVINO_API bool has_width (const Layout &layout)

レイアウトに ‘width’ 次元があるか確認します。

OPENVINO_API std::int64_t width_idx (const Layout &layout)

‘width’ 次元のインデックスを返します。

スロー:

ov::AssertFailure – 次元が存在しない場合。

OPENVINO_API void set_layout (ov::Output< ov::Node > output, const ov::Layout &layout)

ポートの Layout を設定します。

スロー:

ov::Exception – ポートが結果またはパラメーターに接続されていない場合

OPENVINO_API ov::Layout get_layout (const ov::Output< ov::Node > &output)

ポートの Layout を取得します。

戻り値:

ポートからのレイアウト、それ以外の場合は空のレイアウト

OPENVINO_API ov::Layout get_layout (const ov::Output< const ov::Node > &output)

ポートの Layout を取得します。

戻り値:

ポートからのレイアウト、それ以外の場合は空のレイアウト

class Layout#
#include <layout.hpp>

ov::Layout はテンソルの次元/軸のテキスト情報を表します。例えば、レイアウト NCHW は、4D テンソル {-1, 3, 480, 640} が次のようになることを意味します:

  • 0: N = -1: バッチ次元は動的

  • 1: C = 3: チャネル数は ‘3’

  • 2: H = 480: 画像の髙さは 480

  • 3: W = 640: 画像の幅は 640

例: ov::Layout は以下に対して指定できます:

  • 前処理用途。以下に例を示します。

    • 正規化 (平均/スケール) を適用するには、通常、レイアウトで ‘C’ 次元を設定する必要があります。

    • 画像を指定する幅/高さにサイズ変更するには、レイアウトで ‘H’ と ‘W’ の次元を設定する必要があります。

    • 画像をトランスポーズ (転置) するには、ソースとターゲットのレイアウトを設定できます (ov::preprocess::PreProcessSteps::convert_layout を参照)

  • モデルのバッチを設定/取得するには (ov::get_batch/ov::set_batch を参照)、適切な入力レイアウトで ‘N’ 次元を指定する必要があります。

ov::layout のさまざまな追加ヘルパー関数については、ov::Layout 名前空間も参照してください。

パブリック関数

Layout()#

Layout 情報のない動的レイアウトを構築します。

inline Layout(const char *layoutStr)#

文字列表現に基づいて、静的または動的レイアウト情報を使用して Layout を構築します。

パラメーター:

layoutStrLayout の構築に使用される文字列。文字列表現は次の形式になります:

  • 次元の順序と意味を定義できる “NCHW”

  • 部分的なレイアウトの特殊化:

    • ”NC?” は 3 次元レイアウトを定義します。最初の 2 つは NC、3 つ目は定義されていません

    • ”N…C” は、最初の次元が N、最後の次元が C である動的ランクのレイアウトを定義します

    • ”NC…” は、最初の 2 つが NC で、その他は定義されていない動的ランクのレイアウトを定義します

  • 次元順序のみ “adbc” (0312)

  • 高度な構文は、“[N,C,H,W,…,CustomName]” のような複数文字の名前に使用できます。

bool operator==(const Layout &rhs) const#

比較演算子 (等しい)

bool operator!=(const Layout &rhs) const#

比較演算子 (等しくない)

bool has_name(const std::string &dimensionName) const#

指定された名前の次元がレイアウト内にあるか確認します。

戻り値:

レイアウトに指定された名前の次元のインデックスに関する情報がある場合は true

std::int64_t get_index_by_name(const std::string &dimensionName) const#

指定された名前の次元のインデックスを取得します。

スロー

ov::AssertFailure – レイアウト内に次元名が見つからない場合

戻り値:

指定された次元名のインデックス

std::string to_string() const#

Layout の文字列表現。

inline bool empty() const#

レイアウトに情報がない場合、つまり Layout() と等しい場合は ‘true’ を返します。

パブリック静的関数

static Layout scalar()#

スカラーを表すレイアウトを構築します。