グループ推論#

group ov_runtime_cpp_api

OpenVINO 推論 C++ API は、ov::Coreov::CompiledModelov::InferRequest および ov::Tensor クラスを提供します。

Typedef

using SupportedOpsMap = std::map<std::string, std::string>#

このタイプのマップは、Core::query_model の結果に使用されます。

  • key は操作名を意味します

  • value は、この操作をサポートするデバイス名を意味します

class Allocator#
#include <allocator.hpp>

アロケーター実装をラップして、共有ライブラリーからロードされたアロケーターを安全に格納する方法を提供します。また、パラメーターなしで作成された場合は、new delete C++ 呼び出しアロケーターに基づいてデフォルトを構築します。std::pmr::memory_resource などのアロケーターをすべて受け入れます。

パブリック関数

~Allocator()#

デストラクターは、実装オブジェクトのアンロード順序とライブラリーへの参照を保持します。

Allocator()#

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

Allocator(const Allocator &other) = default#

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

パラメーター:

other – その他の Allocator オブジェクト

Allocator &operator=(const Allocator &other) = default#

デフォルトコピー代入オペレーター。

パラメーター:

other – その他の Allocator オブジェクト

戻り値:

現在のオブジェクトへの参照

Allocator(Allocator &&other) = default#

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

パラメーター:

other – その他の Allocator オブジェクト

Allocator &operator=(Allocator &&other) = default#

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

パラメーター:

other – その他の Allocator オブジェクト

戻り値:

現在のオブジェクトへの参照

template<typename A, typename std::enable_if<!std::is_same<typename std::decay<A>::type, Allocator>::value && !std::is_abstract<typename std::decay<A>::type>::value && !std::is_convertible<typename std::decay<A>::type, std::shared_ptr<Base>>::value, bool>::type = true>
inline Allocator(A &&a)#

オブジェクトのような任意のアロケーターを使用してアロケーターを初期化します。

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

A – アロケーターのタイプ

パラメーター:

a – アロケーター・オブジェクト

void *allocate(const size_t bytes, const size_t alignment = alignof(max_align_t))#

メモリー割り当て。

パラメーター:
  • bytes – 割り当てる最小サイズ (バイト単位)

  • alignment – ストレージの配置

スロー:

例外 – 指定されたサイズと配置がサポートされていない場合

戻り値:

割り当てられたリソースへのハンドル

void deallocate(void *ptr, const size_t bytes = 0, const size_t alignment = alignof(max_align_t))#

ハンドルとそれに関連付けられているすべてのメモリーリソースを解放し、ハンドルを無効にします。

パラメーター:
  • ptr – 解放するハンドル

  • bytesallocate() メソッドに渡されたバイト単位のサイズ

  • alignmentallocate() メソッドに渡されたストレージの配置

bool operator==(const Allocator &other) const#

他の Allocator と比較します。

パラメーター:

other – アロケーターの他のインスタンス

戻り値:

1 つのアロケーターで割り当てられたメモリーを他のアロケーターで解除できる場合にのみ true になります。逆の場合も同様です。

bool operator!() const noexcept#

現在の アロケーター オブジェクトが初期化されていないことを確認します。

戻り値:

現在の アロケーター オブジェクトが初期化されていない場合は true を、それ以外は false を返します

explicit operator bool() const noexcept

現在の アロケーター オブジェクトが初期化されていることを確認します。

戻り値:

現在の アロケーター オブジェクトが初期化されている場合は true を、それ以外は false を返します

class Tensor#
#include <tensor.hpp>

ホストメモリーを保持する Tensor API は、適切に処理されるアプリケーションへ安全に例外をスローできます。

ov::RemoteTensor でサブクラス化されます

パブリック関数

Tensor() = default#

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

Tensor(const Tensor &other, const std::shared_ptr<void> &so)#

新しい共有オブジェクトを追加するコピー・コンストラクター。

パラメーター:
  • other – 元のテンソル

  • so – 共有オブジェクト

Tensor(const Tensor &other) = default#

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

パラメーター:

other – その他の テンソル・オブジェクト

Tensor &operator=(const Tensor &other) = default#

デフォルトコピー代入オペレーター。

パラメーター:

other – その他の テンソル・オブジェクト

戻り値:

現在のオブジェクトへの参照

Tensor(Tensor &&other) = default#

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

パラメーター:

other – その他の テンソル・オブジェクト

Tensor &operator=(Tensor &&other) = default#

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

パラメーター:

other – その他の テンソル・オブジェクト

戻り値:

現在のオブジェクトへの参照

~Tensor()#

デストラクターは、実装オブジェクトのアンロード順序とライブラリーへの参照を保持します。

Tensor(const element::Type &type, const Shape &shape, const Allocator &allocator = {})#

要素タイプと形状を使用してテンソルを構築します。デフォルトのアロケーターを使用して内部ホストストレージを割り当てます。

パラメーター:
  • typeテンソルの要素タイプ

  • shapeテンソルの形状

  • allocator – 内部テンソルストレージ用のメモリーを割り当て

Tensor(const element::Type &type, const Shape &shape, void *host_ptr, const Strides &strides = {})#

要素タイプと形状を使用してテンソルを構築します。割り当てられたホストメモリーをラップします。

内部的にメモリー割り当てを行いません

パラメーター:
  • typeテンソルの要素タイプ

  • shapeテンソルの形状

  • host_ptr – 初期化されたオブジェクトを含む事前割り当てられたホストメモリーへのポインタ

  • strides – オプションのストライド・パラメーター (バイト単位)。ストライドは形状と要素のサイズに基づいて自動的に計算されます

Tensor(const ov::Output<const ov::Node> &port, const Allocator &allocator = {})#

ノードからのポートを使用して Tensor を構築します。デフォルトのアロケーターを使用して内部ホストストレージを割り当てます。

パラメーター:
  • port – ノードからのポート

  • allocator – 内部テンソルストレージ用のメモリーを割り当て

Tensor(const ov::Output<const ov::Node> &port, void *host_ptr, const Strides &strides = {})#

ノードからのポートを使用して Tensor を構築します。割り当てられたホストメモリーをラップします。

内部的にメモリー割り当てを行いません

パラメーター:
  • port – ノードからのポート

  • host_ptr – 初期化されたオブジェクトを含む事前割り当てられたホストメモリーへのポインタ

  • strides – オプションのストライド・パラメーター (バイト単位)。ストライドは形状と要素のサイズに基づいて自動的に計算されます

Tensor(const Tensor &other, const Coordinate &begin, const Coordinate &end)#

別のテンソルから関心領域 (ROI) テンソルを構築します。

内部的にメモリー割り当てを行いません

Beginend の次元数は、other.get_shape() の次元数と一致する必要があります。

パラメーター:
  • other – 元のテンソル

  • begin – 元のオブジェクト内の ROI オブジェクトの開始座標。

  • end – 元のオブジェクト内の ROI オブジェクトの終了座標。

void set_shape(const ov::Shape &shape)#

テンソルに新しい形状を設定し、新しい合計サイズが以前のサイズより大きい場合は割り当てを解除/割り当てます。

メモリー割り当てが発生する可能性があります

パラメーター:

shape – 新しい形状

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

テンソルの要素タイプ

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

テンソルの形状

void copy_to(ov::Tensor dst) const#

コピーテンソルとデスティネーション・テンソルは、同じ要素タイプと形状である必要があります。

パラメーター:

dst – デスティネーション・テンソル

