グループ基本#

group ov_model_cpp_api

ov::Model、動的および静的な形状、タイプを操作するための OpenVINO コア C++ API

関数

template<typename ForwardIt>
size_t shape_size(ForwardIt start_dim, const ForwardIt end_dim)#

形状の次元のサブセット内の要素の数。範囲 [start_dim;end_dim) の次元の積を返します。

template<typename SHAPE_TYPE>
size_t shape_size(const SHAPE_TYPE &shape)#

形状にまたがる要素の数。

class Dimension#
#include <dimension.hpp>

形状または形状のようなオブジェクト内の、動的 (実行時まで未確定) な次元を表すクラス。

静的次元は、value_type から暗黙的に変換される場合があります。動的次元は、Dimension() または Dimension::dynamic() を使用して構築されます。

パブリック関数

Dimension(value_type dimension)#

静的次元を構築します。

パラメーター:

dimension – 次元の値。

Dimension(value_type min_dimension, value_type max_dimension)#

制限範囲を持つ動的次元を構築します。

パラメーター:
  • min_dimension – 次元の包括的な下限。

  • max_dimension – 次元の包括的な上限。

Dimension(const std::string &str)#

文字列から次元を構築します。

パラメーター:

str – 次元に解析する文字列。

Dimension() = default#

範囲 [0, …] の動的次元を構築します。

inline bool is_static() const#

この次元が静的かどうかを確認します。

戻り値:

次元が静的である場合は true、そうでない場合は false

inline bool is_dynamic() const#

この次元が動的かどうかを確認します。

戻り値:

次元が静的である場合は false、そうでない場合は true

value_type get_length() const#

この次元を value_type に変換します。この次元は静的かつ負でない値である必要があります。

スロー

std::invalid_argument – この次元が動的または負の場合。

inline const Interval &get_interval() const#

有効な長さの間隔を返します。

bool same_scheme(const Dimension &dim) const#

この次元が引数と同じスキーム (両方とも動的、または等しい) を表しているかどうかを確認します。

パラメーター:

dim – この次元と比較する他の次元。

戻り値:

この次元と dim が両方とも動的である場合、または両方とも静的で等しい場合は true、それ以外の場合は false

bool compatible(const Dimension &d) const#

この次元が引数次元と結合できるかどうか確認します。

2 つの次元を結合できる場合、それらの次元は互換性があると見なされます。(Dimension::merge を参照してください。)

パラメーター:

d – この次元と比較する次元。

戻り値:

この次元が d と互換性がある場合は true、それ以外の場合は false

bool relaxes(const Dimension &d) const#

この次元が緩和論証であるかどうかを確認します。

次元 d1d2 が静的かつ等しい場合、または d1 が動的である場合、次元 d1d2 を緩和します (または緩和されます)。

d1.relaxes(d2)d2.refines(d1) と同等です。

パラメーター:

d – この次元と比較する次元。

戻り値:

この次元が d を緩和する場合は true、そうでない場合は false

bool refines(const Dimension &d) const#

この次元が洗練論証であるかどうかを確認します。

次元 d1d2 が静的かつ等しい場合、または d2 が動的である場合、次元 d2d1 を緩和します (または緩和されます)。

d1.refines(d2)d2.relaxes(d1) と同等です。

パラメーター:

d – この次元と比較する次元。

戻り値:

この次元が d を緩和する場合は true、そうでない場合は false

Dimension operator+(const Dimension &dim) const#

Dimensionの加算演算子。

パラメーター:

dim – 加算の右オペランド。

戻り値:

入力を囲む最小の間隔次元

Dimension operator-(const Dimension &dim) const#

Dimensionの減算演算子。

パラメーター:

dim – 減算の右オペランド。

戻り値:

入力を囲む最小の間隔次元

Dimension operator/(const value_type divisor) const#

Dimensionを value_type パラメーターで割った除算演算子

パラメーター:

divisor – 除算の右オペランド。

戻り値:

入力を囲む最小の間隔次元

inline Dimension &operator/=(const value_type divisor)#

Dimensionの分割演算子。

パラメーター:

divisor – 乗算の右オペランド。

戻り値:

*this を値 *this * dim に更新した後の *this への参照。

Dimension operator*(const Dimension &dim) const#

Dimensionの乗算演算子。

パラメーター:

dim – 乗算の右オペランド。

戻り値:

すべての “produces” を含む最小の間隔。この間隔または dim のいずれかの長さが 0 の場合は 0、どちらかが無制限の場合は無制限、それ以外の場合は長さの積になります。

inline Dimension &operator+=(const Dimension &dim)#

Dimensionのアドイン演算子。

パラメーター:

dim – 加算の右オペランド。

戻り値:

*this を値 *this + dim に更新した後の *this への参照。

inline Dimension &operator*=(const Dimension &dim)#

Dimensionの乗算演算子。

パラメーター:

dim – 乗算の右オペランド。

戻り値:

*this を値 *this * dim に更新した後の *this への参照。

Dimension operator&(const Dimension &dim) const#

次元の交差。

Dimension &operator&=(const Dimension &dim)#

次元の交差。

std::string to_string() const#

Dimension の文字列表現。

bool has_symbol() const#

Dimensionに意味のあるシンボルが設定されているかどうかを示します。

std::shared_ptr<ov::Symbol> get_symbol() const#

Dimensionのシンボルを返します。

void set_symbol(const std::shared_ptr<ov::Symbol> &s)#

Dimensionのシンボルをセットます。

パブリック静的関数

static bool merge(Dimension &dst, const Dimension &d1, const Dimension &d2)#

2 つのDimensionオブジェクトを結合してみます。

  • d1 が動的である場合、d2dst に書き込み、true を返します。

  • d2 が動的である場合、d1dst に書き込み、true を返します。

  • d1d2 が静的で等しい場合は、d1dst に書き込み、true を返します。

  • d1d2 が静的で等しくない場合は、dst は変更されず、false を返します。

パラメーター:
  • dst[out] 結合されたDimensionを書き込むための参照。

  • d1 – 結合する最初の次元。

  • d2 – 結合する 2 番目の次元。

戻り値:

結合が成功した場合は true、それ以外の場合は false を返します。

static bool broadcast_merge(Dimension &dst, const Dimension &d1, const Dimension &d2)#

単位サイズの次元を非単位サイズの次元に暗黙的にブロードキャストして、2 つのDimensionオブジェクトをマージしてみます。

static inline Dimension dynamic()#

動的次元を作成します。

戻り値:

動的次元。

Friends

inline friend void swap(Dimension &a, Dimension &b)#

次元を入れ代えます。

