ailia
1.5.0.0
|
クラス | |
class | AILIAEnvironment |
struct | ailiaFileCallback |
class | AILIAShape |
公開メンバ関数 | |
delegate IntPtr | ailiaCallbackOpen (IntPtr args) |
delegate Int32 | ailiaCallbackSeek (IntPtr fp, Int64 offset) |
delegate Int64 | ailiaCallbackTell (IntPtr fp) |
delegate Int64 | ailiaCallbackSize (IntPtr fp) |
delegate Int32 | ailiaCallbackRead (IntPtr dest, Int64 size, IntPtr fp) |
delegate Int32 | ailiaCallbackClose (IntPtr fp) |
static int | ailiaCreate (ref IntPtr net, int env_id, int num_thread) |
ネットワークオブジェクトを作成します。 [詳解] | |
static int | ailiaOpenStreamFile (IntPtr net, string path) |
ネットワークオブジェクトを初期化します。(ファイルから読み込み) [詳解] | |
static int | ailiaOpenWeightFile (IntPtr net, string path) |
ネットワークオブジェクトに重み係数を読み込みます [詳解] | |
static int | ailiaOpenStreamEx (IntPtr net, IntPtr fopen_args, ailiaFileCallback callback, Int32 version) |
ネットワークオブジェクトを初期化します。(ユーザ定義ファイルアクセスコールバック) [詳解] | |
static int | ailiaOpenWeightEx (IntPtr net, IntPtr fopen_args, ailiaFileCallback callback, Int32 version) |
ネットワークオブジェクトに重み係数を読み込みます。(ユーザ定義ファイルアクセスコールバック) [詳解] | |
static int | ailiaOpenStreamMem (IntPtr net, byte[] buf, UInt32 buf_size) |
ネットワークオブジェクトを初期化します。(メモリから読み込み) [詳解] | |
static int | ailiaOpenWeightMem (IntPtr net, byte[] buf, UInt32 buf_size) |
ネットワークオブジェクトに重み係数を読み込みます。(メモリから読み込み) [詳解] | |
static void | ailiaDestroy (IntPtr net) |
ネットワークオブジェクトを破棄します。 [詳解] | |
static int | ailiaSetInputShape (IntPtr net, [In] AILIAShape shape, UInt32 version) |
推論時の入力データの形状を変更します。 [詳解] | |
static int | ailiaSetInputShapeND (IntPtr net, UInt32[] shape, UInt32 dim) |
推論時の入力データの形状を変更します。 [詳解] | |
static int | ailiaGetInputShape (IntPtr net, [In, Out] AILIAShape shape, UInt32 version) |
推論時の入力データの形状を取得します。 [詳解] | |
static int | ailiaGetInputDim (IntPtr net, ref UInt32 dim) |
推論時の入力データの次元を取得します。 [詳解] | |
static int | ailiaGetInputShapeND (IntPtr net, UInt32[] shape, UInt32 dim) |
推論時の入力データの形状を取得します。 [詳解] | |
static int | ailiaGetOutputShape (IntPtr net, [In, Out] AILIAShape shape, UInt32 version) |
推論・学習時の出力データの形状を取得します。 [詳解] | |
static int | ailiaGetOutputDim (IntPtr net, ref UInt32 dim) |
推論時の出力データの次元を取得します。 [詳解] | |
static int | ailiaGetOutputShapeND (IntPtr net, UInt32[] shape, UInt32 dim) |
推論時の出力データの形状を取得します。 [詳解] | |
static int | ailiaPredict (IntPtr net, IntPtr dest, UInt32 dest_size, IntPtr src, UInt32 src_size) |
推論を行い推論結果を取得します。 [詳解] | |
static int | ailiaGetBlobCount (IntPtr net, ref UInt32 blob_count) |
推論時の内部データ(Blob)の数を取得します。 [詳解] | |
static int | ailiaGetBlobShape (IntPtr net, [In, Out] AILIAShape shape, UInt32 blob_idx, UInt32 version) |
推論時の内部データ(Blob)の形状を取得します。 [詳解] | |
static int | ailiaGetBlobDim (IntPtr net, ref UInt32 dim, UInt32 blob_idx) |
推論時の内部データ(Blob)の次元を取得します。 [詳解] | |
static int | ailiaGetBlobShapeND (IntPtr net, UInt32[] shape, UInt32 dim, UInt32 blob_idx) |
推論時の内部データ(Blob)の形状を取得します。 [詳解] | |
static int | ailiaGetBlobData (IntPtr net, IntPtr dest, UInt32 dest_size, UInt32 blob_idx) |
推論時の内部データ(Blob)を取得します。 [詳解] | |
static int | ailiaFindBlobIndexByName (IntPtr net, ref UInt32 blob_idx, string name) |
推論時の内部データ(Blob)のインデックスを名前で探し取得します。 [詳解] | |
static int | ailiaGetBlobNameLengthByIndex (IntPtr net, UInt32 blob_idx, ref UInt32 buffer_size) |
内部データ(Blob)の名前ための必要なバッファーサイズを出力します。 [詳解] | |
static int | ailiaFindBlobNameByIndex (IntPtr net, IntPtr buffer, UInt32 buffer_size, UInt32 blob_idx) |
推論時の内部データ(Blob)の名前をインデックスで探し取得します。 [詳解] | |
static int | ailiaGetSummaryLength (IntPtr net, ref UInt32 buffer_size) |
ネットワークSummary用に必要なバッファーサイズを出力します。 [詳解] | |
static int | ailiaSummary (IntPtr net, byte[] buffer, UInt32 buffer_size) |
各Blobの名前とシェイプを表示します。 [詳解] | |
static int | ailiaGetInputBlobCount (IntPtr net, ref UInt32 input_blob_count) |
入力データ(Blob)の数を取得します。 [詳解] | |
static int | ailiaGetBlobIndexByInputIndex (IntPtr net, ref UInt32 blob_idx, UInt32 input_blob_idx) |
入力データ(Blob)のインデックスを取得します [詳解] | |
static int | ailiaSetInputBlobData (IntPtr net, IntPtr src, UInt32 src_size, UInt32 blob_idx) |
指定したBlobに入力データを与えます。 [詳解] | |
static int | ailiaSetInputBlobShape (IntPtr net, [In] AILIAShape shape, UInt32 blob_idx, UInt32 version) |
指定したBlobの形状を変更します。 [詳解] | |
static int | ailiaSetInputBlobShapeND (IntPtr net, UInt32[] shape, UInt32 dim, UInt32 blob_idx) |
指定したBlobの形状を変更します。 [詳解] | |
static int | ailiaCopyBlobData (IntPtr dst_net, UInt32 dst_blob_idx, IntPtr src_net, UInt32 src_blob_idx) |
指定したBlob間でデータをコピーします [詳解] | |
static int | ailiaUpdate (IntPtr net) |
事前に指定した入力データで推論を行います。 [詳解] | |
static int | ailiaGetOutputBlobCount (IntPtr net, ref UInt32 output_blob_count) |
出力データ(Blob)の数を取得します。 [詳解] | |
static int | ailiaGetBlobIndexByOutputIndex (IntPtr net, ref UInt32 blob_idx, UInt32 output_blob_idx) |
出力データ(Blob)のインデックスを取得します [詳解] | |
static int | ailiaSetTemporaryCachePath (string path) |
一時キャッシュディレクトリを指定します [詳解] | |
static int | ailiaGetEnvironmentCount (ref Int32 env_count) |
利用可能な計算環境(CPU, GPU)の数を取得します [詳解] | |
static int | ailiaGetEnvironment (ref IntPtr env, UInt32 env_idx, UInt32 version) |
計算環境の一覧を取得します [詳解] | |
static int | ailiaGetSelectedEnvironment (IntPtr net, ref IntPtr env, UInt32 version) |
選択された計算環境を取得します [詳解] | |
static int | ailiaSetMemoryMode (IntPtr net, UInt32 mode) |
推論時のメモリの使用方針を設定します [詳解] | |
static int | ailiaDisableLayerFusion (IntPtr net) |
推論時のレイヤー統合を無効化します [詳解] | |
static int | ailiaSetProfileMode (IntPtr net, UInt32 mode) |
プロファイルモードをセットします [詳解] | |
static IntPtr | ailiaGetStatusString (Int32 status) |
ステータスコードを説明する文字列を返します [詳解] | |
static IntPtr | ailiaGetErrorDetail (IntPtr net) |
エラーの詳細を返します [詳解] | |
static IntPtr | ailiaGetVersion () |
ライブラリバージョンを取得します。 [詳解] | |
static int | ailiaFinalize () |
ailiaがグローバルに確保したGPUリソース等を解放します [詳解] | |
delegate Int32 ailia.Ailia.ailiaCallbackClose | ( | IntPtr | fp | ) |
delegate IntPtr ailia.Ailia.ailiaCallbackOpen | ( | IntPtr | args | ) |
delegate Int32 ailia.Ailia.ailiaCallbackRead | ( | IntPtr | dest, |
Int64 | size, | ||
IntPtr | fp | ||
) |
delegate Int32 ailia.Ailia.ailiaCallbackSeek | ( | IntPtr | fp, |
Int64 | offset | ||
) |
delegate Int64 ailia.Ailia.ailiaCallbackSize | ( | IntPtr | fp | ) |
delegate Int64 ailia.Ailia.ailiaCallbackTell | ( | IntPtr | fp | ) |
static int ailia.Ailia.ailiaCopyBlobData | ( | IntPtr | dst_net, |
UInt32 | dst_blob_idx, | ||
IntPtr | src_net, | ||
UInt32 | src_blob_idx | ||
) |
指定したBlob間でデータをコピーします
dst_net | コピー先のblobが含まれるネットワークオブジェクトポインター |
dst_blob_idx | コピー先のblobのインデックス |
src_net | コピー元のblobが含まれるネットワークオブジェクトポインター |
src_blob_idx | コピー元のblobのインデックス |
指定したネットワークのBlobをコピーします。コピー元とコピー先のネットワークは別のものを指定することができます。 コピー先のBlobは入力Blobのインデックスを、コピー元のBlobは任意のBlobのインデックスを指定してください。 コピー先にその他のBlobを指定した場合 AILIA_STATUS_INVALID_ARGUMENT が返ります。
static int ailia.Ailia.ailiaCreate | ( | ref IntPtr | net, |
int | env_id, | ||
int | num_thread | ||
) |
ネットワークオブジェクトを作成します。
net | ネットワークオブジェクトポインタへのポインタ |
env_id | 計算に利用する環境のID( ailiaGetEnvironment() で取得) AILIA_ENVIRONMENT_ID_AUTO にした場合は自動で選択する |
num_thread | スレッド数、 AILIA_MULTITHREAD_AUTO で自動 |
ネットワークオブジェクトを作成します。 推論実行環境を自動にした場合はCPUモードになり、BLASが利用できる場合はBLASを利用します。 なお、BLASを利用する場合num_threadは無視される場合があります。
static void ailia.Ailia.ailiaDestroy | ( | IntPtr | net | ) |
ネットワークオブジェクトを破棄します。
net | ネットワークオブジェクトポインタ |
static int ailia.Ailia.ailiaDisableLayerFusion | ( | IntPtr | net | ) |
推論時のレイヤー統合を無効化します
net | ネットワークオブジェクトポインタ |
レイヤー統合により取得できなくなるBlobを取得する必要がある場合などに用います。 ailiaCreate() の直後に指定する必要があります。ailiaOpenを呼び出した後は変更することができません。 なお、レイヤー統合を無効化すると推論速度が低下する場合があります。
static int ailia.Ailia.ailiaFinalize | ( | ) |
ailiaがグローバルに確保したGPUリソース等を解放します
ailiaCreate() で作成したインスタンス全てを ailiaDestroy() で解放した状態で呼び出す必要があります。 それ以外の状態で呼び出された場合 #ref AILIA_STATUS_INVALID_STATE を返します。
static int ailia.Ailia.ailiaFindBlobIndexByName | ( | IntPtr | net, |
ref UInt32 | blob_idx, | ||
string | name | ||
) |
推論時の内部データ(Blob)のインデックスを名前で探し取得します。
net | ネットワークオブジェクトポインタ |
blob_idx | blobのインデックス (0~ ailiaGetBlobCount() -1) |
name | 検索するBlob名 |
static int ailia.Ailia.ailiaFindBlobNameByIndex | ( | IntPtr | net, |
IntPtr | buffer, | ||
UInt32 | buffer_size, | ||
UInt32 | blob_idx | ||
) |
推論時の内部データ(Blob)の名前をインデックスで探し取得します。
net | ネットワークオブジェクトポインタ |
buffer | Blob名の出力先バッファ |
buffer_size | バッファのサイズ(終端null文字分を含む) |
blob_idx | 検索するblobのインデックス |
Find and get the name of the internal data (Blob) at the time of inference by index.
net | Network object pointer |
buffer | Output destination buffer for Blob name |
buffer_size | Size of buffer (including terminating null character) |
blob_idx | Index of blob to search |
static int ailia.Ailia.ailiaGetBlobCount | ( | IntPtr | net, |
ref UInt32 | blob_count | ||
) |
推論時の内部データ(Blob)の数を取得します。
net | ネットワークオブジェクトポインタ |
blob_count | blobの数の格納先 |
static int ailia.Ailia.ailiaGetBlobData | ( | IntPtr | net, |
IntPtr | dest, | ||
UInt32 | dest_size, | ||
UInt32 | blob_idx | ||
) |
推論時の内部データ(Blob)を取得します。
net | ネットワークオブジェクトポインタ |
dest | 推論結果書き出し先バッファ X,Y,Z,Wの順でnumeric型で格納 |
dest_size | 推論結果書き出し先バッファのbyte数 |
blob_idx | blobのインデックス (0~ ailiaGetBlobCount() -1) |
ailiaPredict() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。
static int ailia.Ailia.ailiaGetBlobDim | ( | IntPtr | net, |
ref UInt32 | dim, | ||
UInt32 | blob_idx | ||
) |
推論時の内部データ(Blob)の次元を取得します。
net | ネットワークオブジェクトポインタ |
dim | blobの次元の格納先 |
blob_idx | blobのインデックス (0~ ailiaGetBlobCount() -1) |
static int ailia.Ailia.ailiaGetBlobIndexByInputIndex | ( | IntPtr | net, |
ref UInt32 | blob_idx, | ||
UInt32 | input_blob_idx | ||
) |
入力データ(Blob)のインデックスを取得します
net | ネットワークオブジェクトポインタ |
blob_idx | blobのインデックス(0~ ailiaGetBlobCount() -1) |
input_blob_idx | 入力blob内でのインデックス(0~ ailiaGetInputBlobCount() -1) |
static int ailia.Ailia.ailiaGetBlobIndexByOutputIndex | ( | IntPtr | net, |
ref UInt32 | blob_idx, | ||
UInt32 | output_blob_idx | ||
) |
出力データ(Blob)のインデックスを取得します
net | ネットワークオブジェクトポインタ |
blob_idx | blobのインデックス(0~ ailiaGetBlobCount() -1) |
output_blob_idx | 出力blob内でのインデックス(0~ ailiaGetOutputBlobCount() -1) |
static int ailia.Ailia.ailiaGetBlobNameLengthByIndex | ( | IntPtr | net, |
UInt32 | blob_idx, | ||
ref UInt32 | buffer_size | ||
) |
内部データ(Blob)の名前ための必要なバッファーサイズを出力します。
net | ネットワークオブジェクトポインタ |
blob_idx | blobのインデックス (0~ ailiaGetBlobCount() -1) |
buffer_size | 出力:Blob名を出力するのに必要なバッファーサイズ(終端null文字分を含む) |
static int ailia.Ailia.ailiaGetBlobShape | ( | IntPtr | net, |
[In, Out] AILIAShape | shape, | ||
UInt32 | blob_idx, | ||
UInt32 | version | ||
) |
推論時の内部データ(Blob)の形状を取得します。
net | ネットワークオブジェクトポインタ |
shape | 入力データの形状情報 |
blob_idx | blobのインデックス (0~ ailiaGetBlobCount() -1) |
version | AILIA_SHAPE_VERSION |
static int ailia.Ailia.ailiaGetBlobShapeND | ( | IntPtr | net, |
UInt32[] | shape, | ||
UInt32 | dim, | ||
UInt32 | blob_idx | ||
) |
推論時の内部データ(Blob)の形状を取得します。
net | ネットワークオブジェクトポインタ |
shape | blobの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納) |
dim | shapeの次元 |
blob_idx | blobのインデックス (0~ ailiaGetBlobCount() -1) |
static int ailia.Ailia.ailiaGetEnvironment | ( | ref IntPtr | env, |
UInt32 | env_idx, | ||
UInt32 | version | ||
) |
計算環境の一覧を取得します
env | 環境情報の格納先(ライブラリを解放するまで有効) |
env_idx | 環境情報のインデックス(0~ ailiaGetEnvironmentCount() -1) |
version | AILIA_ENVIRONMENT_VERSION |
取得したポインタから以下のように構造体に変換して下さい。
Get a list of computation environments
env | Where environment information is stored (Valid until the library is released) |
env_idx | Index of environment information (0~ ailiaGetEnvironmentCount() -1) |
version | AILIA_ENVIRONMENT_VERSION |
Convert the obtained pointer to a structure as follows.
static int ailia.Ailia.ailiaGetEnvironmentCount | ( | ref Int32 | env_count | ) |
利用可能な計算環境(CPU, GPU)の数を取得します
env_count | 環境情報の数の格納先 |
static IntPtr ailia.Ailia.ailiaGetErrorDetail | ( | IntPtr | net | ) |
エラーの詳細を返します
net | ネットワークオブジェクトポインタ |
返値は解放する必要はありません。 文字列の有効期間は次にailiaのAPIを呼ぶまでです。 取得したポイントから以下のように文字列に変換して下さい。
static int ailia.Ailia.ailiaGetInputBlobCount | ( | IntPtr | net, |
ref UInt32 | input_blob_count | ||
) |
入力データ(Blob)の数を取得します。
net | ネットワークオブジェクトポインタ |
input_blob_count | 入力blobの数の格納先 |
static int ailia.Ailia.ailiaGetInputDim | ( | IntPtr | net, |
ref UInt32 | dim | ||
) |
推論時の入力データの次元を取得します。
net | ネットワークオブジェクトポインタ |
dim | 入力データの次元の格納先 |
static int ailia.Ailia.ailiaGetInputShape | ( | IntPtr | net, |
[In, Out] AILIAShape | shape, | ||
UInt32 | version | ||
) |
推論時の入力データの形状を取得します。
net | ネットワークオブジェクトポインタ |
shape | 入力データの形状情報 |
形状が5次元以上の場合は ailiaGetInputDim() 、 ailiaGetInputShapeND() を利用してください。 形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が格納されます。
static int ailia.Ailia.ailiaGetInputShapeND | ( | IntPtr | net, |
UInt32[] | shape, | ||
UInt32 | dim | ||
) |
推論時の入力データの形状を取得します。
net | ネットワークオブジェクトポインタ |
shape | 入力データの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納) |
dim | shapeの次元 |
形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が格納されます。
static int ailia.Ailia.ailiaGetOutputBlobCount | ( | IntPtr | net, |
ref UInt32 | output_blob_count | ||
) |
出力データ(Blob)の数を取得します。
net | ネットワークオブジェクトポインタ |
output_blob_count | 出力blobの数の格納先 |
static int ailia.Ailia.ailiaGetOutputDim | ( | IntPtr | net, |
ref UInt32 | dim | ||
) |
推論時の出力データの次元を取得します。
net | ネットワークオブジェクトポインタ |
dim | 出力データの次元の格納先 |
static int ailia.Ailia.ailiaGetOutputShape | ( | IntPtr | net, |
[In, Out] AILIAShape | shape, | ||
UInt32 | version | ||
) |
推論・学習時の出力データの形状を取得します。
net | ネットワークオブジェクトポインタ |
shape | 出力データの形状情報 |
形状が5次元以上の場合は ailiaGetOutputDim() 、 ailiaGetOutputShapeND() を利用してください。
static int ailia.Ailia.ailiaGetOutputShapeND | ( | IntPtr | net, |
UInt32[] | shape, | ||
UInt32 | dim | ||
) |
推論時の出力データの形状を取得します。
net | ネットワークオブジェクトポインタ |
shape | 出力データの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納) |
dim | shapeの次元 |
static int ailia.Ailia.ailiaGetSelectedEnvironment | ( | IntPtr | net, |
ref IntPtr | env, | ||
UInt32 | version | ||
) |
選択された計算環境を取得します
net | ネットワークオブジェクトポインタ |
env | 計算環境情報の格納先(ライブラリを解放するまで有効) |
version | AILIA_ENVIRONMENT_VERSION |
static IntPtr ailia.Ailia.ailiaGetStatusString | ( | Int32 | status | ) |
ステータスコードを説明する文字列を返します
status | ステータスコード |
返値は解放する必要はありません。 文字列の有効期間はailiaのライブラリをアンロードするまでです。 取得したポイントから以下のように文字列に変換して下さい。
static int ailia.Ailia.ailiaGetSummaryLength | ( | IntPtr | net, |
ref UInt32 | buffer_size | ||
) |
ネットワークSummary用に必要なバッファーサイズを出力します。
net | ネットワークオブジェクトポインタ |
buffer_size | バッファーのサイズの格納先(終端null文字分を含む) |
static IntPtr ailia.Ailia.ailiaGetVersion | ( | ) |
ライブラリバージョンを取得します。
返値は解放する必要はありません。
static int ailia.Ailia.ailiaOpenStreamEx | ( | IntPtr | net, |
IntPtr | fopen_args, | ||
ailiaFileCallback | callback, | ||
Int32 | version | ||
) |
ネットワークオブジェクトを初期化します。(ユーザ定義ファイルアクセスコールバック)
net | ネットワークオブジェクトポインタ |
fopen_args | AILIA_USER_API_FOPEN に通知される引数ポインタ |
callback | ユーザ定義ファイルアクセスコールバック構造体 |
version | ファイルアクセスコールバック構造体のバージョン( AILIA_FILE_CALLBACK_VERSION ) |
ファイルから読み込み、ネットワークオブジェクトを初期化します。
static int ailia.Ailia.ailiaOpenStreamFile | ( | IntPtr | net, |
string | path | ||
) |
ネットワークオブジェクトを初期化します。(ファイルから読み込み)
net | ネットワークオブジェクトポインタ |
path | prototxtファイルのパス名(MBSC or UTF16) |
ファイルから読み込みネットワークオブジェクトを初期化します。
static int ailia.Ailia.ailiaOpenStreamMem | ( | IntPtr | net, |
byte[] | buf, | ||
UInt32 | buf_size | ||
) |
ネットワークオブジェクトを初期化します。(メモリから読み込み)
net | ネットワークオブジェクトポインタ |
buf | prototxtファイルのデータへのポインター |
buf_size | prototxtファイルのデータサイズ |
メモリから読み込み、ネットワークオブジェクトを初期化します。
static int ailia.Ailia.ailiaOpenWeightEx | ( | IntPtr | net, |
IntPtr | fopen_args, | ||
ailiaFileCallback | callback, | ||
Int32 | version | ||
) |
ネットワークオブジェクトに重み係数を読み込みます。(ユーザ定義ファイルアクセスコールバック)
net | ネットワークオブジェクトポインタ |
fopen_args | AILIA_USER_API_FOPEN に通知される引数ポインタ |
callback | ユーザ定義ファイルアクセスコールバック構造体 |
version | ファイルアクセスコールバック構造体のバージョン( AILIA_FILE_CALLBACK_VERSION ) |
ファイルからネットワークオブジェクトに重みを読み込みます。
static int ailia.Ailia.ailiaOpenWeightFile | ( | IntPtr | net, |
string | path | ||
) |
ネットワークオブジェクトに重み係数を読み込みます
net | ネットワークオブジェクトポインタ |
path | protobuf/onnxファイルのパス名(MBSC or UTF16) |
ファイルから読み込みネットワークオブジェクトに重みを読み込みます。
static int ailia.Ailia.ailiaOpenWeightMem | ( | IntPtr | net, |
byte[] | buf, | ||
UInt32 | buf_size | ||
) |
ネットワークオブジェクトに重み係数を読み込みます。(メモリから読み込み)
net | ネットワークオブジェクトポインタ |
buf | protobuf/onnxフファイルのデータへのポインター |
buf_size | protobuf/onnxフファイルのデータサイズ |
ファイルからネットワークオブジェクトに重みを読み込みます。
static int ailia.Ailia.ailiaPredict | ( | IntPtr | net, |
IntPtr | dest, | ||
UInt32 | dest_size, | ||
IntPtr | src, | ||
UInt32 | src_size | ||
) |
推論を行い推論結果を取得します。
net | ネットワークオブジェクトポインタ |
dest | 推論結果書き出し先バッファ X,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのoutputSizeとなる |
dest_size | 推論結果書き出し先バッファのbyte数 |
src | 推論データ X,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのinputSizeとなる |
src_size | 推論データのbyte数 |
static int ailia.Ailia.ailiaSetInputBlobData | ( | IntPtr | net, |
IntPtr | src, | ||
UInt32 | src_size, | ||
UInt32 | blob_idx | ||
) |
指定したBlobに入力データを与えます。
net | ネットワークオブジェクトポインタ |
src | 推論データ X,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのinputSizeとなる |
src_size | 推論データサイズ |
blob_idx | 入力するblobのインデックス |
複数入力があるネットワークなどで入力を指定する場合に用います。 blob_idxは入力レイヤーのblob以外のものを指定した場合 AILIA_STATUS_INVALID_ARGUMENT が返ります。
static int ailia.Ailia.ailiaSetInputBlobShape | ( | IntPtr | net, |
[In] AILIAShape | shape, | ||
UInt32 | blob_idx, | ||
UInt32 | version | ||
) |
指定したBlobの形状を変更します。
net | ネットワークオブジェクトポインタ |
shape | 入力データの形状情報 |
blob_idx | 変更するblobのインデックス |
version | AILIA_SHAPE_VERSION |
複数入力があるネットワークなどで入力形状を変更する場合に用います。 blob_idxは入力レイヤーのblob以外のものを指定した場合 AILIA_STATUS_INVALID_ARGUMENT が返ります。 その他の注意点は ailiaSetInputShape() の解説を参照してください。 入力形状のランクが5次元以上の場合は ailiaSetInputBlobShapeND() を利用してください。
static int ailia.Ailia.ailiaSetInputBlobShapeND | ( | IntPtr | net, |
UInt32[] | shape, | ||
UInt32 | dim, | ||
UInt32 | blob_idx | ||
) |
指定したBlobの形状を変更します。
net | ネットワークオブジェクトポインタ |
shape | 入力データの各次元の大きさの配列(dim-1, dim-2, ... ,1, 0) |
dim | shapeの次元 |
blob_idx | 変更するblobのインデックス |
複数入力があるネットワークなどで入力形状を変更する場合に用います。 blob_idxは入力レイヤーのblob以外のものを指定した場合 AILIA_STATUS_INVALID_ARGUMENT が返ります。 その他の注意点は ailiaSetInputShapeND() の解説を参照してください。
static int ailia.Ailia.ailiaSetInputShape | ( | IntPtr | net, |
[In] AILIAShape | shape, | ||
UInt32 | version | ||
) |
推論時の入力データの形状を変更します。
net | ネットワークオブジェクトポインタ |
shape | 入力データの形状情報 |
version | AILIA_SHAPE_VERSION |
prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。 prototxtで定義されているランクが5次元以上の場合は ailiaSetInputShapeND() を利用してください。
static int ailia.Ailia.ailiaSetInputShapeND | ( | IntPtr | net, |
UInt32[] | shape, | ||
UInt32 | dim | ||
) |
推論時の入力データの形状を変更します。
net | ネットワークオブジェクトポインタ |
shape | 入力データの各次元の大きさの配列(dim-1, dim-2, ... ,1, 0) |
dim | shapeの次元 |
prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。
static int ailia.Ailia.ailiaSetMemoryMode | ( | IntPtr | net, |
UInt32 | mode | ||
) |
推論時のメモリの使用方針を設定します
net | ネットワークオブジェクトポインタ |
mode | メモリモード(論理和で複数指定可) AILIA_MEMORY_XXX (デフォルト: AILIA_MEMORY_REDUCE_CONSTANT ) |
メモリの使用方針を変更します。 AILIA_MEMORY_NO_OPTIMIZATION 以外を指定した場合は、 推論時に確保する中間バッファーを開放するため、推論時のメモリ使用量を削減することができます。 ailiaCreate() の直後に指定する必要があります。ailiaOpenを呼び出した後は変更することができません。 なお、中間バッファーを開放するように指定した場合、該当するBlobに対し、 ailiaGetBlobData() を呼び出すと AILIA_STATUS_DATA_HIDDEN エラーが返ります。
static int ailia.Ailia.ailiaSetProfileMode | ( | IntPtr | net, |
UInt32 | mode | ||
) |
プロファイルモードをセットします
net | ネットワークオブジェクトポインタ |
mode | プロファイルモード |
プロファイルモードを指定します。デフォルトは無効です。 ailiaOpenStreamXXXを呼び出したあとに呼び出してください。 プロファイルモードを有効にした場合、 ailiaSummary() の出力にプロファイル結果が追加されます。
static int ailia.Ailia.ailiaSetTemporaryCachePath | ( | string | path | ) |
一時キャッシュディレクトリを指定します
cache_dir | 一時キャッシュディレクトリ |
指定したキャッシュディレクトリは推論実行環境毎に最適化したマシンコードを生成して保存するためにシステムが利用します。 ailia の実行開始時に一度だけ呼び出してください。二回目以降の呼び出しに対しては無視して成功を返します。 複数スレッドから呼び出された場合も内部で排他制御しているので特に問題は発生しません。 Vulkan の shader cache 機能など、この API を呼ぶまで利用できないものがあります。 cache_dirにはContext.getCacheDir()で取得したファイルパスを指定してください。
static int ailia.Ailia.ailiaSummary | ( | IntPtr | net, |
byte[] | buffer, | ||
UInt32 | buffer_size | ||
) |
各Blobの名前とシェイプを表示します。
net | ネットワークオブジェクトポインタ |
buffer | サマリーの出力先 |
buffer_size | 出力バッファーのサイズ(終端null文字分を含む)。 ailiaGetSummaryLength() で取得した値を設定してください。 |
static int ailia.Ailia.ailiaUpdate | ( | IntPtr | net | ) |
事前に指定した入力データで推論を行います。
net | ネットワークオブジェクトポインタ |
ailiaSetInputBlobData() を用いて入力を与えた場合などに用います。 推論結果は ailiaGetBlobData() で取得してください。
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
FP16で動作することを示す
|
static |
省電力なGPU(内蔵GPUなど)を用いることを示す(MPS用)
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
中間バッファーの開放は行わない。
|
static |
|
static |
重みなどの定数となる中間バッファーを開放する。
|
static |
mmapを利用し、重みをメモリに配置せずに推論する。
重みに対して変換が必要な場合、 必要に応じて一時バッファーを利用し、不要になったタイミングで破棄します。 利用可能な環境でファイルから重みを読み込んだ場合のみ適用されます。 また、mmap高速化のため一時ファイルを作成します。そのためailiaSetTemporaryCachePathを呼び出してください。 呼び出しを行わない場合重みファイルオープン時にAILIA_STATUS_INVALID_STATEが返ります。 AILIA_MEMORY_REDUCE_INTERSTAGEおよびAILIA_MEMORY_REUSE_INTERSTAGEと併用することが可能です。
|
static |
入力指定のinitializerを変更不可にし、重みなどの定数となる中間バッファーを開放する。
|
static |
推論時の中間バッファーを開放する
|
static |
中間バッファーを共有して推論する。 AILIA_MEMORY_REDUCE_INTERSTAGE と併用した場合、共有可能な中間バッファーは開放しない。
|
static |
|
static |
レイヤー別の処理時間を計測します。複数回推論した場合は初回実行を除く平均値が保存されます。
|
static |
プロファイルモードを無効にします(デフォルト)
|
static |
|
static |
壊れたファイルが渡された
|
static |
アプリケーションからは取得できない情報だった
|
static |
最適化などにより削除された
|
static |
ファイルアクセスに失敗した
|
static |
モデルの有効期限切れ
|
static |
GPU上での処理中にエラー
|
static |
|
static |
GPUで未対応のレイヤーパラメーターが与えられた
|
static |
引数が不正
|
static |
レイヤーの重み、入力形状などが不正
|
static |
パラメーターファイルの内容が不正
|
static |
デコーダの内部状態が不正
|
static |
ストリームバージョンか構造体バージョンが不正
|
static |
ライセンスが壊れている
|
static |
ライセンスの有効期限切れ
|
static |
有効なライセンスが見つからない
|
static |
メモリが不足している
|
static |
形状が5次元以上であることを示す
|
static |
指定した要素が見つからなかった
|
static |
不明なエラー
|
static |
許可されていない操作
|
static |
成功
|
static |
スレッドの作成に失敗した
|
static |
未実装
|
static |
形状が未確定
|
static |
|
static |
非対応のネットワーク
|
static |