bool is_continuous() const#

テンソルが連続しているかどうかをレポートします。

戻り値:

テンソルが連続していると true を返します

size_t get_size() const#

要素の合計数 (すべての次元の積、またはスカラーの場合は 1) を返します。

戻り値:

合計要素数

size_t get_byte_size() const#

現在のテンソルのサイズ (バイト単位) を返します。

戻り値:

テンソルのサイズ (バイト単位)

Strides get_strides() const#
戻り値:

テンソルのストライド (バイト単位)

void *data(const element::Type &type = {}) const#

基盤となるホストメモリーへのアクセスを提供します。

タイプ・パラメーターが指定されている場合、指定されたタイプの基本タイプがテンソル要素タイプの基本タイプと一致しないと、メソッドは例外をスローします。

パラメーター:

type – オプションのタイプ・パラメーター。

戻り値:

テンソルメモリーへのホストポインター

template<typename T, typename datatype = typename std::decay<T>::type>
inline T *data() const#

T タイプにキャストされたホストメモリーへのアクセスを提供します

指定されたタイプがテンソル要素タイプと一致しない場合、例外をスローします

戻り値:

指定された T タイプにキャストされたテンソルメモリーへのホストポインター。

bool operator!() const noexcept#

現在の テンソル・オブジェクトが初期化されていないことを確認します。

戻り値:

現在の テンソル・オブジェクトが初期化されていない場合は true を、それ以外は false を返します

explicit operator bool() const noexcept

現在の テンソル・オブジェクトが初期化されていることを確認します。

戻り値:

現在の テンソル・オブジェクトが初期化されている場合は true を、それ以外は false を返します

template<typename T>
inline std::enable_if<std::is_base_of<Tensor, T>::value, bool>::type is() const noexcept#

テンソル・オブジェクトをタイプ T にキャストできることを確認します。

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

T – チェックされるタイプ。テンソルから派生したクラスを表す必要があります

戻り値:

このオブジェクトを const T* タイプに動的にキャストできる場合は true です。それ以外は false です

template<typename T>
inline const std::enable_if<std::is_base_of<Tensor, T>::value, T>::type as() const#

このテンソル・オブジェクトを T タイプにキャストします。

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

T – キャストされるタイプ。テンソルから派生したクラスを表す必要があります

戻り値:

T オブジェクト

パブリック静的関数

static void type_check(const Tensor &tensor)#

openvino テンソルタイプをチェックします。

パラメーター:

tensor – タイプがチェックされるテンソル

スロー:

例外 – 指定されたテンソルのタイプチェックがパスしない場合

class CompiledModel#
#include <compiled_model.hpp>

このクラスはコンパイルされたモデルを表します。

モデルは、複数の最適化トランスフォーメーションを適用し、計算カーネルにマッピングすることで、特定のデバイスによってコンパイルされます。

パブリック関数

CompiledModel() = default#

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

~CompiledModel()#

デストラクターは、実装オブジェクトのアンロード順序とライブラリーへの参照を保持します。

std::shared_ptr<const Model> get_runtime_model() const#

デバイスからランタイムモデル情報を取得します。このオブジェクトは、特定のアクセラレーター用に最適化されたデバイス固有の内部モデルを表します。これには、デバイス固有のノード、ランタイム情報が含まれており、ソースモデルがどのように最適化されているか、最適な推論を行うカーネル、要素タイプ、およびレイアウトが選択されているかを理解するのに使用できます。

戻り値:

実行可能なグラフ情報を含むモデル。

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

コンパイルされたモデルのすべての入力を取得します。入力は、ov::op::v0::Parameter 操作の出力のベクトルとして表されます。これには、テンソルの形状、名前、要素タイプなど入力テンソルに関する情報が含まれています。

戻り値:

モデル入力の std::vector

const ov::Output<const ov::Node> &input() const#

コンパイルされたモデルの単一の入力を取得します。入力は、ov::op::v0::Parameter 操作の出力のベクトルとして表されます。これには、テンソルの形状、名前、要素タイプなど入力テンソルに関する情報が含まれています。

モデルに複数の入力がある場合、このメソッドは ov::Exception をスローします。

戻り値:

コンパイル済みモデルの入力

const ov::Output<const ov::Node> &input(size_t i) const#

I で識別されるコンパイル済みモデルの入力を取得します。これには、テンソルの形状、名前、要素タイプなど入力テンソルに関する情報が含まれています。

指定されたインデックス i の入力が見つからない場合、メソッドは ov::Exception をスローします。

パラメーター:

i – 入力インデックス。

戻り値:

コンパイル済みモデルの入力

const ov::Output<const ov::Node> &input(const std::string &tensor_name) const#

tensor_name で識別されるコンパイル済みモデルの入力を取得します。これには、テンソルの形状、名前、要素タイプなど入力テンソルに関する情報が含まれています。

指定されたテンソル名 ov::Exception の入力が見つからない場合、メソッドは ov::Exception をスローします。

パラメーター:

tensor_name – 入力テンソル名。

戻り値:

コンパイル済みモデルの入力

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

コンパイルされたモデルのすべての出力を取得します。出力は、ov::op::v0::Result 操作の出力のベクトルとして表されます。出力には、テンソルの形状、名前、要素タイプなど出力テンソルに関する情報が含まれています。

戻り値:

モデル出力の std::vector

const ov::Output<const ov::Node> &output() const#

コンパイルされたモデルの単一の出力を取得します。出力は、ov::op::v0::Result 操作の出力のベクトルとして表されます。出力には、テンソルの形状、名前、要素タイプなど出力テンソルに関する情報が含まれています。

モデルに複数の出力がある場合、このメソッドは ov::Exception をスローします。

戻り値:

コンパイル済みモデルの出力

const ov::Output<const ov::Node> &output(size_t i) const#

index で識別されるコンパイル済みモデルの出力を取得します。出力には、テンソルの形状、名前、要素タイプなど出力テンソルに関する情報が含まれています。

指定されたインデックス index の出力が見つからない場合、メソッドは ov::Exception をスローします。

パラメーター:

i – 入力インデックス。

戻り値:

コンパイル済みモデルの出力

const ov::Output<const ov::Node> &output(const std::string &tensor_name) const#

tensor_name で識別されるコンパイル済みモデルの出力を取得します。出力には、テンソルの形状、名前、要素タイプなど出力テンソルに関する情報が含まれています。

指定されたテンソル名 tensor_name の出力が見つからない場合、メソッドは ov::Exception をスローします。

パラメーター:

tensor_name出力テンソル名。

戻り値:

コンパイル済みモデルの出力

InferRequest create_infer_request()#

コンパイルされたモデルの推論に使用される推論要求オブジェクトを作成します。作成された要求には、入力テンソルと出力テンソルが割り当てられています (後で変更できます)。

戻り値:

InferRequest オブジェクト

void export_model(std::ostream &model_stream)#

現在コンパイルされたモデルを出力ストリーム std::ostream にエクスポートします。エクスポートされたモデルは、ov::Core::import_model メソッドを介してインポートすることもできます。

関連情報

ov::Core::import_model

パラメーター:

model_stream – モデルを保存する出力ストリーム。

void set_property(const AnyMap &properties)#

現在コンパイルされたモデルのプロパティーを設定します。

パラメーター:

properties – ペアのマップ: (プロパティー名、プロパティー値)。

template<typename ...Properties>
inline util::EnableIfAllStringAny<void, Properties...> set_property(Properties&&... properties)#