class Extension#
#include <extension.hpp>

このクラスは、OpenVINO 拡張機能の基本インターフェイスを提供します。

以下でサブクラス化されます: ov::BaseOpExtensionov::frontend::ConversionExtensionBaseov::frontend::DecoderTransformationExtensionov::frontend::ProgressReporterExtensionov::frontend::TelemetryExtension

class Model : public std::enable_shared_from_this<Model>#
#include <model.hpp>

ユーザー定義モデル。

パブリック関数

explicit Model(const ov::OutputVector &results, const std::string &name = "")#

モデルを構築します。結果からグラフをトラバースすることで、パラメーターと変数のリストが自動的に生成されます。

Model(const ov::OutputVector &results, const ov::SinkVector &sinks, const std::string &name = "")#

モデルを構築します。結果とシンクからグラフをトラバースすることで、パラメーターと変数のリストが自動的に生成されます。

size_t get_output_size() const#

このモデルの出力数を返します。

std::shared_ptr<ov::Node> get_output_op(size_t i) const#

出力 i を生成する op を返します。

std::shared_ptr<ov::Model> clone() const#

元のモデルをローンします。

std::vector<ov::Output<ov::Node>> outputs()#

モデルの出力。

std::vector<ov::Output<ov::Node>> inputs()#

モデルの入力

const ov::element::Type &get_output_element_type(size_t i) const#

出力 i の要素タイプを返します。

const Shape &get_output_shape(size_t i) const#

要素 i の形状を返します。

const PartialShape &get_output_partial_shape(size_t i) const#

要素 i の部分形状を返します。

std::shared_ptr<ov::Node> get_result() const#

結果が 1 つであることを確認して返します。

const std::string &get_name() const#

モデルの一意な名前を取得します。

戻り値:

モデルの一意な名前への const 参照。

void set_friendly_name(const std::string &name)#

モデルのフレンドリー名を設定します。これはモデルの一意な名前を上書きせず、get_friendly_name() を介して取得されます。主にデバッグに使用されます。

パラメーター:

name – 設定するフレンドリー名

const std::string &get_friendly_name() const#

モデルのフレンドリー名を取得します。set_friendly_name でフレンドリー名が設定されていない場合は、モデルの一意な名前が返されます。

戻り値:

モデルのフレンドリー名への const 参照。

size_t get_graph_size() const#

グラフ内のすべてのノードサイズとすべての定数データサイズの合計を返します。これは、グラフの相対的なサイズを比較する以外にはほとんど価値がなく、グラフの実際のメモリー消費量とは見なされません。

bool is_dynamic() const#

モデルで定義された操作のいずれかに部分的な形状が含まれている場合は true を返します。

void replace_parameter(size_t parameter_index, const std::shared_ptr<ov::op::v0::Parameter> &parameter)#

モデルの parameter_index パラメーターを parameter に置き換えます。

Parameter_index 番目のパラメーターのすべてのユーザーは parameter にリダイレクトされ、モデル・パラメーター・リスト内の parameter_index 番目のエントリーは parameter に置き換えられます。

パラメーター:
  • parameter_index – 置き換えるパラメーターのインデックス。

  • parameterparameter_index 番目のパラメーターを置き換えるパラメーター。

inline const ov::ParameterVector &get_parameters() const#

モデルのパラメーターを返します。

inline const ov::ResultVector &get_results() const#

モデル出力のリストを返します。

int64_t get_parameter_index(const std::shared_ptr<ov::op::v0::Parameter> &parameter) const#

パラメーターのインデックス、または -1。

int64_t get_result_index(const ov::Output<ov::Node> &value) const#

“value” 出力オブジェクトによって表されるモデルの結果インデックスを返します。渡された出力がモデルの結果に関連していない場合、このメソッドは -1 を返します。

パラメーター:

valueノードを含む出力

int64_t get_result_index(const ov::Output<const ov::Node> &value) const#

渡された出力がモデルの結果に関連していない場合、このメソッドは -1 を返します。

パラメーター:

valueノードを含む出力

bool evaluate(ov::TensorVector &output_tensors, const ov::TensorVector &input_tensors, ov::EvaluationContext &evaluation_context) const#

入力のモデルを評価し、結果を出力します。

パラメーター:
  • output_tensors – 計算する出力のテンソル。結果ごとに 1 つ

  • input_tensors – 入力用のテンソル。入力ごとに 1 つ

  • evaluation_context – モデルを評価する際に使用する追加の設定と属性のストレージ。この追加情報はノード間で共有できます。

bool evaluate(ov::TensorVector &output_tensors, const ov::TensorVector &input_tensors) const#

入力のモデルを評価し、結果を出力します。

パラメーター:
  • output_tensors – 計算する出力のテンソル。結果ごとに 1 つ

  • input_tensors – 入力用のテンソル。入力ごとに 1 つ

inline const ov::SinkVector &get_sinks() const#

モデルのシンクリストを返します。

void add_sinks(const ov::SinkVector &sinks)#

新しいシンクノードをリストに追加します。メソッドはグラフを検証しないため、すべての変更後に手動で実行する必要があります。

パラメーター:

sinks – 新しいシンクノード

void remove_sink(const std::shared_ptr<ov::op::Sink> &sink)#

シンクのリストからシンクノードを削除します。メソッドはグラフからノードを削除しません。

パラメーター:

sink – 削除するシンク

void add_results(const ov::ResultVector &results)#

新しい結果ノードをリストに追加します。メソッドはグラフを検証しないため、すべての変更後に手動で実行する必要があります。

パラメーター:

results – 新しい結果ノード

void remove_result(const std::shared_ptr<ov::op::v0::Result> &result)#

結果のリストから結果ノードを削除します。メソッドはグラフからノードを削除しません。

パラメーター:

result – 削除する結果ノード

void add_parameters(const ov::ParameterVector &params)#

新しいパラメーター・ノードをリストに追加します。

メソッドはグラフを変更または検証しないため、手動で実行する必要があります。例えば、ReadValue ノードを Parameter に置き換える場合は、次の手順を実行します:

  • グラフ内のノード ReadValueParameter に置き換えます

  • リストに新しい入力を追加するには add_parameter() を呼び出します

  • 変更の正確性を確認するためグラフ検証を呼び出します

パラメーター:

params – 新しいパラメーター・ノード

void remove_parameter(const std::shared_ptr<ov::op::v0::Parameter> &param)#

パラメーターのリストから結果ノードを削除します。メソッドはグラフからノードを削除しません。パラメーターを他の操作に手動で置き換える必要があります。使用上の注意: パラメーターのインデックスを変更できます。

このメソッドの使用例として、入力を変数に置き換えることが挙げられます。それには、次の手順を実行する必要があります:

  • Parameter ノードは ReadValue に置き換える必要があります

  • リストから入力を削除するには remove_parameter(param) を呼び出します

  • パラメーター・インデックスがどこに保存/使用されているか確認し、インデックスは変更される可能性があるため、すべての入力に対して更新します

  • すべての変更をチェックするためにグラフ検証を呼び出します

パラメーター:

param – 削除するパラメーター・ノード

void add_variables(const ov::op::util::VariableVector &variables)#

新しい変数をリストに追加します。メソッドはグラフを検証しないため、すべての変更後に手動で実行する必要があります。

パラメーター:

variables – 追加する新しい変数

void remove_variable(const ov::op::util::Variable::Ptr &variable)#

変数リストから変数を削除します。メソッドは、この変数を使用したノードをグラフから削除しません。

パラメーター:

variable – 削除する変数

inline const ov::op::util::VariableVector &get_variables() const#

モデルの変数リストを返します。

ov::op::util::Variable::Ptr get_variable_by_id(const std::string &variable_id) const#

指定された variable_id の変数を返します。

inline RTMap &get_rt_info()#

ランタイム情報を返します。

戻り値:

ランタイム情報を含む ov::AnyMap への参照

inline const RTMap &get_rt_info() const#

定数のランタイム情報を返します。

戻り値:

ランタイム情報を含む const ov::AnyMap への参照

template<class T, class ...Args, typename std::enable_if<!std::is_same<T, ov::Any>::value, bool>::type = true>
inline const T &get_rt_info(Args... args) const#

パスのランタイム属性を返します。パスが存在しない場合は ov::Exception をスローします。

テンプレート・パラメーター:
  • T – 返される値のタイプ

  • Args – 可変長引数のタイプ

パラメーター:

args – ランタイム属性へのパス

戻り値:

ランタイム情報からの値への定数参照

template<class T, class ...Args, typename std::enable_if<std::is_same<T, ov::Any>::value, bool>::type = true>
inline const T &get_rt_info(Args... args) const#

パスのランタイム属性を返します。パスが存在しない場合は ov::Exception をスローします。

テンプレート・パラメーター:
  • T – 返される値のタイプ

  • Args – 可変長引数のタイプ

パラメーター:

args – ランタイム属性へのパス

戻り値:

ランタイム情報からの値への定数参照

template<class T, typename std::enable_if<!std::is_same<T, ov::Any>::value, bool>::type = true>
inline const T &get_rt_info(const std::vector<std::string> &args) const#

パスのランタイム属性を返します。パスが存在しない場合は ov::Exception をスローします。

テンプレート・パラメーター:

T – 返される値のタイプ

パラメーター:

args – ランタイム属性へのパスのベクトル

戻り値:

ランタイム情報からの値への定数参照

template<class T, typename std::enable_if<std::is_same<T, ov::Any>::value, bool>::type = true>
inline const T &get_rt_info(const std::vector<std::string> &args) const#

パスのランタイム属性を返します。パスが存在しない場合は ov::Exception をスローします。

テンプレート・パラメーター:

T – 返される値のタイプ

パラメーター:

args – ランタイム属性へのパスのベクトル

戻り値:

ランタイム情報からの値への定数参照

template<class ...Args>
inline bool has_rt_info(Args... args) const#

指定されたパスがランタイム情報に存在するか確認します。

テンプレート・パラメーター:

Args – 可変長引数のタイプ

パラメーター:

args – ランタイム属性へのパス

戻り値:

パスが存在する場合は true、そうでない場合は false を返します

bool has_rt_info(const std::vector<std::string> &args) const#

指定されたパスがランタイム情報に存在するか確認します。

パラメーター:

args – ランタイム属性へのパスのベクトル

戻り値:

パスが存在する場合は true、そうでない場合は false を返します

template<class T, class ...Args>
inline void set_rt_info(const T &argument, Args... args)#

ランタイム情報に値を追加します。

テンプレート・パラメーター:
  • T – 新しい値のタイプ

  • Args – 可変長引数のタイプ

パラメーター:
  • argument – ランタイム情報の値

  • args – ランタイム属性へのパス

template<class T>
inline void set_rt_info(const T &argument, const std::vector<std::string> &args)#

ランタイム情報に値を追加します。

テンプレート・パラメーター:

T – 新しい値のタイプ

パラメーター:
  • argument – ランタイム情報の値

  • args – ランタイム属性へのパスのベクトル

class Node : public std::enable_shared_from_this<Node>#
#include <node.hpp>

ノードは、値データフローのグラフのバックボーンです。すべてのノードには、引数として 0 個以上のノードと 1 つの値 (テンソルまたは値のタプル (空の場合もあり)) があります。

ov::op::Opov::pass::pattern::op::Pattern によってサブクラス化されます

パブリック関数

virtual void validate_and_infer_types()#

属性と入力に一貫性があることを確認し、出力の形状と要素タイプを計算します。何度でも実行できるように、具体的な子クラスによって実装される必要があります。

ノードが無効な場合にスローされます。

virtual const ov::op::AutoBroadcastSpec &get_autob() const#
戻り値:

AutoBroadcastSpec

virtual bool has_evaluate() const#

現在の操作の評価メソッドの可用性に関する情報を取得できます。

virtual bool evaluate(ov::TensorVector &output_values, const ov::TensorVector &input_values) const#

input_values の op を評価し、結果を output_values に格納します。

パラメーター:
  • output_values – 計算する出力のテンソル。結果ごとに 1 つ

  • input_values – 入力用のテンソル。入力ごとに 1 つ

戻り値:

成功したら true

virtual bool evaluate(ov::TensorVector &output_values, const ov::TensorVector &input_values, const ov::EvaluationContext &evaluationContext) const#

input_values の op を評価し、結果を output_values に格納します。

パラメーター:
  • output_values – 計算する出力のテンソル。結果ごとに 1 つ

  • input_values – 入力用のテンソル。入力ごとに 1 つ

  • evaluation_context – op を評価する際に使用する追加の設定と属性のストレージ。

戻り値:

成功したら true

inline virtual OutputVector decompose_op() const#

FusedOp をコア openvino オペレーションで構成されるサブグラフに分解します。

戻り値:

サブグラフを構成するノードのベクトル。出力テンソルの順序は、FusedOp の出力テンソルと一致する必要があります。

virtual const type_info_t &get_type_info() const = 0#

ノードのクラスの NodeTypeInfo を返します。type_info への移行中に、クラスがまだ更新されていない場合は、ノードのダミーの type_info を返します。