現在コンパイルされたモデルのプロパティーを設定します。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

パラメーター:

properties – オプションのペアパック: (プロパティー名、プロパティー値)。

Any get_property(const std::string &name) const#

現在コンパイルされたモデルのプロパティーを取得します。

このメソッドは、コンパイルされたモデルの推論に影響する情報を抽出します。サポートされている構成値のリストは、ov::supported_properties キーを使用して CompiledModel::get_property を介して抽出できますが、これらのキーの一部は動的に変更できません。例えば、コンパイルされたモデルが特定のデバイス用にすでにコンパイルされている場合、ov::device::id を変更することはできません。

パラメーター:

nameプロパティー・キーは、openvino/runtime/properties.hpp にあります。

戻り値:

プロパティー値。

template<typename T, PropertyMutability mutability>
inline T get_property(const ov::Property<T, mutability> &property) const#

デバイスの動作に関連するプロパティーを取得します。

このメソッドは、set_property メソッドを介して設定できる情報を抽出します。

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

T – 返される値のタイプ。

パラメーター:

propertyプロパティーのオブジェクト。

戻り値:

プロパティーの値。

RemoteContext get_context() const#

CompiledModel の作成に使用されたリモート・アクセラレーター・デバイス上のデバイス固有の共有コンテキストへのポインターを返します。

戻り値:

コンテキスト。

bool operator!() const noexcept#

現在の CompiledModel オブジェクトが初期化されていないことを確認します。

戻り値:

現在の CompiledModel オブジェクトが初期化されていない場合は true を;、それ以外は false を返します。

explicit operator bool() const noexcept

現在の CompiledModel オブジェクトが初期化されていることを確認します。

戻り値:

現在の CompiledModel オブジェクトが初期化されている場合は true を、それ以外は false を返します。

class Core#
#include <core.hpp>

このクラスは、OpenVINO ランタイム Core エンティティーを表します。

ユーザー・アプリケーションは複数の Core クラスのインスタンスを作成できますが、この場合、ベースとなるプラグインは複数回作成され、複数の Core インスタンス間では共有されません。推奨される方法は、アプリケーションごとに 1 つの Core インスタンスを用意することです。

名前なしグループ

CompiledModel compile_model(const std::string &model_path, const AnyMap &properties = {})#

コンパイルされたモデルを IR/ONNX/PDPD ファイルから読み取り、AUTO プラグインで選択されたデフォルトの OpenVINO デバイスにロードします。

これは、特にキャッシュが有効で、キャッシュされたモデルが使用可能な場合には、Core::read_model + Core::compile_model(model_in_memory_object) フローを使用するより効率的です。

パラメーター:
  • model_path – モデルへのパス。

  • プロパティー – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

名前なしグループ

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> compile_model(const std::string &model_path, Properties&&... properties)#

コンパイルされたモデルを IR / ONNX / PDPD ファイルから読み取り、AUTO プラグインで選択されたデフォルトの OpenVINO デバイスにロードします。

これは、特にキャッシュが有効で、キャッシュされたモデルが使用可能な場合には、read_model + compile_model(Model) フローを使用するより効率的です。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります

パラメーター:
  • model_path – 文字列または wstring によるモデルへのパス

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) このロード操作にのみ影響します

戻り値:

コンパイルされたモデル

名前なしグループ

CompiledModel compile_model(const std::string &model_path, const std::string &device_name, const AnyMap &properties = {})#

モデルを読み取り、IR/ONNX/PDPD ファイルからコンパイル済みモデルを作成します。

これは、特にキャッシュが有効で、キャッシュされたモデルが使用可能な場合には、Core::read_model + Core::compile_model (model_in_memory_object) フローを使用するより効率的です。

パラメーター:
  • model_path – モデルへのパス。

  • device_name – モデルをロードするデバイスの名前。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

名前なしグループ

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> compile_model(const std::string &model_path, const std::string &device_name, Properties&&... properties)#

モデルを読み取り、IR/ONNX/PDPD ファイルからコンパイル済みモデルを作成します。

これは、特にキャッシュが有効で、キャッシュされたモデルが使用可能な場合には、read_model + compile_model(Model) フローを使用するより効率的です。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

パラメーター:
  • model_path – モデルへのパス。

  • device_name – モデルをロードするデバイスの名前。

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

パブリック関数

explicit Core(const std::string &xml_config_file = {})#

デバイスとそのプラグインの説明を含む OpenVINO Core インスタンスを構築します。

デバイスプラグインを構成する方法は 2 つあります:

  1. (デフォルト) 動的ライブラリーのビルドでは、XML 構成ファイルを使用します。

  2. 静的ライブラリーのビルドの場合は、厳密に定義された構成を使用します。

パラメーター:

xml_config_file – 読み込むプラグインが含まれる .xml ファイルへのパス。パスに拡張子付きのファイル名のみが含まれている場合、ファイルは OpenVINO ランタイム共有ライブラリーを含むフォルダーで検索されます。XML 構成ファイルが指定されていない場合、デフォルトの OpenVINO ランタイムプラグインは次の場所からロードされます:

  1. (動的ビルド) デフォルトの plugins.xml ファイルは、OpenVINO ランタイム共有ライブラリーと同じフォルダーにあります。

  2. (静的ビルド) 静的に定義された構成。この場合、.xml ファイルへのパスは無視されます。

std::map<std::string, Version> get_versions(const std::string &device_name) const#

デバイスプラグインのバージョン情報を返します。デバイス名は複雑になる可能性があり、HETERO:CPU,GPU のように一度に複数のデバイスを識別することができます。この場合、std::map にはデバイスごとに複数のエントリーが含まれます。

パラメーター:

device_name – プラグインを識別するためのデバイス名。

戻り値:

バージョンのベクトル。

std::shared_ptr<ov::Model> read_model(const std::string &model_path, const std::string &bin_path = {}) const#

IR / ONNX / PDPD / TF / TFLite 形式からモデルを読み取ります。

パラメーター:
  • model_path – モデルへのパス。

  • bin_path – データファイルへのパス。IR 形式 (*.bin):

    • bin_path が空の場合、xml と同じ名前の bin ファイルの読み取りを試行し、

    • 同じ名前の bin ファイルが見つからない場合は、重みなしで IR をロードします。次のファイル形式では、bin_path パラメーターは使用されません:

    • ONNX 形式 (*.onnx)

    • PDPD (*.pdmodel)

    • TF (*.pb)

    • TFLite (*.tflite)

戻り値:

モデル。

std::shared_ptr<ov::Model> read_model(const std::string &model, const Tensor &weights) const#

IR / ONNX / PDPD / TF / TFLite 形式からモデルを読み取ります。

作成されたモデル・オブジェクトは weights オブジェクトと重みを共有します。したがって、モデル定数データが無効なメモリーを指すことになるため、後で解放できる一時データに weights を作成してはなりません。

パラメーター:
  • model – IR / ONNX / PDPD / TF / TFLite 形式のモデルを含む文字列。

  • weights – 重みを持つ定数テンソルへの共有ポインター。ONNX / PDPD / TF / TFLite モデルの読み取りは、weights テンソルからの重みの読み込みをサポートしていません。

戻り値:

モデル。

CompiledModel compile_model(const std::shared_ptr<const ov::Model> &model, const AnyMap &properties = {})#

ソースモデルからコンパイルされたモデルを作成し、AUTO プラグインによって選択されたデフォルトの OpenVINO デバイスにロードします。