void set_arguments(const NodeVector &arguments)#

引数を新しい引数に設定/置き換えます。

void set_arguments(const OutputVector &arguments)#

引数を新しい引数に設定/置き換えます。

void set_argument(size_t position, const Output<Node> &argument)#

引数を新しい引数に設定/置き換えます。

void set_output_size(size_t output_size)#

出力数を設定します。

virtual std::string description() const#

AddMultiply など、ノードタイプの文字列名を取得します。クラス名は codegen で使用されるため、スペースを含めることはできません。

戻り値:

ノードのタイプ名への const 参照

const std::string &get_name() const#

ノードの一意な名前を取得します。

戻り値:

ノードの一意な名前への const 参照。

void set_friendly_name(const std::string &name)#

ノードのフレンドリー名を設定します。これはノードの一意な名前を上書きせず、get_friendly_name() を介して取得されます。主にデバッグに使用されます。フレンドリー名は 1 度だけ設定できます。

パラメーター:

name – 設定するフレンドリー名

const std::string &get_friendly_name() const#

ノードのフレンドリー名を取得します。set_friendly_name でフレンドリー名が設定されていない場合は、ノードの一意な名前が返されます。

戻り値:

ノードのフレンドリー名への const 参照。

virtual std::ostream &write_description(std::ostream &os, uint32_t depth = 0) const#

ノードの説明をストリームに書き込みます。

パラメーター:
  • os – stream; 返される必要があります

  • depth – 記述する入力レベルの数

戻り値:

ストリーム os

const std::vector<std::shared_ptr<Node>> &get_control_dependencies() const#

ノードに登録されている制御依存関係を取得します。

const std::vector<Node*> &get_control_dependents() const#

このノードに依存するノードを取得します。

void add_control_dependency(std::shared_ptr<Node> node)#

ノードが実行されるまで、このノードは実行できません。

void remove_control_dependency(std::shared_ptr<Node> node)#

このノードのノードへの依存関係を削除します。

void clear_control_dependencies()#

このノードからすべての依存関係を削除します。

void clear_control_dependents()#

このノードをすべての依存ノードから依存関係として削除します。

void add_node_control_dependencies(const std::shared_ptr<const Node> &source_node)#

このノードは、source_node の制御依存関係を吸収します。

void add_node_control_dependents(const std::shared_ptr<const Node> &source_node)#

このノードは、source_node に依存するすべてのノードの従属ノードになります。

void transfer_control_dependents(std::shared_ptr<Node> replacement)#

このノードの制御依存関係は置換によって置き換えられます。

size_t get_output_size() const#

ノードからの出力数を返します。

const element::Type &get_output_element_type(size_t i) const#

出力 i の要素タイプを返します。

const element::Type &get_element_type() const#

出力が 1 つだけであることを確認し、その要素のタイプを返します。

const Shape &get_output_shape(size_t i) const#

出力 i の形状を返します。

const PartialShape &get_output_partial_shape(size_t i) const#

出力 i の部分形状を返します。

Output<const Node> get_default_output() const#

インデックスを指定せず、Output<Node> に変換する際の出力を返します。サポートされていない場合にスローされます。

virtual size_t get_default_output_index() const#

デフォルト出力の出力を返します。デフォルト出力がない場合はスローします。

size_t no_default_index() const#

デフォルトではスローされません。

const Shape &get_shape() const#

出力が 1 つだけであることを確認し、その形状を返します。

descriptor::Tensor &get_output_tensor(size_t i) const#

出力または入力 i のテンソルを返します。

size_t get_input_size() const#

op の入力数を返します。

const element::Type &get_input_element_type(size_t i) const#

入力 i の要素タイプを返します。

const Shape &get_input_shape(size_t i) const#

入力 i の形状を返します。

const PartialShape &get_input_partial_shape(size_t i) const#

入力 i の部分形状を返します。

bool has_same_type(std::shared_ptr<const Node> node) const#

ノードと同じ要素タイプと形状を持つ 1 つの出力がある場合は True になります。

NodeVector get_users(bool check_is_used = false) const#

現在のノードを使用するすべてのノードを取得します。

inline bool operator<(const Node &other) const#

決定論を向上させるため、メモリーアドレスの代わりにインスタンス ID を比較に使用します。

std::vector<Input<Node>> inputs()#
戻り値:

このノードの各入力のハンドルを順番に含むベクトル。

std::vector<Input<const Node>> inputs() const#
戻り値:

このノードの各入力のハンドルを順番に含むベクトル。

std::vector<Output<Node>> input_values() const#
戻り値:

各入力の値を含むベクトル

std::vector<Output<Node>> outputs()#
戻り値:

このノードの各出力のハンドルを順番に含むベクトル。

std::vector<Output<const Node>> outputs() const#
戻り値:

このノードの各出力のハンドルを順番に含むベクトル。

Input<Node> input(size_t input_index)#
スロー:

std::out_of_range – ノードに少なくとも input_index+1 個の入力がない場合。

戻り値:

このノードの input_index 番目の入力へのハンドル。

Input<const Node> input(size_t input_index) const#
スロー:

std::out_of_range – ノードに少なくとも input_index+1 個の入力がない場合。

戻り値:

このノードの input_index 番目の入力へのハンドル。

Output<Node> output(size_t output_index)#
スロー

std::out_of_range – ノードに少なくとも input_index+1 個の出力がない場合。

戻り値:

このノードの output_index 番目の出力へのハンドル。

Output<const Node> output(size_t output_index) const#
スロー

std::out_of_range – ノードに少なくとも input_index+1 個の出力がない場合。

戻り値:

このノードの output_index 番目の出力へのハンドル。

template<>
class Input<Node>#
#include <node_input.hpp>

ノードの入力の 1 つに対するハンドル。

パブリック関数

Input(Node *node, size_t index)#

入力を構築します。

パラメーター:
  • node – 入力ハンドルのノードへのポインター。

  • index – 入力のインデックス。

Node *get_node() const#
戻り値:

この入力ハンドルによって参照されるノードへのポインター。

size_t get_index() const#
戻り値:

この入力ハンドルによって参照される入力のインデックス。

OV_NO_DANGLING const element::Type & get_element_type () const
戻り値:

この入力ハンドルによって参照される入力の要素タイプ。

OV_NO_DANGLING const Shape & get_shape () const
戻り値:

この入力ハンドルによって参照される入力の形状。

OV_NO_DANGLING const PartialShape & get_partial_shape () const
戻り値:

この入力ハンドルによって参照される入力の部分形状。