ユーザーは、必要な数のコンパイル済みモデルを作成し、それらを同時に使用することができます (ハードウェア・リソースの上限まで)。

パラメーター:
  • modelCore::read_model から取得された Model オブジェクト。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> compile_model(const std::shared_ptr<const ov::Model> &model, Properties&&... properties)#

ソースモデルからコンパイルされたモデルを作成し、AUTO プラグインによって選択されたデフォルトの OpenVINO デバイスにロードします。

ユーザーは、必要な数のコンパイル済みモデルを作成し、それらを同時に使用することができます (ハードウェア・リソースの上限まで)。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります

パラメーター:
  • modelCore::read_model から取得された Model オブジェクト

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) このロード操作にのみ影響します

戻り値:

コンパイルされたモデル

CompiledModel compile_model(const std::shared_ptr<const ov::Model> &model, const std::string &device_name, const AnyMap &properties = {})#

ソース・モデル・オブジェクトからコンパイル済みモデルを作成します。

ユーザーは、必要な数のコンパイル済みモデルを作成し、それらを同時に使用することができます (ハードウェア・リソースの上限まで)。

パラメーター:
  • modelCore::read_model から取得された Model オブジェクト。

  • device_name – モデルをロードするデバイスの名前。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> compile_model(const std::shared_ptr<const ov::Model> &model, const std::string &device_name, Properties&&... properties)#

ソース・モデル・オブジェクトからコンパイル済みモデルを作成します。

ユーザーは、必要な数のコンパイル済みモデルを作成し、それらを同時に使用することができます (ハードウェア・リソースの上限まで)。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります

パラメーター:
  • modelCore::read_model から取得された Model オブジェクト

  • device_name – ロードするモデルのデバイス名前

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) このロード操作にのみ影響します

戻り値:

コンパイルされたモデル

CompiledModel compile_model(const std::string &model, const ov::Tensor &weights, const std::string &device_name, const AnyMap &properties = {})#

モデルを読み取り、IR/ONNX/PDPD メモリーからコンパイル済みモデルを作成します。

作成されたモデル・オブジェクトは weights オブジェクトと重みを共有します。したがって、モデル定数データが無効なメモリーを指すことになるため、後で解放できる一時データに weights を作成してはなりません。

パラメーター:
  • model – IR/ONNX/PDPD 形式のモデルを含む文字列。

  • weights – 重みを持つ定数テンソルへの共有ポインター。ONNX/PDPD モデルの読み取りは、weights テンソルからの重みの読み込みをサポートしていません。

  • device_name – モデルをロードするデバイスの名前。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> compile_model(const std::string &model, const ov::Tensor &weights, const std::string &device_name, Properties&&... properties)#

モデルを読み取り、IR/ONNX/PDPD メモリーからコンパイル済みモデルを作成します。

作成されたモデル・オブジェクトは weights オブジェクトと重みを共有します。したがって、モデル定数データが無効なメモリーを指すことになるため、後で解放できる一時データに weights を作成してはなりません。

パラメーター:
  • model – IR/ONNX/PDPD 形式のモデルを含む文字列。

  • weights – 重みを持つ定数テンソルへの共有ポインター。ONNX/PDPD モデルの読み取りは、weights テンソルからの重みの読み込みをサポートしていません。

  • device_name – モデルをロードするデバイスの名前。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

戻り値:

コンパイルされたモデル

CompiledModel compile_model(const std::shared_ptr<const ov::Model> &model, const RemoteContext &context, const AnyMap &properties = {})#

指定されたリモート・コンテキスト内のソースモデルからコンパイルされたモデルを作成します。

パラメーター:
  • modelCore::read_model から取得された Model オブジェクト。

  • contextRemoteContext オブジェクトへのリファレンス。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル・オブジェクト

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> compile_model(const std::shared_ptr<const ov::Model> &model, const RemoteContext &context, Properties&&... properties)#

指定されたリモート・コンテキスト内のソースモデルからコンパイルされたモデルを作成します。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります

パラメーター:
  • modelCore::read_model から取得された Model オブジェクト

  • contextRemoteContext オブジェクトへのポインター

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) このロード操作にのみ影響します

戻り値:

コンパイルされたモデル・オブジェクト

void add_extension(const std::string &library_path)#

Core オブジェクトに拡張機能を登録します。

パラメーター:

library_pathov::Extension を使用したライブラリーへのパス。

void add_extension(const std::shared_ptr<ov::Extension> &extension)#

Core オブジェクトに拡張機能を登録します。

パラメーター:

extension – 拡張機能へのポインター。

void add_extension(const std::vector<std::shared_ptr<ov::Extension>> &extensions)#

Core オブジェクトに拡張機能を登録します。

パラメーター:

extensions – ロードされた拡張機能のベクトル。

template<class T, typename std::enable_if<std::is_base_of<ov::Extension, T>::value, bool>::type = true>
inline void add_extension(const T &extension)#

Core オブジェクトに拡張機能を登録します。

パラメーター:

extensionov::Extension クラスから継承された Extension クラス。

template<class T, class ...Targs, typename std::enable_if<std::is_base_of<ov::Extension, T>::value, bool>::type = true>
inline void add_extension(const T &extension, Targs... args)#

Core オブジェクトに拡張機能を登録します。

パラメーター:
  • extensionov::Extension クラスから継承された Extension クラス。

  • args – 拡張機能のリスト。

template<class T, typename std::enable_if<std::is_base_of<ov::op::Op, T>::value, bool>::type = true>
inline void add_extension()#

ov::op::Op から継承されたカスタム操作を登録します。

template<class T, class ...Targs, typename std::enable_if<std::is_base_of<ov::op::Op, T>::value && sizeof...(Targs), bool>::type = true>
inline void add_extension()#

ov::op::Op から継承さたカスタム操作を登録します。

CompiledModel import_model(std::istream &model_stream, const std::string &device_name, const AnyMap &properties = {})#

以前エクスポートしたモデルからコンパイル済みモデルをインポートします。

パラメーター:
  • model_streamov::CompiledModel::export_model メソッドを使用して以前にエクスポートされたモデルを含む std::istream 入力ストリーム。

  • device_name – コンパイル済みモデルをインポートするデバイスの名前。注意: 元のモードをコンパイルするため device_name デバイスが使用されなかった場合、例外がスローされます。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> import_model(std::istream &model_stream, const std::string &device_name, Properties&&... properties)#

以前エクスポートしたモデルからコンパイル済みモデルをインポートします。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

パラメーター:
  • modelModel ストリーム。

  • device_name – コンパイル済みモデルをインポートするデバイスの名前。注意: 元のモードをコンパイルするため device_name デバイスが使用されなかった場合、例外がスローされます。

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

CompiledModel import_model(std::istream &model_stream, const RemoteContext &context, const AnyMap &properties = {})#

指定されたリモート・コンテキストを使用して、以前にエクスポートされたモデルからコンパイルされたモデルをインポートします。

パラメーター:
  • model_stream – std::istream 入力ストリームには、ov::CompiledModel::export_model メソッドから以前にエクスポートされたモデルが含まれています。

  • contextRemoteContext オブジェクトへのリファレンス。注意: context からのデバイスが元のモードのコンパイルに使用されなかった場合は、例外がスローされます。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

template<typename ...Properties>
inline util::EnableIfAllStringAny<CompiledModel, Properties...> import_model(std::istream &model_stream, const RemoteContext &context, Properties&&... properties)#