Output<Node> get_source_output() const#
戻り値:

この入力に接続されている出力へのハンドル。

OV_NO_DANGLING descriptor::Tensor & get_tensor () const
戻り値:

この入力のテンソル記述子への参照。

std::shared_ptr<descriptor::Tensor> get_tensor_ptr() const#
戻り値:

この入力のテンソル記述子への共有ポインター。

bool get_is_relevant_to_shapes() const#
戻り値:

この入力がノードの出力形状に関連している場合は true、そうでない場合は false。

bool get_is_relevant_to_values() const#
戻り値:

この入力がノードの出力値に関連している場合は true、そうでない場合は false。

void replace_source_output(const Output<Node> &new_source_output) const#

この入力のソース出力を置き換えます。

パラメーター:

new_source_output – この入力のソースを置き換える出力のハンドル。

RTMap &get_rt_info()#
戻り値:

ランタイム情報マップへの参照

OV_NO_DANGLING const RTMap & get_rt_info () const
戻り値:

ランタイム情報マップへの const 参照

template<>
class Input<const Node>#
#include <node_input.hpp>

ノードの入力の 1 つに対するハンドル。

パブリック関数

Input(const Node *node, size_t index)#

入力を構築します。

パラメーター:
  • node – 入力ハンドルのノードへのポインター。

  • index – 入力のインデックス。

const Node *get_node() const#
戻り値:

この入力ハンドルによって参照されるノードへのポインター。

size_t get_index() const#
戻り値:

この入力ハンドルによって参照される入力のインデックス。

OV_NO_DANGLING const element::Type & get_element_type () const
戻り値:

この入力ハンドルによって参照される入力の要素タイプ。

OV_NO_DANGLING const Shape & get_shape () const
戻り値:

この入力ハンドルによって参照される入力の形状。

OV_NO_DANGLING const PartialShape & get_partial_shape () const
戻り値:

この入力ハンドルによって参照される入力の部分形状。

Output<Node> get_source_output() const#
戻り値:

この入力に接続されている出力へのハンドル。

OV_NO_DANGLING descriptor::Tensor & get_tensor () const
戻り値:

この入力のテンソル記述子への参照。

std::shared_ptr<descriptor::Tensor> get_tensor_ptr() const#
戻り値:

この入力のテンソル記述子への共有ポインター。

bool get_is_relevant_to_shapes() const#
戻り値:

この入力がノードの出力形状に関連している場合は true、そうでない場合は false。

bool get_is_relevant_to_values() const#
戻り値:

この入力がノードの出力値に関連している場合は true、そうでない場合は false。

OV_NO_DANGLING const RTMap & get_rt_info () const
戻り値:

ランタイム情報マップへの const 参照

template<>
class Output<Node>#
#include <node_output.hpp>

ノードの出力の 1 つに対するハンドル。

パブリック関数

Output(Node *node, size_t index)#

出力を構築します。

パラメーター:
  • node – 出力ハンドルのノードへのポインター。

  • index – 出力のインデックス。

Output(const std::shared_ptr<Node> &node, size_t index)#

出力を構築します。

パラメーター:
  • node – 出力ハンドルのノードへの shared_ptr

  • index – 出力のインデックス。

template<typename T>
inline Output(const std::shared_ptr<T> &node)#

ノードの 0 番目の出力を参照して、出力を構築します。

パラメーター:

node – 出力ハンドルのノードへの shared_ptr。

Output() = default#

Null 出力。

Node *get_node() const#
戻り値:

この出力ハンドルによって参照されるノードへのポインター。

std::shared_ptr<Node> get_node_shared_ptr() const#
戻り値:

この出力ハンドルによって参照されるノードへの shared_ptr

size_t get_index() const#
戻り値:

この出力ハンドルによって参照される出力のインデックス。

OV_NO_DANGLING descriptor::Tensor & get_tensor () const
戻り値:

この出力のテンソル記述子への参照。

std::shared_ptr<descriptor::Tensor> get_tensor_ptr() const#
戻り値:

この出力のテンソル ptr への共有ポイント。

void set_tensor_ptr(std::shared_ptr<descriptor::Tensor> tensor_ptr)#
戻り値:

この出力に新しいテンソル記述共有ポインターを設定します

OV_NO_DANGLING const element::Type & get_element_type () const
戻り値:

この出力ハンドルによって参照される出力の要素タイプ。

OV_NO_DANGLING const Shape & get_shape () const
戻り値:

この出力ハンドルによって参照される出力の形状。

OV_NO_DANGLING const PartialShape & get_partial_shape () const
戻り値:

この出力ハンドルによって参照される出力の部分形状。

RTMap &get_rt_info()#
戻り値:

ランタイム情報マップへの参照

OV_NO_DANGLING const RTMap & get_rt_info () const
戻り値:

ランタイム情報マップへの const 参照

OV_NO_DANGLING const std::unordered_set< std::string > & get_names () const
戻り値:

この出力に関連付けられたテンソル名

std::string get_any_name() const#
戻り値:

この出力に関連付けられた任意のテンソル名

void set_names(const std::unordered_set<std::string> &names)#
戻り値:

この出力に関連付けられたテンソル名を設定

void add_names(const std::unordered_set<std::string> &names)#
戻り値:

この出力に関連付けられたテンソル名を追加

std::set<Input<Node>> get_target_inputs() const#
戻り値:

この出力ハンドルによって参照される出力の対象となるすべての入力ハンドルを含むセット。

void remove_target_input(const Input<Node> &target_input) const#

この出力ハンドルによって参照される出力からターゲット入力を削除します。

パラメーター:

target_input – 削除するターゲット入力。

void replace(const Output<Node> &replacement)#

この値のすべてのユーザーを replacement で置き換えます。

template<>
class Output<const Node>#
#include <node_output.hpp>

ノードの出力の 1 つに対するハンドル。

パブリック関数

Output(const Node *node, size_t index)#

出力を構築します。

パラメーター:
  • node – 出力ハンドルのノードへのポインター。

  • index – 出力のインデックス。

Output(const std::shared_ptr<const Node> &node, size_t index)#

出力を構築します。

パラメーター:
  • node – 出力ハンドルのノードへの shared_ptr。

  • index – 出力のインデックス。

template<typename T>
inline Output(const std::shared_ptr<const T> &node)#

ノードの 0 番目の出力を参照して、出力を構築します。

パラメーター:

node – 出力ハンドルのノードへの shared_ptr。

Output() = default#

Null 出力。

const Node *get_node() const#
戻り値:

この出力ハンドルによって参照されるノードへのポインター。