指定されたリモート・コンテキストを使用して、以前にエクスポートされたモデルからコンパイルされたモデルをインポートします。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

パラメーター:
  • modelModel ストリーム。

  • contextRemoteContext オブジェクトへのポインター。

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) このロード操作にのみ影響します。

戻り値:

コンパイルされたモデル

SupportedOpsMap query_model(const std::shared_ptr<const ov::Model> &model, const std::string &device_name, const AnyMap &properties = {}) const#

指定されたプロパティーを持つ指定されたモデルをサポートしているかデバイスに照会します。

パラメーター:
  • device_name – 照会するデバイス名。

  • model – 照会する Model オブジェクト。

  • properties – オプションのペアマップ: (プロパティー名、プロパティー値)。

戻り値:

操作名 -> この操作をサポートするデバイス名のペアのマップを含むオブジェクト。

template<typename ...Properties>
inline util::EnableIfAllStringAny<SupportedOpsMap, Properties...> query_model(const std::shared_ptr<const ov::Model> &model, const std::string &device_name, Properties&&... properties) const#

指定されたプロパティーを持つ指定されたモデルをサポートしているかデバイスに照会します。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

パラメーター:
  • device_name – 照会するデバイス名。

  • model – 照会する Model オブジェクト。

  • properties – オプションのペアパック: (プロパティー名、プロパティー値) この照会操作にのみ影響します。

戻り値:

操作名 -> この操作をサポートするデバイス名のペアのマップを含むオブジェクト。

void set_property(const AnyMap &properties)#

登録されたすべてのデバイスのプロパティーを設定します。受け入れ可能なキーは openvino/runtime/properties.hpp にあります。

パラメーター:

properties – ペアのマップ: (プロパティー名、プロパティー値)。

template<typename ...Properties>
inline util::EnableIfAllStringAny<void, Properties...> set_property(Properties&&... properties)#

登録されたすべてのデバイスのプロパティーを設定します。受け入れ可能なキーは openvino/runtime/properties.hpp にあります。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

パラメーター:

properties – オプションのペアパック: プロパティー名、プロパティー値。

void set_property(const std::string &device_name, const AnyMap &properties)#

デバイスのプロパティーを設定します。受け入れ可能なキーは openvino/runtime/properties.hpp にあります。

パラメーター:
  • device_name – デバイス名。

  • properties – ペアのマップ: (プロパティー名、プロパティー値)。

template<typename ...Properties>
inline util::EnableIfAllStringAny<void, Properties...> set_property(const std::string &device_name, Properties&&... properties)#

デバイスのプロパティーを設定します。受け入れ可能なキーは openvino/runtime/properties.hpp にあります。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります。

パラメーター:
  • device_name – デバイス名。

  • properties – オプションのペアパック: (プロパティー名、プロパティー値)。

Any get_property(const std::string &device_name, const std::string &name) const#

デバイスの動作に関連するプロパティーを取得します。

このメソッドは、set_property メソッドを介して設定できる情報を抽出します。

パラメーター:
  • device_name – プロパティー値を取得するデバイスの名前。

  • nameプロパティー名。

戻り値:

プロパティー名に対応するプロパティーの値。

Any get_property(const std::string &device_name, const std::string &name, const AnyMap &arguments) const#

デバイスの動作に関連するプロパティーを取得します。

このメソッドは、set_property メソッドを介して設定できる情報を抽出します。

パラメーター:
  • device_name – プロパティー値を取得するデバイスの名前。

  • nameプロパティー名。

  • arguments – プロパティーを取得する追加の引数。

戻り値:

プロパティー名に対応するプロパティーの値。

inline Any get_property(const std::string &name) const#

Core の動作に関連するプロパティーを取得します。

このメソッドは、set_property メソッドを介して設定できる情報を抽出します。

パラメーター:

nameプロパティー名。

戻り値:

プロパティー名に対応するプロパティーの値。

template<typename T, PropertyMutability M>
inline T get_property(const std::string &device_name, const ov::Property<T, M> &property) const#

デバイスの動作に関連するプロパティーを取得します。

このメソッドは、共通のデバイスまたはシステムのプロパティーを要求するのに必要です。それらは、デバイス名、温度、その他のデバイス固有の値です。

テンプレート・パラメーター:
パラメーター:
  • device_name – プロパティー値を取得するデバイスの名前。

  • propertyプロパティーのオブジェクト。

戻り値:

プロパティー値。

template<typename T, PropertyMutability M>
inline T get_property(const std::string &device_name, const ov::Property<T, M> &property, const AnyMap &arguments) const#

デバイスの動作に関連するプロパティーを取得します。

このメソッドは、共通のデバイスまたはシステムのプロパティーを要求するのに必要です。それらは、デバイス名、温度、その他のデバイス固有の値です。

テンプレート・パラメーター:
パラメーター:
  • device_name – プロパティー値を取得するデバイスの名前。

  • propertyプロパティーのオブジェクト。

  • arguments – プロパティーを取得する追加の引数。

戻り値:

プロパティー値。

template<typename T, PropertyMutability M, typename ...Args>
inline util::EnableIfAllStringAny<T, Args...> get_property(const std::string &device_name, const ov::Property<T, M> &property, Args&&... args) const#

デバイスの動作に関連するプロパティーを取得します。

このメソッドは、共通のデバイスまたはシステムのプロパティーを要求するのに必要です。それらは、デバイス名、温度、その他のデバイス固有の値です。

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

  • Mプロパティーの可変性。

  • Args – 追加引数のセットはプロパティー・オブジェクト変数で終了します。

パラメーター:
  • device_name – プロパティー値を取得するデバイスの名前。

  • propertyプロパティーのオブジェクト。

  • args – オプションのペアパック: (引数名、引数値) はプロパティー・オブジェクトで終了しました。

戻り値:

プロパティー値。

std::vector<std::string> get_available_devices() const#

推論に利用可能なデバイスを返します。Core オブジェクトは、登録されているすべてのプラグインを調べて、利用可能なデバイスについて問い合わせます。

戻り値:

デバイスのベクトル。デバイスは { CPU、GPU.0、GPU.1、NPU } として返されます。特定のタイプのデバイスが複数ある場合は、’.#’ サフィックスを使用して列挙されます。このように列挙されたデバイスは、後で Core::compile_modelCore::query_modelCore::set_property などのすべての Core メソッドでデバイス名として使用できます。

void register_plugin(const std::string &plugin, const std::string &device_name, const ov::AnyMap &config = {})#

OpenVINO ランタイム内でこのデバイスを有効にする新しいデバイスとプラグインを登録します。

セキュリティー上の理由から、プラグインを登録するには絶対パスを指定することを推奨します。

パラメーター:
  • plugin – プラグインのパス (絶対または相対) または名前。プラットフォームに応じて、plugin は共有ライブラリーのサフィックスとプリフィクスでラップされ、ライブラリーの完全な名前を識別します。例えば、Linux* プラットフォームでは、plugin_name として指定されたプラグイン名は libplugin_name.so としてラップされます。プラグイン検索アルゴリズム:

    • Plugin が正確なライブラリー・パス (絶対または相対) を指している場合は、それが使用されます。

    • Plugin がファイル名 (libplugin_name.so) またはプラグイン名 (plugin_name) を指定する場合、プラットフォームに応じて、CWD 内または PATH/LD_LIBRARY_PATH/DYLD_LIBRARY_PATH 環境変数によって示されるパス内でファイル名 (libplugin_name.so) が検索されます。

  • device_name – プラグインを登録するデバイス名。

  • config – プラグイン設定オプション