std::shared_ptr<const Node> get_node_shared_ptr() const#
戻り値:

この出力ハンドルによって参照されるノードへの shared_ptr

size_t get_index() const#
戻り値:

この出力ハンドルによって参照される出力のインデックス。

OV_NO_DANGLING descriptor::Tensor & get_tensor () const
戻り値:

この出力のテンソル記述子への参照。

std::shared_ptr<descriptor::Tensor> get_tensor_ptr() const#
戻り値:

この出力のテンソル ptr への共有ポイント。

OV_NO_DANGLING const element::Type & get_element_type () const
戻り値:

この出力ハンドルによって参照される出力の要素タイプ。

OV_NO_DANGLING const Shape & get_shape () const
戻り値:

この出力ハンドルによって参照される出力の形状。

OV_NO_DANGLING const PartialShape & get_partial_shape () const
戻り値:

この出力ハンドルによって参照される出力の部分形状。

OV_NO_DANGLING const RTMap & get_rt_info () const
戻り値:

ランタイム情報マップへの const 参照

OV_NO_DANGLING const std::unordered_set< std::string > & get_names () const
戻り値:

この出力に関連付けられたテンソル名

std::string get_any_name() const#
戻り値:

この出力に関連付けられた任意のテンソル名

std::set<Input<Node>> get_target_inputs() const#
戻り値:

この出力ハンドルによって参照される出力の対象となるすべての入力ハンドルを含むセット。

class PartialShape#
#include <partial_shape.hpp>

クラスは部分的または全体的に動的な形状を表します。

PartialShape には次のものが含まれます:

  • 動的ランク。(非公式表記: ?)

  • ランクは静的ですが、一部またはすべての軸には動的な次元があります。(非公式表記の例: {1,2,?,4}, {?,?,?})

  • ランクは静的で、すべての軸におよび静的な次元があります。(非公式表記の例: {1,2,3,4}, {6}, {})

パブリック関数

PartialShape(std::initializer_list<Dimension> init)#

Dimension の初期化リストから静的ランクを持つ形状を構築します。

例:

PartialShape s{2,3,4}; // rank=3, all dimensions static 
PartialShape s{}; // rank=0 
PartialShape s{2,Dimension::dynamic(),3}; // rank=3, dimension 1 dynamic
パラメーター:

init – 構築された形状の Dimension 値。

PartialShape(std::vector<Dimension> dimensions)#

Dimension のベクトルから静的ランクを持つ PartialShape を構築します。

パラメーター:

dimensions – 構築された形状の Dimension 値。

PartialShape(const std::vector<Dimension::value_type> &dimensions)#

次元値のベクトルから静的ランクを持つ PartialShape を構築します。

パラメーター:

dimensions – 構築された形状の Dimension 値。

PartialShape()#

ランクがゼロの静的 PartialShape (スカラーの形状) を構築します。

PartialShape(const Shape &shape)#

PartialShape から静的な PartialShape を構築します。

パラメーター:

shapePartialShape に変換する PartialShape

PartialShape(const std::string &shape)#

string から静的な PartialShape を構築します。

パラメーター:

shapePartialShape に解析する文字列。

bool is_static() const#

この形状が静的であるか確認します。

形状が静的ランクを持ち、形状のすべての次元が静的である場合、その形状は静的であると見なされます。

戻り値:

形状が静的である場合は true、そうでない場合は false を返します。

inline bool is_dynamic() const#

この形状が動的であるか確認します。

形状が静的ランクを持ち、形状のすべての次元が静的である場合、その形状は静的であると見なされます。

戻り値:

形状が静的である場合は false、そうでない場合は true を返します。

inline Rank rank() const#

形状のランクを取得します。

戻り値:

形状のランク。形状のランクが動的である場合、これは Rank::dynamic() になります。

bool compatible(const PartialShape &s) const#

この形状が引数と互換性があるかどうか、つまりそれらをマージできるか確認します。

2 つの形状は、一方または両方に動的ランクがある場合、または両方の形状に動的ランクが等しく、次元が要素ごとに互換である場合に互換性があります (Dimension::compatible() を参照)。

パラメーター:

s – この形状との互換性をチェックする形状。

戻り値:

この形状が s と互換性がある場合は true、それ以外の場合は false を返します。

bool same_scheme(const PartialShape &s) const#

この形状が引数と同じスキームを表しているかどうかを確認します。

2 つの形状 s1s2 は、両方が動的ランクを持つか、両方が静的で等しいランク r を持ち、0 から r-1 までのすべての i について、s1[i]s2[i] と同じスキームである場合、同じスキームを表します (Dimension::same_scheme() を参照)。

パラメーター:

s – この形状とスキームが比較される形状。

戻り値:

この形状が s と同じスキームを表す場合は true、それ以外は false を返します。

bool relaxes(const PartialShape &s) const#

この形状が緩和論証であるか確認します。

直感的には、PartialShape s1s2 よりも許容的である場合、s2 を緩和する (または s2緩和である) と言われます。言い換えれば、s2 の動的次元にプラグインすることで形成できるものは、s1 の動的次元にプラグインすることでも形成できる場合、s1s2 の緩和ですが、その逆は必ずしも当てはまりません。

s1.relaxes(s2)s2.refines(s1) と同等です。

正式には、次の場合に PartialShape s1PartialShape s2緩和すると言われます:

  • 0 から r-1 までのすべての i について、s1[i] に s2[i] が含まれます。

パラメーター:

s – この形状と比較される形状。

戻り値:

この形状が s を緩和する場合は true、そうでない場合は false を返します。

bool refines(const PartialShape &s) const#

この形状が引数のリファインメントであるか確認します。

直感的には、PartialShape s1s2 よりも許容度が低い場合、s2 を緩和する (または s2緩和である) と言われます。言い換えれば、s2 の動的次元にプラグインすることで形成できるものは、s1 の動的次元にプラグインすることでも形成できる場合、s1s1 の緩和ですが、その逆は必ずしも当てはまりません。

s1.refines(s2)s2.relaxes(s1) と同等です。

正式には、次の場合に PartialShape s1PartialShape s2リファイン (改良) すると言われます:

  • s2 は動的ランクを持ち、または s1s2 は両方とも静的ランク r を持ち、0 から r-1 までのすべての i について、s2[i]s2[i] は動的であるか、s1[i] == s2[i] です。

パラメーター:

s – この形状と比較される形状。

戻り値:

この形状が s をリファインする場合は true、そうでない場合は false を返します。

bool merge_rank(const Rank &r)#

この形状のランクが r と互換性があるか確認し、形状のランクが動的で r が静的である場合は、この形状を更新して、すべての次元が動的であるランク r を持ちます。

戻り値:

この形状のランクが r と互換性がある場合は true、それ以外は false

Shape to_shape() const#

静的な PartialShapePartialShape に変換します。

スロー:

std::invalid_argument – この PartialShape が動的である場合。

戻り値:

s[i] = size_t((*this)[i]) となる新しい PartialShape s

bool all_non_negative() const#

テンソルのすべての静的次元が非負の場合は true を返し、それ以外は false を返します。

Dimension &operator[](std::ptrdiff_t i)#

境界チェック付きの PartialShape のインデックス・オペレーター。

パラメーター:

i – 範囲 [-rank, rank) 内で選択されている次元のインデックス。

戻り値:

この形状の i 番目の Dimension へのリファレンス。

const Dimension &operator[](std::ptrdiff_t i) const#

境界チェック付きの PartialShape のインデックス・オペレーター。

パラメーター:

i – 範囲 [-rank, rank) 内で選択されている次元のインデックス。

戻り値:

この形状の i 番目の Dimension へのリファレンス。

inline explicit operator std::vector<Dimension>() const#

次元のベクトルを返します。動的の場合は意味がありません。

Shape get_max_shape() const#

最大境界形状を取得します。

Shape get_min_shape() const#

最小境界形状を取得します。

Shape get_shape() const#

一意の形状を取得します。

inline iterator begin() noexcept#

形状の最初の要素を指す読み取り/書き込みイテレーターを返します。反復は通常の要素順序で実行されます。

inline const_iterator begin() const noexcept#

形状の最初の要素を指す読み取り専用 (定数) イテレーターを返します。反復は通常の要素順序で実行されます。

inline iterator end() noexcept#

形状内の最後の要素の 1 つ後を指す読み取り/書き込みイテレーターを返します。反復は通常の要素順序で実行されます。

inline const_iterator end() const noexcept#

形状内の最後の要素の 1 つ後を指す読み取り専用 (定数) イテレーターを返します。反復は通常の要素順序で実行されます。

inline reverse_iterator rbegin() noexcept#

形状の最後の要素を指す読み取り/書き込みイテレーターを返します。反復は要素の逆順に実行されます。

inline const_reverse_iterator rbegin() const noexcept#

形状の最後の要素を指す読み取り専用 (定数) イテレーターを返します。反復は要素の逆順に実行されます。

inline reverse_iterator rend() noexcept#

形状の最初の要素の 1 つ前を指す読み取り/書き込み逆イテレーターを返します。反復は要素の逆順に実行されます。

inline const_reverse_iterator rend() const noexcept#

形状の最初の要素の 1 つ前を指す読み取り専用 (定数) 逆イテレーターを返します。反復は要素の逆順に実行されます。

inline const_iterator cbegin() const noexcept#

形状の最初の要素を指す読み取り専用 (定数) イテレーターを返します。反復は通常の要素順序で実行されます。

inline const_iterator cend() const noexcept#

形状内の最後の要素の 1 つ後を指す読み取り専用 (定数) イテレーターを返します。反復は通常の要素順序で実行されます。

inline const_reverse_iterator crbegin() const noexcept#

形状の最後の要素を指す読み取り専用 (定数) イテレーターを返します。反復は要素の逆順に実行されます。

inline const_reverse_iterator crend() const noexcept#

形状の最初の要素の 1 つ前を指す読み取り専用 (定数) 逆イテレーターを返します。反復は要素の逆順に実行されます。

inline void resize(size_t count)#

count 要素が含まれるように次元コンテナのサイズを変更します。

inline size_t size() const#

次元ベクトルのサイズを返します。ランクは静的である必要があります。

inline iterator insert(iterator position, const Dimension &val)#

形状に挿入された要素を指す読み取り/書き込みイテレーターを返します。

inline void insert(iterator position, size_t n, const Dimension &val)#

position の前に、count 個の値のコピーを挿入します。

template<class InputIterator>
inline void insert(iterator position, InputIterator first, InputIterator last)#

position の前に範囲 [first, last) の要素を挿入します。

inline void reserve(size_t n)#

次元ベクトルの容量が n 個の要素を格納するのに十分であることを要求します。

inline void push_back(const Dimension &val)#

要素を部分形状の末尾にプッシュします

template<class ...Args>
inline void emplace_back(Args&&... args)#

部分形状の末尾に要素を配置します

std::string to_string() const#

PartialShape の文字列表現。

パブリック静的関数

static PartialShape dynamic(Rank r = Rank::dynamic())#

指定されたランクとすべての次元 (存在する場合) を動的に持つ PartialShape を構築します。

戻り値:

指定されたランクとすべての次元 (存在する場合) を動的に持つ PartialShape

static bool merge_into(PartialShape &dst, const PartialShape &src)#

ある形状を別の形状に結合してみます。

srcdst にマージし、成功した場合は true を、失敗した場合は false を返します。false の場合、dst への影響は未指定になります。

2 つの部分形状 s1s2 をマージすることは、s が存在する場合に、s1 または s2 よりも許容度が低い、最も許容度の高い部分形状 s を見つけることです。次に例を示します:

Merge(?,?) -> ?  Merge(?,{?,?}) -> {?,?}merge({?,?},{?,?}) -> {?,?}merge({1,2,3,4},?) -> {1,2,3,4}  merge({1,2},{1,?}) -> {1,2}  merge({1,2,?,?},{1,?,3,?}) -> {1,2,3,?}  merge({1,2,3},{1,2,3}) -> {1,2,3} 

merge({1,?},{2,?}) fails [dimension 0 constraints are inconsistent] 
merge({?,?},{?,?,?}) fails [ranks are inconsistent]

この関数 (merge_into) は、上記の “merge” 操作を dstsrc に対して実行しますが、その結果で dst を上書きし、マージが成功した場合は true を返します。マージが失敗した場合、関数は false を返し、dst に未指定の変更を加える可能性があります。

パラメーター:
  • dst[inout] src がマージされる形状。

  • srcdst にマージされる形状。

戻り値:

結合が成功した場合は true、それ以外の場合は false を返します。

static bool broadcast_merge_into(PartialShape &dst, const PartialShape &src, const ov::op::AutoBroadcastSpec &autob)#

暗黙的なブロードキャストとともに、ある形状を別の形状にマージしてみます。

フレンド

friend OPENVINO_API std::ostream & operator<< (std::ostream &str, const PartialShape &shape)

PartialShape の可読性のある表現を出力ストリームに挿入します。