void unload_plugin(const std::string &device_name)#

device_name で識別される以前にロードされたプラグインを OpenVINO ランタイムからアンロードします。このメソッドは、ロードされたプラグイン・インスタンスを削除し、そのリソースを解放するのに必要です。指定されたデバイスのプラグインがこれまで作成されていない場合、メソッドは例外をスローします。

このメソッドは、OpenVINO Core オブジェクトに認識されているプラ​​グインを削除しません。

パラメーター:

device_name – OpenVINO ランタイムから削除するプラグインを識別するデバイス名。

void register_plugins(const std::string &xml_config_file)#

プラグインの説明を含む XML 構成ファイルを使用して、デバイスプラグインを OpenVINO ランタイム Core インスタンスに登録します。

XML ファイルの構造は以下のとおりです:

<Ie> 
    <plugins> 
        <plugin name="" location=""> 
            <extensions> 
                <extension location=""/> 
            </extensions> 
            <properties> 
                <property key="" value=""/> 
            </properties> 
        </plugin> 
    </plugins> 
</ie>

  • name は、プラグインによって有効にされたデバイスの名前を識別します。

  • location は、プラグインを含む動的ライブラリーへの絶対パスを指定します。パスは XML ファイル・ディレクトリーを基準とした相対パスにすることもできます。異なる構成を持つさまざまなシステムで、共通の構成を持つことが可能になります。

  • properties は、ov::Core::set_property メソッドを介してプラグインに設定されます。

  • extensions は、ov::Core::add_extension メソッドを介してプラグインに設定されます。

セキュリティー上の理由から、プラグインを登録するには絶対パスを指定することを推奨します。

パラメーター:

xml_config_file – 登録するプラグインを含む .xml ファイルへのパス。

RemoteContext create_context(const std::string &device_name, const AnyMap &remote_properties)#

指定されたプラグイン固有の低レベルデバイス API パラメーター (デバイスハンドル、ポインター、コンテキストなど) を使用して、指定されたアクセラレーター・デバイス上に新しいリモート共有コンテキスト・オブジェクトを作成します。

パラメーター:
  • device_name – 新しい共有コンテキストを作成するデバイスの名前。

  • params – デバイス固有の共有コンテキスト・リモート・プロパティーのマップ。

戻り値:

作成されたリモート・コンテキストへのリファレンス。

template<typename ...Properties>
inline util::EnableIfAllStringAny<RemoteContext, Properties...> create_context(const std::string &device_name, Properties&&... remote_properties)#

指定されたプラグイン固有の低レベルデバイス API プロパティー (デバイスハンドル、ポインター、コンテキストなど) を使用して、指定されたアクセラレーター・デバイス上に新しい共有コンテキスト・オブジェクトを作成します。

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

Propertiesstd::pair<std::string, ov::Any> タイプのパックである必要があります

パラメーター:
  • device_name – 新しい共有コンテキストを作成するデバイスの名前。

  • params – デバイス固有の共有コンテキスト・リモート・プロパティーのパック。

戻り値:

作成されたリモート・コンテキストへの共有ポインター。

RemoteContext get_default_context(const std::string &device_name)#

指定されたアクセラレーター・デバイスのデフォルト (プラグイン提供) 共有コンテキスト・オブジェクトへのポインターを取得します。

パラメーター:

device_name – デフォルトの共有コンテキストを取得するデバイスの名前。

戻り値:

デフォルト・リモート・コンテキストへのリファレンス。

class Cancelled : public ov::Exception#
#include <exception.hpp>

非同期操作がキャンセルされた場合にスローされます。

class Busy : public ov::Exception#
#include <exception.hpp>

要求が計算操作でビジー状態のときに InferRequest メソッドを呼び出すとスローされます。

class InferRequest#
#include <infer_request.hpp>

これは、非同期または同期方式で実行できる推論要求のクラスです。

パブリック関数

InferRequest() = default#

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

InferRequest(const InferRequest &other) = default#

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

パラメーター:

other – 別の InferRequest オブジェクト。

InferRequest &operator=(const InferRequest &other) = default#

デフォルトコピー代入オペレーター。

パラメーター:

other – 別の InferRequest オブジェクト。

戻り値:

現在のオブジェクトへのリファレンス。

InferRequest(InferRequest &&other) = default#

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

パラメーター:

other – 別の InferRequest オブジェクト。

InferRequest &operator=(InferRequest &&other) = default#

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

パラメーター:

other – 別の InferRequest オブジェクト。

戻り値:

現在のオブジェクトへのリファレンス。

~InferRequest()#

デストラクターは、実装オブジェクトのアンロード順序とライブラリーへの参照を保持します。

デフォルトで生成された代入演算子内での破棄順序を維持するため、_impl_so の前に格納されます。ライブラリーを明示的に参照する前に、デストラクターを使用して実装オブジェクトを削除します。

void set_tensor(const std::string &tensor_name, const Tensor &tensor)#

推論する入力/出力テンソルを設定します。

パラメーター:
  • tensor_name – 入力または出力テンソルの名前。

  • tensor – テンソルへの参照。テンソルの element_type と形状は、モデルの入力/出力 element_type とサイズと一致する必要があります。

void set_tensor(const ov::Output<const ov::Node> &port, const Tensor &tensor)#

推論の入力/出力テンソルを設定します。

パラメーター:
void set_tensor(const ov::Output<ov::Node> &port, const Tensor &tensor)#

推論の入力/出力テンソルを設定します。

パラメーター:
void set_tensors(const std::string &tensor_name, const std::vector<Tensor> &tensors)#

テンソル名によって推論する入力データのテンソルのバッチを設定します。Model入力にはバッチ次元が必要であり、tensors の数はバッチサイズと一致する必要があります。現在のバージョンでは、モデル入力のテンソル設定のみがサポートされています。tensor_name が出力 (またはその他の非入力ノード) に関連付けられている場合は、例外がスローされます。

パラメーター:
  • tensor_name – 入力テンソルの名前。

  • tensors – バッチ推論要求の入力テンソル。各テンソルのタイプは、モデル入力要素のタイプと形状 (バッチ次元を除く) と一致する必要があります。テンソルの合計サイズは入力サイズと一致する必要があります。

void set_tensors(const ov::Output<const ov::Node> &port, const std::vector<Tensor> &tensors)#

入力ポートによって推論する入力データのテンソルのバッチを設定します。Model入力にはバッチ次元が必要であり、tensors の数はバッチサイズと一致する必要があります。現在のバージョンでは、モデル入力のテンソル設定のみがサポートされています。port が出力 (またはその他の非入力ノード) に関連付けられている場合は、例外がスローされます。

パラメーター:
  • port – 入力テンソルのポート。

  • tensors – バッチ推論要求の入力テンソル。各テンソルのタイプは、モデル入力要素のタイプと形状 (バッチ次元を除く) と一致する必要があります。テンソルの合計サイズは入力サイズと一致する必要があります。

void set_input_tensor(size_t idx, const Tensor &tensor)#

推論の入力テンソルを設定します。

パラメーター:
  • idx – 入力テンソルのインデックス。idx がモデル入力数より大きい場合、例外がスローされます。

  • tensor – テンソルへの参照。テンソルの element_type と形状は、モデルの入力/出力 element_type とサイズと一致する必要があります。