ストリームへの出力は “非公式” な表記法で行われます。次のようになります:

  • shape に動的ランクがある場合は、文字列 ? を挿入します。

  • shape が静的ランクを持つ場合、文字列 { を挿入し、shape の各次元をコンマで区切って出力ストリームに挿入し、最後に } を挿入します。

例:

PartialShape s1{PartialShape::dynamic())}; PartialShape s2{}; PartialShape s3{1,Dimension::dynamic(),2,3}; PartialShape s4{2,3,4}; std::cout << s1 << std::endl << s2 << std::endl << s3 << std::endl << s4 << std::endl;

出力:

? {} {1,?,2,3} {2,3,4}
パラメーター:
  • str – 挿入対象となる出力ストリーム。

  • shapestr に挿入される形状。

戻り値:

挿入後の str への参照。

friend OPENVINO_API PartialShape operator+ (const PartialShape &s1, const PartialShape &s2)

2 つの PartialShape オブジェクトの要素ごとの追加。

  • s1 または s2 が動的ランクを持つ場合は、PartialShape::dynamic() を返します。

  • s1s2 の両方が静的ランクを持ち、それらのランクが等しくない場合は、std::invalid_argument をスローします。

  • s1s2 の両方が静的ランクを持ち、それらのランクが等しい場合は、i 番目の次元が s1[i] + s2[i] である新しい形状を返します。

パラメーター:
  • s1 – 加算の左オペランド。

  • s2 – 加算の右オペランド。

スロー

std::invalid_arguments1s2 のランクが一致しない場合。

戻り値:

s1s2 に要素ごとに加算した結果 (説明を参照)。

class PrePostProcessor#
#include <pre_post_process.hpp>

既存の ov::Model に前処理および後処理の手順を追加するメインクラス。

これは、すべての前処理操作が 1 つの入力を受け取り、1 つの出力を生成することを前提とする、ov::Model オブジェクトに対して簡単な前処理および後処理操作を記述するヘルパークラスです。

複数の入力/出力を持つ複数の関数を 1 つに結合するような高度な前処理シナリオでは、クライアント・コードは ov::Model を介した変換パスを使用できます。

パブリック関数

explicit PrePostProcessor(const std::shared_ptr<Model> &function)#

デフォルト・コンストラクター。

パラメーター:

function – ロードされたモデルを表す既存の関数

PrePostProcessor(PrePostProcessor&&) noexcept#

デフォルト・ムーブ・コンストラクター。

PrePostProcessor &operator=(PrePostProcessor&&) noexcept#

デフォルトムーブ代入オペレーター。

~PrePostProcessor()#

デフォルトのデストラクター。

InputInfo &input()#

入力前処理データ構造を取得します。モデル/関数に入力が 1 つしかない場合にのみ使用します。返された構造を使用すると、アプリケーションのコードはユーザーのテンソルデータ (レイアウトなど)、前処理手順、ターゲットモデルのデータを設定できます。

戻り値:

モデルの入力情報構造への参照

InputInfo &input(const std::string &tensor_name)#

テンソル名で識別される入力の入力前処理データ構造を取得します。

パラメーター:

tensor_name – 特定の入力テンソル名。テンソル名がモデル内のどの入力にも関連付けられていない場合にスローされます

戻り値:

モデルの入力情報構造への参照

InputInfo &input(size_t input_index)#

モデル内の順序によって識別される入力の入力前処理データ構造を取得します。

パラメーター:

input_index – 特定の入力の入力インデックス。入力インデックスが関連する関数の範囲外である場合にスローされます

戻り値:

モデルの入力情報構造への参照

OutputInfo &output()#

出力後処理データ構造を取得します。モデル/関数に出力が 1 つしかない場合にのみ使用します。返された構造を使用すると、アプリケーションのコードはモデルの出力データ、後処理手順、ユーザーのテンソルデータ (レイアウトなど) を設定できます。

戻り値:

モデルの出力情報構造への参照

OutputInfo &output(const std::string &tensor_name)#

テンソル名で識別される出力の出力後処理データ構造を取得します。

パラメーター:

tensor_name – 特定の出力のテンソル名。テンソル名がモデル内のどの入力にも関連付けられていない場合にスローされます

戻り値:

モデルの出力情報構造への参照

OutputInfo &output(size_t output_index)#

モデル内の順序によって識別される出力の出力後処理データ構造を取得します。

パラメーター:

output_index – 特定の出力の出力インデックス。出力インデックスが関連する関数の範囲外である場合にスローされます

戻り値:

モデルの出力情報構造への参照

std::shared_ptr<Model> build()#

コンストラクターで渡された関数に前処理/後処理操作を追加します。

戻り値:

前処理/後処理操作を追加した関数

class Shape : public std::vector<size_t>#
#include <shape.hpp>

テンソルの形状

パブリック関数

OPENVINO_API Shape::reference operator[] (std::ptrdiff_t i)

インデックスで次元を取得します。

パラメーター:

i – 形状次元のインデックス [-rank, rank)。

戻り値:

この形状の i 番目の次元へのリファレンス。

OPENVINO_API Shape::const_reference operator[] (std::ptrdiff_t i) const

インデックスで次元を取得します。

パラメーター:

i – 形状次元のインデックス [-rank, rank)。

戻り値:

この形状の i 番目の次元への const 参照。

OPENVINO_API Shape::reference at (std::ptrdiff_t i)

境界チェックを行い、インデックスで次元を取得します。

パラメーター:

i – 形状次元のインデックス [-rank, rank)。

戻り値:

この形状の i 番目の次元へのリファレンス。

OPENVINO_API Shape::const_reference at (std::ptrdiff_t i) const

境界チェックを行い、インデックスで次元を取得します。

パラメーター:

i – 形状次元のインデックス [-rank, rank)。

戻り値:

この形状の i 番目の次元への const 参照。

class Symbol#
#include <symbol.hpp>

シンボリック形状推論の目的で一意のシンボルを表すクラス。シンボルの等価性は、互いに素なデータ構造によって追跡されます。

パブリック関数

Symbol() = default#

デフォルトでは一意のシンボルが構築されます。

struct DiscreteTypeInfo#
#include <type.hpp>

継承のないタイプシステムのタイプ情報。インスタンスには、他のタイプとは関係のない 1 つのタイプだけが含まれます。

C++ RTTI を使用せずに static_cast/static_ptr_cast を介したタイプセーフな動的変換のための 3 つの関数 ov::is_type<Type>ov::as_type<Type>ov::as_type_ptr<Type> をサポートします。タイプには、静的な type_info メンバーと、その type_info メンバーへの参照を返す仮想 get_type_info() メンバーが必要です。