void set_input_tensor(const Tensor &tensor)#

単一の入力でモデルを推論するため入力テンソルを設定します。

モデルに複数の入力がある場合は、例外がスローされます。

パラメーター:

tensor – 入力テンソルへのリファレンス。

void set_input_tensors(const std::vector<Tensor> &tensors)#

単一の入力データに対してテンソルのバッチを設定します。Model入力にはバッチ次元が必要であり、tensors の数はバッチサイズと一致する必要があります。

パラメーター:

tensors – バッチ推論要求の入力テンソル。各テンソルのタイプは、モデル入力要素のタイプと形状 (バッチ次元を除く) と一致する必要があります。テンソルの合計サイズは入力サイズと一致する必要があります。

void set_input_tensors(size_t idx, const std::vector<Tensor> &tensors)#

入力名によって推論する入力データのテンソルのバッチを設定します。Model 入力にはバッチ次元が必要であり、テンソルの数はバッチサイズと一致する必要があります。

パラメーター:
  • idx – 入力テンソルの名前。

  • tensors – バッチ推論要求の入力テンソル。各テンソルのタイプは、モデル入力要素のタイプと形状 (バッチ次元を除く) と一致する必要があります。テンソルの合計サイズは入力サイズと一致する必要があります。

void set_output_tensor(size_t idx, const Tensor &tensor)#

推論の出力テンソルを設定します。

ov::Modelov::CompiledModel および ov::InferRequest 間で保存される入力のインデックス。

パラメーター:
  • idx – 出力テンソルのインデックス。

  • tensor – 出力テンソルへのリファレンス。テンソルのタイプは、モデル出力要素のタイプおよび形状と一致する必要があります。

void set_output_tensor(const Tensor &tensor)#

出力テンソルを設定して、単一の出力を持つモデルを推論します。

モデルに複数の出力がある場合は、例外がスローされます。

パラメーター:

tensor – 出力テンソルへのリファレンス。

Tensor get_tensor(const std::string &tensor_name)#

テンソル名で推論の入力/出力テンソルを取得します。

パラメーター:

device_name – 取得するテンソル名。

戻り値:

tensor_name という名前のテンソル。テンソルが見つからない場合は、例外がスローされます。

Tensor get_tensor(const ov::Output<const ov::Node> &port)#

推論の入力/出力テンソルを取得します。

指定された port を持つテンソルが見つからない場合は、例外がスローされます。

パラメーター:

port – 取得するテンソルのポート。

戻り値:

ポート portテンソル

Tensor get_tensor(const ov::Output<ov::Node> &port)#

推論の入力/出力テンソルを取得します。

指定された port を持つテンソルが見つからない場合は、例外がスローされます。

パラメーター:

port – 取得するテンソルのポート。

戻り値:

ポート portテンソル

Tensor get_input_tensor(size_t idx)#

推論の入力テンソルを取得します。

パラメーター:

idx – 取得するテンソルのインデックス。

戻り値:

入力インデックス idx を持つ Tensor。指定された idx を持つテンソルが見つからない場合は、例外がスローされます。

Tensor get_input_tensor()#

推論の入力テンソルを取得します。

戻り値:

モデルの入力テンソル。モデルに複数の入力がある場合は、例外がスローされます。

Tensor get_output_tensor(size_t idx)#

推論の出力テンソルを取得します。

パラメーター:

idx – 取得するテンソルのインデックス。

戻り値:

出力インデックス idx を持つ Tensor。指定された idx を持つテンソルが見つからない場合は、例外がスローされます。

Tensor get_output_tensor()#

推論の出力テンソルを取得します。

戻り値:

モデルの 出力テンソル。モデルに複数の出力がある場合は、例外がスローされます。

void infer()#

同期モードで指定された入力を推論します。

要求が進行中 (実行中またはキューで待機中)、InferRequest のすべてのメソッドをブロックします。いずれかのメソッドを呼び出すと、ov::Busy 例外がスローされます。

void cancel()

推論要求のキャンセル。

std::vector<ProfilingInfo> get_profiling_info() const#

レイヤーごとにパフォーマンス測定値を照会して、最も時間のかかる操作を特定します。

すべてのプラグインが意味のあるデータを提供するわけではありません。

戻り値:

モデル内の操作のプロファイル情報のベクトル。

void start_async()#

指定された入力の推論を非同期モードで開始します。

すぐに戻ります。推論もまたすぐに始まります。リクエストが実行状態にあるときに任意のメソッドを呼び出すと、ov::Busy 例外がスローされます。

void wait()#

結果が利用可能になるまで待機します。結果が利用可能になるまでブロックします。

bool wait_for(const std::chrono::milliseconds timeout)#

結果が利用可能になるまで待機します。指定されたタイムアウトが経過するか、結果が利用可能になるまで、どちらか早い方までブロックします。

パラメーター:

timeout – ブロックする最大期間 (ミリ秒単位)。

戻り値:

推論要求の準備ができている場合は true、そうでない場合は false です。

void set_callback(std::function<void(std::exception_ptr)> callback)#

非同期要求の成功または失敗時に呼び出されるコールバック std::function を設定します。

警告

OpenVINO ランタイム・オブジェクトへの強参照をコールバックにキャプチャーしないでください。次のオブジェクトは次のようにキャプチャーしてはなりません:

  • ov::InferRequest

  • ov::ExecutableNetwork

  • ov::Core 指定されたオブジェクトは共有参照の概念を実装しているため、このオブジェクトを値でキャプチャーしないでください。メモリーリークや未定義の動作が発生する可能性があります。弱参照またはポインターを使用するようにしてください。

パラメーター:

callback – 推論が終了したときに呼び出されるコールバック・オブジェクト。

std::vector<VariableState> query_state()#

指定された推論要求の状態制御インターフェイスを取得します。

再帰モデルには状態制御が不可欠です。

戻り値:

可変状態オブジェクトのベクトル。

void reset_state()#

関連する推論要求の内部変数の状態を、対応する ReadValue ノードのデフォルト値にリセットします。

CompiledModel get_compiled_model()#

この推論要求を作成するコンパイル済みモデルを返します。

戻り値:

コンパイル済みモデル・オブジェクト。

bool operator!() const noexcept#

現在の InferRequest オブジェクトが初期化されていないことを確認します。

戻り値:

現在の InferRequest オブジェクトが初期化されていない場合は true を、それ以外は false を返します。

explicit operator bool() const noexcept

現在の InferRequest オブジェクトが初期化されていることを確認します。

戻り値:

現在の InferRequest オブジェクトが初期化されている場合は true を、それ以外は false を返します。

bool operator!=(const InferRequest &other) const noexcept#

この要求がその下で同じ実装をラップしているかどうか比較します。

パラメーター:

other – 別の推論要求。

戻り値:

現在の InferRequest オブジェクトがオペレーターの引数と同じ実装をラップしていない場合は True です。

bool operator==(const InferRequest &other) const noexcept#

この要求がその下で同じ実装をラップしているかどうか比較します。

パラメーター:

other – 別の推論要求。

戻り値:

現在の InferRequest オブジェクトがオペレーターの引数と同じ実装をラップする場合は True です。

class RemoteContext#
#include <remote_context.hpp>

このクラスは抽象化を表します

リモート (CPU 以外) アクセラレーター・デバイス固有の推論コンテキスト用。このようなコンテキストには、コンパイルされたモデルとリモート・メモリー・テンソルが存在し、関数、データを交換できるデバイス上の範囲を表します。

ov::intel_gpu::ocl::clContext によってサブクラス化されます。

パブリック関数

RemoteContext() = default#

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

RemoteContext(const RemoteContext &other) = default#

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

パラメーター:

other – 別の RemoteContext オブジェクト。

RemoteContext &operator=(const RemoteContext &other) = default#

デフォルトコピー代入オペレーター。

パラメーター:

other – 別の RemoteContext オブジェクト。

戻り値:

現在のオブジェクトへのリファレンス。

RemoteContext(RemoteContext &&other) = default#

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

パラメーター:

other – 別の RemoteContext オブジェクト。

RemoteContext &operator=(RemoteContext &&other) = default#

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

パラメーター:

other – 別の RemoteContext オブジェクト。

戻り値:

現在のオブジェクトへのリファレンス。

operator bool() const noexcept#

現在の RemoteContext オブジェクトが初期化されていることを確認します。

戻り値:

現在の RemoteContext オブジェクトが初期化されている場合は true を、それ以外は false を返します

~RemoteContext()#

デストラクターは、実装オブジェクトのアンロード順序とライブラリーへの参照を保持します。

template<typename T>
inline bool is() const noexcept#

RemoteContext オブジェクトをタイプ T にキャストできることを確認します。

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

T – チェックされるタイプ。RemoteContext から派生したクラスを表す必要があります

戻り値:

このオブジェクトを T* タイプに動的にキャストできる場合は true で、それ以外は false です。

template<typename T>
inline const T as() const#

この RemoteContext オブジェクトを T タイプにキャストします。

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

T – キャストされるタイプ。RemoteContext から派生したクラスを表す必要があります

戻り値:

T オブジェクト。

RemoteTensor create_tensor(const element::Type &type, const Shape &shape, const AnyMap &params = {})#

指定されたテンソルの記述と低レベルのデバイス固有のパラメーターを使用して、デバイスメモリーにメモリーテンソルを割り当てるか、ユーザー指定のメモリーハンドルをラップします。RemoteTensor インターフェイスを実装するオブジェクトへのポインターを返します。

パラメーター:
  • type – テンソルの要素タイプを定義します。

  • shape – テンソルの形状を定義します。

  • param – 低レベルのテンソル・オブジェクト・パラメーターのマップ。

戻り値:

RemoteTensor インターフェイスを実装するプラグイン・オブジェクトへのポインター。

AnyMap get_params() const#

ベースとなるオブジェクトを使用した低レベルの操作に必要なデバイス固有のパラメーター・マップを返します。パラメーターには、デバイス/コンテキスト・ハンドル、アクセスフラグなどが含まれます。返されるマップの内容は、デバイスで現在設定されているリモート実行コンテキストによって異なります (動作シナリオ)。抽象化メソッド。

戻り値:

名前/パラメーター要素のマップ。

Tensor create_host_tensor(const element::Type type, const Shape &shape)#

このメソッドは、現在のコンテキスト内のデバイスに適したホストのテンソル・オブジェクトを作成するのに使用されます。例えば、GPU コンテキストは USM ホストメモリー (対応する拡張機能が利用可能な場合) を割り当てることがありますが、これは通常のホストメモリーよりも効率的である可能性があります。

パラメーター:
  • typeTensor の要素タイプ。

  • shapeTensor の形状。

戻り値:

デバイスに適したメモリーを備えたテンソル・インスタンス。

パブリック静的関数

static void type_check(const RemoteContext &remote_context, const std::map<std::string, std::vector<std::string>> &type_info = {})#

内部メソッド: リモートタイプをチェックします。

パラメーター:
  • remote_context – タイプがチェックされるリモート・コンテキスト。

  • type_info – リモート・オブジェクトのランタイム情報を含むマップ。

スロー:

Exception – 指定されたパラメーターによるタイプチェックが失敗した場合。

class RemoteTensor : public ov::Tensor#
#include <remote_tensor.hpp>

リモート・メモリー・アクセスおよび相互運用性 API。

ov::intel_gpu::ocl::ClBufferTensorov::intel_gpu::ocl::ClImage2DTensorov::intel_gpu::ocl::USMTensor によってサブクラス化されます

パブリック関数

void *data(const element::Type) = delete#

RemoteTensor ではホストメモリーにアクセスできません。デバイス固有のメモリーにアクセスするには、特定の RemoteTensor 派生オブジェクトにキャストしてそのプロパティーを操作するか、RemoteTensor::get_params を介してデバイスメモリーのプロパティーを解析します。

戻り値:

何も起こりません。例外がスローされます。

ov::AnyMap get_params() const#

ベースとなるオブジェクトに対して、低レベルの操作に必要なデバイス固有のパラメーターを含む文字列を返します。パラメーターには、デバイス/コンテキスト/サーフェス/バッファーハンドル、アクセスフラグなどが含まれます。返されるマップの内容は、デバイスで現在設定されているリモート実行コンテキストによって異なります (動作シナリオ)。抽象化メソッド。

戻り値:

名前/パラメーター要素のマップ。

パブリック静的関数

static void type_check(const Tensor &tensor, const std::map<std::string, std::vector<std::string>> &type_info = {})#

OpenVINO リモートタイプをチェックします。

パラメーター:
  • tensor – タイプがチェックされる Tensor

  • type_info – リモート・オブジェクトのランタイム情報を含むマップ。

スロー:

Exception – 指定されたパラメーターによるタイプチェックが失敗した場合。

class VariableState#
#include <variable_state.hpp>

VariableState クラス。

パブリック関数

VariableState() = default#

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

~VariableState()#

デストラクターは、実装オブジェクトのアンロード順序とライブラリーへの参照を保持します。

void reset()

関連する推論要求の内部変数の状態を、対応する ReadValue ノードのデフォルト値にリセットします。

std::string get_name() const#

現在の変数状態の名前を取得します。配列の長さが十分でない場合、名前は len で切り捨てられ、null 終端文字が挿入されます。対応する ReadValuevariable_id が変数状態名として使用されます。

戻り値:

状態名を表す文字列。

Tensor get_state() const#

変数状態の値を返します。

戻り値:

状態を表すテンソル。

void set_state(const Tensor &state)#

次の推論のための新しい状態を設定します。

パラメーター:

state – 設定する現在の状態。

struct ProfilingInfo#
#include <profiling_info.hpp>

操作ごとの基本的な推論プロファイル情報を表します。

タイリングによって操作を実行する場合、各タイルあたりの合計時間が合計実行時間として示されます。並列実行であるため、すべてのノードの合計実行時間は合計推論時間よりも長くなる可能性があります。

パブリックタイプ

enum class Status#

ノードの一般的なステータスを定義します。

値:

enumerator NOT_RUN#

ノードは実行されません。

enumerator OPTIMIZED_OUT#

グラフ最適化フェーズ中にノードが最適化されます。

enumerator EXECUTED#

ノードは実行されました。

パブリックメンバー

Status status#

ノードのステータスを定義します。

std::chrono::microseconds real_time#

ノードが実行された絶対時間 (合計、マイクロ秒単位)。

std::chrono::microseconds cpu_time#

ノードが実行されたホストの純粋な CPU 時間。

std::string node_name#

ノードの名前。

std::string exec_type#

ユニットの実行タイプ。

std::string node_type#

Node タイプ