ailia  1.4.0.0
クラス | マクロ定義 | 型定義 | 関数
ailia.h ファイル

推論ライブラリ [詳解]

#include "ailia_call.h"
ailia.h の依存先関係図:
被依存関係図:

[ソースコード]

クラス

struct  _AILIAShape
 
struct  _AILIAEnvironment
 

マクロ定義

#define AILIA_API   __stdcall
 
#define AILIA_STATUS_SUCCESS   (0)
 成功 [詳解]
 
#define AILIA_STATUS_INVALID_ARGUMENT   (-1)
 引数が不正 [詳解]
 
#define AILIA_STATUS_ERROR_FILE_API   (-2)
 ファイルアクセスに失敗した [詳解]
 
#define AILIA_STATUS_INVALID_VERSION   (-3)
 構造体バージョンが不正 [詳解]
 
#define AILIA_STATUS_BROKEN   (-4)
 壊れたファイルが渡された [詳解]
 
#define AILIA_STATUS_MEMORY_INSUFFICIENT   (-5)
 メモリが不足している [詳解]
 
#define AILIA_STATUS_THREAD_ERROR   (-6)
 スレッドの作成に失敗した [詳解]
 
#define AILIA_STATUS_INVALID_STATE   (-7)
 ailia の内部状態が不正 [詳解]
 
#define AILIA_STATUS_UNSUPPORT_NET   (-9)
 非対応のネットワーク [詳解]
 
#define AILIA_STATUS_INVALID_LAYER   (-10)
 レイヤーの重みやパラメータ、入出力形状が不正 [詳解]
 
#define AILIA_STATUS_INVALID_PARAMINFO   (-11)
 パラメータファイルの内容が不正 [詳解]
 
#define AILIA_STATUS_NOT_FOUND   (-12)
 指定した要素が見つからなかった [詳解]
 
#define AILIA_STATUS_GPU_UNSUPPORT_LAYER   (-13)
 GPUで未対応のレイヤーパラメータが与えられた [詳解]
 
#define AILIA_STATUS_GPU_ERROR   (-14)
 GPU上での処理中にエラー [詳解]
 
#define AILIA_STATUS_UNIMPLEMENTED   (-15)
 未実装 [詳解]
 
#define AILIA_STATUS_PERMISSION_DENIED   (-16)
 許可されていない操作 [詳解]
 
#define AILIA_STATUS_EXPIRED   (-17)
 モデルの有効期限切れ [詳解]
 
#define AILIA_STATUS_UNSETTLED_SHAPE   (-18)
 形状が未確定 [詳解]
 
#define AILIA_STATUS_DATA_HIDDEN   (-19)
 アプリケーションからは取得できない情報だった [詳解]
 
#define AILIA_STATUS_DATA_REMOVED   AILIA_STATUS_DATA_HIDDEN
 
#define AILIA_STATUS_LICENSE_NOT_FOUND   (-20)
 有効なライセンスが見つからない [詳解]
 
#define AILIA_STATUS_LICENSE_BROKEN   (-21)
 ライセンスが壊れている [詳解]
 
#define AILIA_STATUS_LICENSE_EXPIRED   (-22)
 ライセンスの有効期限切れ [詳解]
 
#define AILIA_STATUS_NDIMENSION_SHAPE   (-23)
 形状が5次元以上であることを示す [詳解]
 
#define AILIA_STATUS_OTHER_ERROR   (-128)
 不明なエラー [詳解]
 
#define AILIA_SHAPE_VERSION   (1)
 
#define AILIA_MULTITHREAD_AUTO   (0)
 
#define AILIA_ENVIRONMENT_ID_AUTO   (-1)
 
#define AILIA_DATATYPE_UNDEFINED   0
 
#define AILIA_DATATYPE_FLOAT   1
 
#define AILIA_DATATYPE_UINT8   2
 
#define AILIA_DATATYPE_INT8   3
 
#define AILIA_DATATYPE_UINT16   4
 
#define AILIA_DATATYPE_INT16   5
 
#define AILIA_DATATYPE_INT32   6
 
#define AILIA_DATATYPE_INT64   7
 
#define AILIA_DATATYPE_BOOL   9
 
#define AILIA_DATATYPE_FLOAT16   10
 
#define AILIA_DATATYPE_DOUBLE   11
 
#define AILIA_DATATYPE_UINT32   12
 
#define AILIA_DATATYPE_UINT64   13
 
#define AILIA_DATATYPE_BFLOAT16   16
 
#define AILIA_ENVIRONMENT_VERSION   (2)
 
#define AILIA_ENVIRONMENT_TYPE_CPU   (0)
 
#define AILIA_ENVIRONMENT_TYPE_BLAS   (1)
 
#define AILIA_ENVIRONMENT_TYPE_GPU   (2)
 
#define AILIA_ENVIRONMENT_TYPE_REMOTE   (3)
 
#define AILIA_ENVIRONMENT_BACKEND_NONE   (0)
 
#define AILIA_ENVIRONMENT_BACKEND_CUDA   (2)
 
#define AILIA_ENVIRONMENT_BACKEND_MPS   (3)
 
#define AILIA_ENVIRONMENT_BACKEND_VULKAN   (6)
 
#define AILIA_ENVIRONMENT_PROPERTY_NORMAL   (0)
 
#define AILIA_ENVIRONMENT_PROPERTY_LOWPOWER   (1)
 
#define AILIA_ENVIRONMENT_PROPERTY_FP16   (2)
 
#define AILIA_MEMORY_NO_OPTIMIZATION   (0)
 
#define AILIA_MEMORY_REDUCE_CONSTANT   (1)
 
#define AILIA_MEMORY_REDUCE_CONSTANT_WITH_INPUT_INITIALIZER   (2)
 
#define AILIA_MEMORY_REDUCE_INTERSTAGE   (4)
 
#define AILIA_MEMORY_REUSE_INTERSTAGE   (8)
 
#define AILIA_MEMORY_REDUCE_CONSTANT_WITH_FILE_MAPPED   (16)
 
#define AILIA_MEMORY_OPTIMAIZE_DEFAULT   (AILIA_MEMORY_REDUCE_CONSTANT)
 
#define AILIA_PROFILE_DISABLE   (0x00)
 
#define AILIA_PROFILE_AVERAGE   (0x01)
 
#define ailiaOpenStreamFile   ailiaOpenStreamFileA
 
#define ailiaOpenWeightFile   ailiaOpenWeightFileA
 
#define ailiaSetTemporaryCachePath   ailiaSetTemporaryCachePathA
 

型定義

typedef struct _AILIAShape AILIAShape
 
typedef struct _AILIAEnvironment AILIAEnvironment
 

関数

int AILIA_API ailiaCreate (struct AILIANetwork **net, int env_id, int num_thread)
 ネットワークオブジェクトを作成します。 [詳解]
 
int AILIA_API ailiaOpenStreamFileA (struct AILIANetwork *net, const char *path)
 ネットワークオブジェクトを初期化します。(ファイルから読み込み) [詳解]
 
int AILIA_API ailiaOpenStreamFileW (struct AILIANetwork *net, const wchar_t *path)
 
int AILIA_API ailiaOpenStreamEx (struct AILIANetwork *net, const void *fopen_args, ailiaFileCallback callback, int version)
 ネットワークオブジェクトを初期化します。(ユーザ定義ファイルアクセスコールバック) [詳解]
 
int AILIA_API ailiaOpenStreamMem (struct AILIANetwork *net, const void *buf, unsigned int buf_size)
 ネットワークオブジェクトを初期化します。(メモリから読み込み) [詳解]
 
int AILIA_API ailiaOpenWeightFileA (struct AILIANetwork *net, const char *path)
 ネットワークオブジェクトに重み係数を読み込みます。(ファイルから読み込み) [詳解]
 
int AILIA_API ailiaOpenWeightFileW (struct AILIANetwork *net, const wchar_t *path)
 
int AILIA_API ailiaOpenWeightEx (struct AILIANetwork *net, const void *fopen_args, ailiaFileCallback callback, int version)
 ネットワークオブジェクトに重み係数を読み込みます。(ユーザ定義ファイルアクセスコールバック) [詳解]
 
int AILIA_API ailiaOpenWeightMem (struct AILIANetwork *net, const void *buf, unsigned int buf_size)
 ネットワークオブジェクトに重み係数を読み込みます。(メモリから読み込み) [詳解]
 
void AILIA_API ailiaDestroy (struct AILIANetwork *net)
 ネットワークオブジェクトを破棄します。 [詳解]
 
int AILIA_API ailiaSetInputShape (struct AILIANetwork *net, const AILIAShape *shape, unsigned int version)
 推論時の入力データの形状を変更します。 [詳解]
 
int AILIA_API ailiaSetInputShapeND (struct AILIANetwork *net, const unsigned int *shape, unsigned int dim)
 推論時の入力データの形状を変更します。 [詳解]
 
int AILIA_API ailiaGetInputShape (struct AILIANetwork *net, AILIAShape *shape, unsigned int version)
 推論時の入力データの形状を取得します。 [詳解]
 
int AILIA_API ailiaGetInputDim (struct AILIANetwork *net, unsigned int *dim)
 推論時の入力データの次元を取得します。 [詳解]
 
int AILIA_API ailiaGetInputShapeND (struct AILIANetwork *net, unsigned int *shape, unsigned int dim)
 推論時の入力データの形状を取得します。 [詳解]
 
int AILIA_API ailiaGetOutputShape (struct AILIANetwork *net, AILIAShape *shape, unsigned int version)
 推論時の出力データの形状を取得します。 [詳解]
 
int AILIA_API ailiaGetOutputDim (struct AILIANetwork *net, unsigned int *dim)
 推論時の出力データの次元を取得します。 [詳解]
 
int AILIA_API ailiaGetOutputShapeND (struct AILIANetwork *net, unsigned int *shape, unsigned int dim)
 推論時の出力データの形状を取得します。 [詳解]
 
int AILIA_API ailiaPredict (struct AILIANetwork *net, void *dest, unsigned int dest_size, const void *src, unsigned int src_size)
 推論を行い推論結果を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobCount (struct AILIANetwork *net, unsigned int *blob_count)
 推論時の内部データ(Blob)の数を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobShape (struct AILIANetwork *net, AILIAShape *shape, unsigned int blob_idx, unsigned int version)
 推論時の内部データ(Blob)の形状を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobDim (struct AILIANetwork *net, unsigned int *dim, unsigned int blob_idx)
 推論時の内部データ(Blob)の次元を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobShapeND (struct AILIANetwork *net, unsigned int *shape, unsigned int dim, unsigned int blob_idx)
 推論時の内部データ(Blob)の形状を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobData (struct AILIANetwork *net, void *dest, unsigned int dest_size, unsigned int blob_idx)
 推論時の内部データ(Blob)を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobDataType (struct AILIANetwork *net, int *type, unsigned int blob_idx)
 推論時の内部データ(Blob)の型を取得します。 [詳解]
 
int AILIA_API ailiaFindBlobIndexByName (struct AILIANetwork *net, unsigned int *blob_idx, const char *name)
 推論時の内部データ(Blob)のインデックスを名前で探し取得します。 [詳解]
 
int AILIA_API ailiaGetBlobNameLengthByIndex (struct AILIANetwork *net, const unsigned int blob_idx, unsigned int *buffer_size)
 内部データ(Blob)の名前の出力に必要なバッファのサイズを取得します。 [詳解]
 
int AILIA_API ailiaFindBlobNameByIndex (struct AILIANetwork *net, char *buffer, const unsigned int buffer_size, const unsigned int blob_idx)
 推論時の内部データ(Blob)の名前をインデックスで探し取得します。 [詳解]
 
int AILIA_API ailiaGetSummaryLength (struct AILIANetwork *net, unsigned int *buffer_size)
 ネットワークSummary用に必要なバッファのサイズを取得します。 [詳解]
 
int AILIA_API ailiaSummary (struct AILIANetwork *net, char *const buffer, const unsigned int buffer_size)
 各Blobの名前と形状を表示します。 [詳解]
 
int AILIA_API ailiaGetInputBlobCount (struct AILIANetwork *net, unsigned int *input_blob_count)
 入力データ(Blob)の数を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobIndexByInputIndex (struct AILIANetwork *net, unsigned int *blob_idx, unsigned int input_blob_idx)
 入力データ(Blob)のインデックスを取得します [詳解]
 
int AILIA_API ailiaSetInputBlobData (struct AILIANetwork *net, const void *src, unsigned int src_size, unsigned int blob_idx)
 指定したBlobに入力データを与えます。 [詳解]
 
int AILIA_API ailiaSetInputBlobShape (struct AILIANetwork *net, const AILIAShape *shape, unsigned int blob_idx, unsigned int version)
 指定したBlobの形状を変更します。 [詳解]
 
int AILIA_API ailiaSetInputBlobShapeND (struct AILIANetwork *net, const unsigned *shape, const unsigned dim, unsigned int blob_idx)
 指定したBlobの形状を変更します。 [詳解]
 
int AILIA_API ailiaCopyBlobData (struct AILIANetwork *dst_net, unsigned int dst_blob_idx, struct AILIANetwork *src_net, unsigned int src_blob_idx)
 指定したBlob間でデータをコピーします [詳解]
 
int AILIA_API ailiaUpdate (struct AILIANetwork *net)
 事前に指定した入力データで推論を行います。 [詳解]
 
int AILIA_API ailiaGetOutputBlobCount (struct AILIANetwork *net, unsigned int *output_blob_count)
 出力データ(Blob)の数を取得します。 [詳解]
 
int AILIA_API ailiaGetBlobIndexByOutputIndex (struct AILIANetwork *net, unsigned int *blob_idx, unsigned int output_blob_idx)
 出力データ(Blob)のインデックスを取得します [詳解]
 
int AILIA_API ailiaFinalize (void)
 ailiaがグローバルに確保したGPUリソース等を解放します [詳解]
 
int AILIA_API ailiaSetTemporaryCachePathA (const char *cache_dir)
 一時キャッシュディレクトリを指定します [詳解]
 
int AILIA_API ailiaSetTemporaryCachePathW (const wchar_t *cache_dir)
 
int AILIA_API ailiaGetEnvironmentCount (unsigned int *env_count)
 利用可能な計算環境(CPU, GPU)の数を取得します [詳解]
 
int AILIA_API ailiaGetEnvironment (AILIAEnvironment **env, unsigned int env_idx, unsigned int version)
 計算環境の一覧を取得します [詳解]
 
int AILIA_API ailiaGetSelectedEnvironment (struct AILIANetwork *net, AILIAEnvironment **env, unsigned int version)
 選択された計算環境を取得します [詳解]
 
int AILIA_API ailiaSetMemoryMode (struct AILIANetwork *net, unsigned int mode)
 推論時のメモリの使用方針を設定します [詳解]
 
int AILIA_API ailiaDisableLayerFusion (struct AILIANetwork *net)
 推論時のレイヤー統合を無効化します [詳解]
 
int AILIA_API ailiaSetProfileMode (struct AILIANetwork *net, unsigned int mode)
 プロファイルモードをセットします [詳解]
 
const char *AILIA_API ailiaGetStatusString (int status_code)
 ステータスコードに対応する文字列を返します。 [詳解]
 
const char *AILIA_API ailiaGetErrorDetail (struct AILIANetwork *net)
 エラーの詳細を返します [詳解]
 
const char *AILIA_API ailiaGetVersion (void)
 ライブラリバージョンを取得します [詳解]
 

詳解

推論ライブラリ

日付
2023/05/26

マクロ定義詳解

◆ AILIA_API

#define AILIA_API   __stdcall

◆ AILIA_DATATYPE_BFLOAT16

#define AILIA_DATATYPE_BFLOAT16   16

◆ AILIA_DATATYPE_BOOL

#define AILIA_DATATYPE_BOOL   9

◆ AILIA_DATATYPE_DOUBLE

#define AILIA_DATATYPE_DOUBLE   11

◆ AILIA_DATATYPE_FLOAT

#define AILIA_DATATYPE_FLOAT   1

◆ AILIA_DATATYPE_FLOAT16

#define AILIA_DATATYPE_FLOAT16   10

◆ AILIA_DATATYPE_INT16

#define AILIA_DATATYPE_INT16   5

◆ AILIA_DATATYPE_INT32

#define AILIA_DATATYPE_INT32   6

◆ AILIA_DATATYPE_INT64

#define AILIA_DATATYPE_INT64   7

◆ AILIA_DATATYPE_INT8

#define AILIA_DATATYPE_INT8   3

◆ AILIA_DATATYPE_UINT16

#define AILIA_DATATYPE_UINT16   4

◆ AILIA_DATATYPE_UINT32

#define AILIA_DATATYPE_UINT32   12

◆ AILIA_DATATYPE_UINT64

#define AILIA_DATATYPE_UINT64   13

◆ AILIA_DATATYPE_UINT8

#define AILIA_DATATYPE_UINT8   2

◆ AILIA_DATATYPE_UNDEFINED

#define AILIA_DATATYPE_UNDEFINED   0

◆ AILIA_ENVIRONMENT_BACKEND_CUDA

#define AILIA_ENVIRONMENT_BACKEND_CUDA   (2)

◆ AILIA_ENVIRONMENT_BACKEND_MPS

#define AILIA_ENVIRONMENT_BACKEND_MPS   (3)

◆ AILIA_ENVIRONMENT_BACKEND_NONE

#define AILIA_ENVIRONMENT_BACKEND_NONE   (0)

◆ AILIA_ENVIRONMENT_BACKEND_VULKAN

#define AILIA_ENVIRONMENT_BACKEND_VULKAN   (6)

◆ AILIA_ENVIRONMENT_ID_AUTO

#define AILIA_ENVIRONMENT_ID_AUTO   (-1)

◆ AILIA_ENVIRONMENT_PROPERTY_FP16

#define AILIA_ENVIRONMENT_PROPERTY_FP16   (2)

FP16で動作することを示す

◆ AILIA_ENVIRONMENT_PROPERTY_LOWPOWER

#define AILIA_ENVIRONMENT_PROPERTY_LOWPOWER   (1)

省電力なGPU(内蔵GPUなど)を用いることを示す(MPS用)

◆ AILIA_ENVIRONMENT_PROPERTY_NORMAL

#define AILIA_ENVIRONMENT_PROPERTY_NORMAL   (0)

◆ AILIA_ENVIRONMENT_TYPE_BLAS

#define AILIA_ENVIRONMENT_TYPE_BLAS   (1)

◆ AILIA_ENVIRONMENT_TYPE_CPU

#define AILIA_ENVIRONMENT_TYPE_CPU   (0)

◆ AILIA_ENVIRONMENT_TYPE_GPU

#define AILIA_ENVIRONMENT_TYPE_GPU   (2)

◆ AILIA_ENVIRONMENT_TYPE_REMOTE

#define AILIA_ENVIRONMENT_TYPE_REMOTE   (3)

◆ AILIA_ENVIRONMENT_VERSION

#define AILIA_ENVIRONMENT_VERSION   (2)

◆ AILIA_MEMORY_NO_OPTIMIZATION

#define AILIA_MEMORY_NO_OPTIMIZATION   (0)

中間バッファーの開放は行わない

◆ AILIA_MEMORY_OPTIMAIZE_DEFAULT

#define AILIA_MEMORY_OPTIMAIZE_DEFAULT   (AILIA_MEMORY_REDUCE_CONSTANT)

◆ AILIA_MEMORY_REDUCE_CONSTANT

#define AILIA_MEMORY_REDUCE_CONSTANT   (1)

重みなどの定数となる中間バッファーを開放する

◆ AILIA_MEMORY_REDUCE_CONSTANT_WITH_FILE_MAPPED

#define AILIA_MEMORY_REDUCE_CONSTANT_WITH_FILE_MAPPED   (16)

mmapを利用し、重みをメモリに配置せずに推論する

重みに対して変換が必要な場合、 必要に応じて一時バッファーを利用し、不要になったタイミングで破棄します。 利用可能な環境でファイルから重みを読み込んだ場合のみ適用されます。 また、mmap高速化のため一時ファイルを作成します。そのためailiaSetTemporaryCachePathを呼び出してください。 呼び出しを行わない場合重みファイルオープン時にAILIA_STATUS_INVALID_STATEが返ります。 AILIA_MEMORY_REDUCE_INTERSTAGEおよびAILIA_MEMORY_REUSE_INTERSTAGEと併用することが可能です。

◆ AILIA_MEMORY_REDUCE_CONSTANT_WITH_INPUT_INITIALIZER

#define AILIA_MEMORY_REDUCE_CONSTANT_WITH_INPUT_INITIALIZER   (2)

入力指定のinitializerを変更不可にし、重みなどの定数となる中間バッファーを開放する

◆ AILIA_MEMORY_REDUCE_INTERSTAGE

#define AILIA_MEMORY_REDUCE_INTERSTAGE   (4)

推論時の中間バッファーを開放する

◆ AILIA_MEMORY_REUSE_INTERSTAGE

#define AILIA_MEMORY_REUSE_INTERSTAGE   (8)

中間バッファーを共有して推論する。 AILIA_MEMORY_REDUCE_INTERSTAGE と併用した場合、共有可能な中間バッファーは開放しない。

◆ AILIA_MULTITHREAD_AUTO

#define AILIA_MULTITHREAD_AUTO   (0)

◆ AILIA_PROFILE_AVERAGE

#define AILIA_PROFILE_AVERAGE   (0x01)

レイヤー別の処理時間を計測します。複数回推論した場合は平均値が保存されます。

◆ AILIA_PROFILE_DISABLE

#define AILIA_PROFILE_DISABLE   (0x00)

プロファイルモードを無効にします(デフォルト)

◆ AILIA_SHAPE_VERSION

#define AILIA_SHAPE_VERSION   (1)

◆ AILIA_STATUS_BROKEN

#define AILIA_STATUS_BROKEN   (-4)

壊れたファイルが渡された

注釈
モデルファイルが破損していないかを確認し、正常なモデルを渡してください。

◆ AILIA_STATUS_DATA_HIDDEN

#define AILIA_STATUS_DATA_HIDDEN   (-19)

アプリケーションからは取得できない情報だった

注釈
最適化などで指定した要素が削除されています。情報を取得する場合、最適化を無効にしてから呼び出してください。

◆ AILIA_STATUS_DATA_REMOVED

#define AILIA_STATUS_DATA_REMOVED   AILIA_STATUS_DATA_HIDDEN

◆ AILIA_STATUS_ERROR_FILE_API

#define AILIA_STATUS_ERROR_FILE_API   (-2)

ファイルアクセスに失敗した

注釈
指定したパスのファイルが存在するか、権限を確認してください。

◆ AILIA_STATUS_EXPIRED

#define AILIA_STATUS_EXPIRED   (-17)

モデルの有効期限切れ

注釈
モデルファイルの有効期限が切れています。ailia_obfuscate_cを利用してモデルを再生成してください。

◆ AILIA_STATUS_GPU_ERROR

#define AILIA_STATUS_GPU_ERROR   (-14)

GPU上での処理中にエラー

注釈
最新のGPUドライバーを利用しているか、VRAMが不足していないかなどを確認してください。

◆ AILIA_STATUS_GPU_UNSUPPORT_LAYER

#define AILIA_STATUS_GPU_UNSUPPORT_LAYER   (-13)

GPUで未対応のレイヤーパラメータが与えられた

注釈
GPUで実行できないレイヤーやパラメーターが与えられました。モデルファイルが正しいかどうかを確認した上で、ドキュメント記載のサポート窓口までお問い合わせください。

◆ AILIA_STATUS_INVALID_ARGUMENT

#define AILIA_STATUS_INVALID_ARGUMENT   (-1)

引数が不正

注釈
API呼び出し時の引数を確認してください。

◆ AILIA_STATUS_INVALID_LAYER

#define AILIA_STATUS_INVALID_LAYER   (-10)

レイヤーの重みやパラメータ、入出力形状が不正

注釈
モデル中のレイヤーのパラメーターなどが不正でした。ailiaGetErrorDetail() で詳細なエラーメッセージを確認し、モデルファイルが正しいかを確認してください。

◆ AILIA_STATUS_INVALID_PARAMINFO

#define AILIA_STATUS_INVALID_PARAMINFO   (-11)

パラメータファイルの内容が不正

注釈
指定したパラメーターファイルが破損していないかどうかを確認してください。

◆ AILIA_STATUS_INVALID_STATE

#define AILIA_STATUS_INVALID_STATE   (-7)

ailia の内部状態が不正

注釈
APIドキュメントを確認し、呼び出し手順が正しいかどうかを確認してください。

◆ AILIA_STATUS_INVALID_VERSION

#define AILIA_STATUS_INVALID_VERSION   (-3)

構造体バージョンが不正

注釈
API呼び出し時に指定した構造体バージョンを確認し、正しい構造体バージョンを指定してください。

◆ AILIA_STATUS_LICENSE_BROKEN

#define AILIA_STATUS_LICENSE_BROKEN   (-21)

ライセンスが壊れている

注釈
トライアル版を利用する際に必要なライセンスファイルが破損しています。ライセンスファイルに関しましては、ドキュメント記載のサポート窓口までお問い合わせください。

◆ AILIA_STATUS_LICENSE_EXPIRED

#define AILIA_STATUS_LICENSE_EXPIRED   (-22)

ライセンスの有効期限切れ

注釈
トライアル版を利用するのに必要なライセンスファイルの有効期限が切れています。ライセンスファイルに関しましては、ドキュメント記載のサポート窓口までお問い合わせください。

◆ AILIA_STATUS_LICENSE_NOT_FOUND

#define AILIA_STATUS_LICENSE_NOT_FOUND   (-20)

有効なライセンスが見つからない

注釈
トライアル版を利用する場合はライセンスファイルが必要です。ライセンスファイルに関しましては、ドキュメント記載のサポート窓口までお問い合わせください。

◆ AILIA_STATUS_MEMORY_INSUFFICIENT

#define AILIA_STATUS_MEMORY_INSUFFICIENT   (-5)

メモリが不足している

注釈
メインメモリやVRAMの空き容量を確保してからAPIを呼び出してください。

◆ AILIA_STATUS_NDIMENSION_SHAPE

#define AILIA_STATUS_NDIMENSION_SHAPE   (-23)

形状が5次元以上であることを示す

注釈
4次元までしか扱えない旧APIが呼び出されました。APIドキュメントを参照し、5次元以上が扱えるAPIを利用してください。

◆ AILIA_STATUS_NOT_FOUND

#define AILIA_STATUS_NOT_FOUND   (-12)

指定した要素が見つからなかった

注釈
指定した名前やindexの要素が見つかりませんでした。指定した要素がモデルに含まれているかを確認してください。

◆ AILIA_STATUS_OTHER_ERROR

#define AILIA_STATUS_OTHER_ERROR   (-128)

不明なエラー

注釈
その他のエラーが発生しました。ailiaGetErrorDetail() で詳細なエラーメッセージを確認し、エラー内容をドキュメント記載のサポート窓口までお問い合わせください。

◆ AILIA_STATUS_PERMISSION_DENIED

#define AILIA_STATUS_PERMISSION_DENIED   (-16)

許可されていない操作

注釈
暗号化モデルなどで許可されていないAPIが呼び出されました。モデルファイルを確認し、APIの呼び出しを変更してください。

◆ AILIA_STATUS_SUCCESS

#define AILIA_STATUS_SUCCESS   (0)

成功

◆ AILIA_STATUS_THREAD_ERROR

#define AILIA_STATUS_THREAD_ERROR   (-6)

スレッドの作成に失敗した

注釈
スレッド数などシステムリソースを確認し、リソースを開放してからAPIを呼び出してください。

◆ AILIA_STATUS_UNIMPLEMENTED

#define AILIA_STATUS_UNIMPLEMENTED   (-15)

未実装

注釈
指定した環境では未実装な機能が呼び出されました。エラー内容をドキュメント記載のサポート窓口までお問い合わせください。

◆ AILIA_STATUS_UNSETTLED_SHAPE

#define AILIA_STATUS_UNSETTLED_SHAPE   (-18)

形状が未確定

注釈
出力形状などが不定形です。出力形状取得時に発生した場合は入力形状を指定した上で推論を行い、その後形状取得APIを呼び出してください。

◆ AILIA_STATUS_UNSUPPORT_NET

#define AILIA_STATUS_UNSUPPORT_NET   (-9)

非対応のネットワーク

注釈
Detectorなどのラッパー関数に非対応のモデルファイルが渡されました。ドキュメント記載のサポートモデルかどうかを確認してください。

◆ ailiaOpenStreamFile

#define ailiaOpenStreamFile   ailiaOpenStreamFileA

◆ ailiaOpenWeightFile

#define ailiaOpenWeightFile   ailiaOpenWeightFileA

◆ ailiaSetTemporaryCachePath

#define ailiaSetTemporaryCachePath   ailiaSetTemporaryCachePathA

型定義詳解

◆ AILIAEnvironment

◆ AILIAShape

typedef struct _AILIAShape AILIAShape

関数詳解

◆ ailiaCopyBlobData()

int AILIA_API ailiaCopyBlobData ( struct AILIANetwork *  dst_net,
unsigned int  dst_blob_idx,
struct AILIANetwork *  src_net,
unsigned int  src_blob_idx 
)

指定したBlob間でデータをコピーします

引数
dst_netコピー先のblobが含まれるネットワークオブジェクトポインター
dst_blob_idxコピー先のblobのインデックス
src_netコピー元のblobが含まれるネットワークオブジェクトポインター
src_blob_idxコピー元のblobのインデックス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

指定したネットワークのBlobをコピーします。コピー元とコピー先のネットワークは別のものを指定することができます。 コピー先のBlobは入力Blobのインデックスを、コピー元のBlobは任意のBlobのインデックスを指定してください。 コピー先にその他のBlobを指定した場合 AILIA_STATUS_INVALID_ARGUMENT が返ります。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaCreate()

int AILIA_API ailiaCreate ( struct AILIANetwork **  net,
int  env_id,
int  num_thread 
)

ネットワークオブジェクトを作成します。

引数
netネットワークオブジェクトポインタへのポインタ
env_id計算に利用する推論実行環境のID( ailiaGetEnvironment() で取得) AILIA_ENVIRONMENT_ID_AUTO にした場合は自動で選択する
num_threadスレッド数の上限( AILIA_MULTITHREAD_AUTO にした場合は自動で設定)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ネットワークオブジェクトを作成します。 推論実行環境を自動にした場合はCPUモードになり、BLASが利用できる場合はBLASを利用します。 なお、BLASを利用する場合num_threadは無視される場合があります。

◆ ailiaDestroy()

void AILIA_API ailiaDestroy ( struct AILIANetwork *  net)

ネットワークオブジェクトを破棄します。

引数
netネットワークオブジェクトポインタ

◆ ailiaDisableLayerFusion()

int AILIA_API ailiaDisableLayerFusion ( struct AILIANetwork *  net)

推論時のレイヤー統合を無効化します

引数
netネットワークオブジェクトポインタ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

レイヤー統合により取得できなくなるBlobを取得する必要がある場合などに用います。 ailiaCreate() の直後に指定する必要があります。ailiaOpenを呼び出した後は変更することができません。 なお、レイヤー統合を無効化すると推論速度が低下する場合があります。

◆ ailiaFinalize()

int AILIA_API ailiaFinalize ( void  )

ailiaがグローバルに確保したGPUリソース等を解放します

戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返します。

ailiaCreate() で作成したインスタンス全てを ailiaDestroy() で解放した状態で呼び出す必要があります。 それ以外の状態で呼び出された場合 #ref AILIA_STATUS_INVALID_STATE を返します。 Windows 環境の場合、DllMain 等からこの API を呼び出すとデッドロックする可能性があります。

◆ ailiaFindBlobIndexByName()

int AILIA_API ailiaFindBlobIndexByName ( struct AILIANetwork *  net,
unsigned int *  blob_idx,
const char *  name 
)

推論時の内部データ(Blob)のインデックスを名前で探し取得します。

引数
netネットワークオブジェクトポインタ
blob_idxblobのインデックス (0~ ailiaGetBlobCount() -1)
name検索するBlob名
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが検索可能です。中間Blobを検索する場合ailiaOpneWeightXXXを呼び出す必要があります。

◆ ailiaFindBlobNameByIndex()

int AILIA_API ailiaFindBlobNameByIndex ( struct AILIANetwork *  net,
char *  buffer,
const unsigned int  buffer_size,
const unsigned int  blob_idx 
)

推論時の内部データ(Blob)の名前をインデックスで探し取得します。

引数
netネットワークオブジェクトポインタ
bufferBlob名の出力先バッファ
buffer_sizeバッファのサイズ(終端null文字分を含む)
blob_idx検索するblobのインデックス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが検索可能です。中間Blobを検索する場合ailiaOpneWeightXXXを呼び出す必要があります。

◆ ailiaGetBlobCount()

int AILIA_API ailiaGetBlobCount ( struct AILIANetwork *  net,
unsigned int *  blob_count 
)

推論時の内部データ(Blob)の数を取得します。

引数
netネットワークオブジェクトポインタ
blob_countblobの数の格納先
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが列挙され、ailiaOpneWeightXXX呼び出し時に中間Blobの列挙が行われます。 そのためailiaOpenStreamXXX呼び出し直後とailiaOpneWeightXXX呼び出し直後で返答する数が変わる場合があります。

◆ ailiaGetBlobData()

int AILIA_API ailiaGetBlobData ( struct AILIANetwork *  net,
void *  dest,
unsigned int  dest_size,
unsigned int  blob_idx 
)

推論時の内部データ(Blob)を取得します。

引数
netネットワークオブジェクトポインタ
dest推論結果の書き出し先バッファにX,Y,Z,Wの順でnumeric型で格納
dest_size推論結果の書き出し先バッファのbyte数
blob_idxblobのインデックス (0~ ailiaGetBlobCount() -1)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaPredict() または ailiaUpdate() を一度も実行していない場合は AILIA_STATUS_INVALID_STATE が返ります。

◆ ailiaGetBlobDataType()

int AILIA_API ailiaGetBlobDataType ( struct AILIANetwork *  net,
int *  type,
unsigned int  blob_idx 
)

推論時の内部データ(Blob)の型を取得します。

引数
netネットワークオブジェクトポインタ
typeデータ型の書き出し先バッファ。値は AILIA_DATATYPE_XXX で定義されています。
blob_idxblobのインデックス (0~ ailiaGetBlobCount() -1)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetBlobDim()

int AILIA_API ailiaGetBlobDim ( struct AILIANetwork *  net,
unsigned int *  dim,
unsigned int  blob_idx 
)

推論時の内部データ(Blob)の次元を取得します。

引数
netネットワークオブジェクトポインタ
dimblobの次元の格納先
blob_idxblobのインデックス (0~ ailiaGetBlobCount() -1)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetBlobIndexByInputIndex()

int AILIA_API ailiaGetBlobIndexByInputIndex ( struct AILIANetwork *  net,
unsigned int *  blob_idx,
unsigned int  input_blob_idx 
)

入力データ(Blob)のインデックスを取得します

引数
netネットワークオブジェクトポインタ
blob_idxblobのインデックス(0~ ailiaGetBlobCount() -1)
input_blob_idx入力blob内でのインデックス(0~ ailiaGetInputBlobCount() -1)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時に列挙されたinput_blob_idx及びblob_idxは保持されるためailiaOpneWeightXXX呼び出し後も同じ値が返ることが保証されます。

◆ ailiaGetBlobIndexByOutputIndex()

int AILIA_API ailiaGetBlobIndexByOutputIndex ( struct AILIANetwork *  net,
unsigned int *  blob_idx,
unsigned int  output_blob_idx 
)

出力データ(Blob)のインデックスを取得します

引数
netネットワークオブジェクトポインタ
blob_idxblobのインデックス(0~ ailiaGetBlobCount() -1)
output_blob_idx出力blob内でのインデックス(0~ ailiaGetOutputBlobCount() -1)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。

◆ ailiaGetBlobNameLengthByIndex()

int AILIA_API ailiaGetBlobNameLengthByIndex ( struct AILIANetwork *  net,
const unsigned int  blob_idx,
unsigned int *  buffer_size 
)

内部データ(Blob)の名前の出力に必要なバッファのサイズを取得します。

引数
netネットワークオブジェクトポインタ
blob_idxblobのインデックス (0~ ailiaGetBlobCount() -1)
buffer_sizeBlob名の出力に必要なバッファのサイズ(終端null文字分を含む)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、ailiaOpenStreamXXX呼び出し時は入出力Blobのみが検索可能です。中間Blobを検索する場合ailiaOpneWeightXXXを呼び出す必要があります。

◆ ailiaGetBlobShape()

int AILIA_API ailiaGetBlobShape ( struct AILIANetwork *  net,
AILIAShape shape,
unsigned int  blob_idx,
unsigned int  version 
)

推論時の内部データ(Blob)の形状を取得します。

引数
netネットワークオブジェクトポインタ
shapeデータの形状情報の格納先
blob_idxblobのインデックス (0~ ailiaGetBlobCount() -1)
versionAILIA_SHAPE_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、5次元以上の場合 AILIA_STATUS_NDIMENSION_SHAPE 、 それ以外のエラーの場合はエラーコードを返す。

形状が5次元以上の場合は ailiaGetBlobDim()ailiaGetBlobShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetBlobShapeND()

int AILIA_API ailiaGetBlobShapeND ( struct AILIANetwork *  net,
unsigned int *  shape,
unsigned int  dim,
unsigned int  blob_idx 
)

推論時の内部データ(Blob)の形状を取得します。

引数
netネットワークオブジェクトポインタ
shapeblobの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納)
dimshapeの次元
blob_idxblobのインデックス (0~ ailiaGetBlobCount() -1)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetEnvironment()

int AILIA_API ailiaGetEnvironment ( AILIAEnvironment **  env,
unsigned int  env_idx,
unsigned int  version 
)

計算環境の一覧を取得します

引数
env計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効)
env_idx計算環境情報のインデックス(0~ ailiaGetEnvironmentCount() -1)
versionAILIA_ENVIRONMENT_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaGetEnvironmentCount()

int AILIA_API ailiaGetEnvironmentCount ( unsigned int *  env_count)

利用可能な計算環境(CPU, GPU)の数を取得します

引数
env_count計算環境情報の数の格納先
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaGetErrorDetail()

const char* AILIA_API ailiaGetErrorDetail ( struct AILIANetwork *  net)

エラーの詳細を返します

引数
netネットワークオブジェクトポインタ
戻り値
エラー詳細

返値は解放する必要はありません。 文字列の有効期間は次にailiaのAPIを呼ぶまでです。 モデルが暗号化されている場合は空文字を返します。

◆ ailiaGetInputBlobCount()

int AILIA_API ailiaGetInputBlobCount ( struct AILIANetwork *  net,
unsigned int *  input_blob_count 
)

入力データ(Blob)の数を取得します。

引数
netネットワークオブジェクトポインタ
input_blob_count入力blobの数の格納先
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。 なお、入力Blobの列挙はailiaOpenStreamXXX呼び出し時に行われますが変更可能な重み(input付きinitialzier)の列挙はailiaOpneWeightXXX呼び出し時に行われます。 そのためailiaOpenStreamXXX呼び出し直後とailiaOpneWeightXXX呼び出し直後で返答する数が変わる場合があります。

◆ ailiaGetInputDim()

int AILIA_API ailiaGetInputDim ( struct AILIANetwork *  net,
unsigned int *  dim 
)

推論時の入力データの次元を取得します。

引数
netネットワークオブジェクトポインタ
dim入力データの次元の格納先
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetInputShape()

int AILIA_API ailiaGetInputShape ( struct AILIANetwork *  net,
AILIAShape shape,
unsigned int  version 
)

推論時の入力データの形状を取得します。

引数
netネットワークオブジェクトポインタ
shape入力データの形状情報
versionAILIA_SHAPE_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、5次元以上の場合 AILIA_STATUS_NDIMENSION_SHAPE 、 形状の一部が未確定の場合 AILIA_STATUS_UNSETTLED_SHAPE 、それ以外のエラーの場合はエラーコードを返す。

形状が5次元以上の場合は ailiaGetInputDim()ailiaGetInputShapeND() を利用してください。 形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が格納されます。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetInputShapeND()

int AILIA_API ailiaGetInputShapeND ( struct AILIANetwork *  net,
unsigned int *  shape,
unsigned int  dim 
)

推論時の入力データの形状を取得します。

引数
netネットワークオブジェクトポインタ
shape入力データの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納)
dimshapeの次元
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、形状の一部が未確定の場合 AILIA_STATUS_UNSETTLED_SHAPE 、 それ以外のエラーの場合はエラーコードを返す。

形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が格納されます。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetOutputBlobCount()

int AILIA_API ailiaGetOutputBlobCount ( struct AILIANetwork *  net,
unsigned int *  output_blob_count 
)

出力データ(Blob)の数を取得します。

引数
netネットワークオブジェクトポインタ
output_blob_count出力blobの数の格納先
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenStreamXXX呼び出し後より利用可能です。

◆ ailiaGetOutputDim()

int AILIA_API ailiaGetOutputDim ( struct AILIANetwork *  net,
unsigned int *  dim 
)

推論時の出力データの次元を取得します。

引数
netネットワークオブジェクトポインタ
dim出力データの次元の格納先
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetOutputShape()

int AILIA_API ailiaGetOutputShape ( struct AILIANetwork *  net,
AILIAShape shape,
unsigned int  version 
)

推論時の出力データの形状を取得します。

引数
netネットワークオブジェクトポインタ
shape出力データの形状情報
versionAILIA_SHAPE_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、5次元以上の場合 AILIA_STATUS_NDIMENSION_SHAPE 、 それ以外のエラーの場合エラーコードを返す。 形状が5次元以上の場合は ailiaGetOutputDim()ailiaGetOutputShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetOutputShapeND()

int AILIA_API ailiaGetOutputShapeND ( struct AILIANetwork *  net,
unsigned int *  shape,
unsigned int  dim 
)

推論時の出力データの形状を取得します。

引数
netネットワークオブジェクトポインタ
shape出力データの各次元の大きさの格納先配列(dim-1, dim-2, ... ,1, 0順で格納)
dimshapeの次元
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、それ以外のエラーの場合はエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetSelectedEnvironment()

int AILIA_API ailiaGetSelectedEnvironment ( struct AILIANetwork *  net,
AILIAEnvironment **  env,
unsigned int  version 
)

選択された計算環境を取得します

引数
netネットワークオブジェクトポインタ
env計算環境情報の格納先(AILIANetworkインスタンスを破棄するまで有効)
versionAILIA_ENVIRONMENT_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

◆ ailiaGetStatusString()

const char* AILIA_API ailiaGetStatusString ( int  status_code)

ステータスコードに対応する文字列を返します。

引数
status_codeステータスコード
戻り値
ステータスコードに対応する文字列。

返値は解放する必要はありません。 返された文字列は ailia のライブラリ(ailia.dll, libailia.so 等)をアンロードするまで有効です。 AILIANetwork のインスタンスがある場合は ailiaGetErrorDetail() でエラーの詳細を取得できます。

◆ ailiaGetSummaryLength()

int AILIA_API ailiaGetSummaryLength ( struct AILIANetwork *  net,
unsigned int *  buffer_size 
)

ネットワークSummary用に必要なバッファのサイズを取得します。

引数
netネットワークオブジェクトポインタ
buffer_sizeバッファのサイズの格納先(終端null文字分を含む)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaGetVersion()

const char* AILIA_API ailiaGetVersion ( void  )

ライブラリバージョンを取得します

戻り値
バージョン番号

返値は解放する必要はありません。

◆ ailiaOpenStreamEx()

int AILIA_API ailiaOpenStreamEx ( struct AILIANetwork *  net,
const void *  fopen_args,
ailiaFileCallback  callback,
int  version 
)

ネットワークオブジェクトを初期化します。(ユーザ定義ファイルアクセスコールバック)

引数
netネットワークオブジェクトポインタ
fopen_argsAILIA_USER_API_FOPEN に通知される引数ポインタ
callbackユーザ定義ファイルアクセスコールバック関数構造体
versionファイルアクセスコールバック関数構造体のバージョン( AILIA_FILE_CALLBACK_VERSION )
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ファイルから読み込み、ネットワークオブジェクトを初期化します。

◆ ailiaOpenStreamFileA()

int AILIA_API ailiaOpenStreamFileA ( struct AILIANetwork *  net,
const char *  path 
)

ネットワークオブジェクトを初期化します。(ファイルから読み込み)

引数
netネットワークオブジェクトポインタ
pathprototxtファイルのパス名(MBSC or UTF16)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ファイルから読み込み、ネットワークオブジェクトを初期化します。

◆ ailiaOpenStreamFileW()

int AILIA_API ailiaOpenStreamFileW ( struct AILIANetwork *  net,
const wchar_t *  path 
)

◆ ailiaOpenStreamMem()

int AILIA_API ailiaOpenStreamMem ( struct AILIANetwork *  net,
const void *  buf,
unsigned int  buf_size 
)

ネットワークオブジェクトを初期化します。(メモリから読み込み)

引数
netネットワークオブジェクトポインタ
bufprototxtファイルのデータへのポインタ
buf_sizeprototxtファイルのデータサイズ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

メモリから読み込み、ネットワークオブジェクトを初期化します。

◆ ailiaOpenWeightEx()

int AILIA_API ailiaOpenWeightEx ( struct AILIANetwork *  net,
const void *  fopen_args,
ailiaFileCallback  callback,
int  version 
)

ネットワークオブジェクトに重み係数を読み込みます。(ユーザ定義ファイルアクセスコールバック)

引数
netネットワークオブジェクトポインタ
fopen_argsAILIA_USER_API_FOPEN に通知される引数ポインタ
callbackユーザ定義ファイルアクセスコールバック関数構造体
versionファイルアクセスコールバック関数構造体のバージョン( AILIA_FILE_CALLBACK_VERSION )
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ファイルからネットワークオブジェクトに重み係数を読み込みます。

◆ ailiaOpenWeightFileA()

int AILIA_API ailiaOpenWeightFileA ( struct AILIANetwork *  net,
const char *  path 
)

ネットワークオブジェクトに重み係数を読み込みます。(ファイルから読み込み)

引数
netネットワークオブジェクトポインタ
pathprotobuf/onnxファイルのパス名(MBSC or UTF16)
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ファイルからネットワークオブジェクトに重み係数を読み込みます。

◆ ailiaOpenWeightFileW()

int AILIA_API ailiaOpenWeightFileW ( struct AILIANetwork *  net,
const wchar_t *  path 
)

◆ ailiaOpenWeightMem()

int AILIA_API ailiaOpenWeightMem ( struct AILIANetwork *  net,
const void *  buf,
unsigned int  buf_size 
)

ネットワークオブジェクトに重み係数を読み込みます。(メモリから読み込み)

引数
netネットワークオブジェクトポインタ
bufprotobuf/onnxファイルのデータへのポインタ
buf_sizeprotobuf/onnxファイルのデータサイズ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

メモリからネットワークオブジェクトに重み係数を読み込みます。

◆ ailiaPredict()

int AILIA_API ailiaPredict ( struct AILIANetwork *  net,
void *  dest,
unsigned int  dest_size,
const void *  src,
unsigned int  src_size 
)

推論を行い推論結果を取得します。

引数
netネットワークオブジェクトポインタ
dest推論結果の書き出し先バッファにX,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのoutputSizeとなる
dest_size推論結果の書き出し先バッファのbyte数
src推論データ X,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのinputSizeとなる
src_size推論データのbyte数
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaSetInputBlobData()

int AILIA_API ailiaSetInputBlobData ( struct AILIANetwork *  net,
const void *  src,
unsigned int  src_size,
unsigned int  blob_idx 
)

指定したBlobに入力データを与えます。

引数
netネットワークオブジェクトポインタ
src推論データ X,Y,Z,Wの順でnumeric型で格納
src_size推論データのbyte数
blob_idx入力するblobのインデックス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

複数入力があるネットワークなどで入力を指定する場合に用います。 blob_idxで入力レイヤーのblob以外のものを指定した場合、 AILIA_STATUS_INVALID_ARGUMENT が返ります。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaSetInputBlobShape()

int AILIA_API ailiaSetInputBlobShape ( struct AILIANetwork *  net,
const AILIAShape shape,
unsigned int  blob_idx,
unsigned int  version 
)

指定したBlobの形状を変更します。

引数
netネットワークオブジェクトポインタ
shape入力データの形状情報
blob_idx変更するblobのインデックス
versionAILIA_SHAPE_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

複数入力があるネットワークなどで入力形状を変更する場合に用います。 blob_idxは入力レイヤーのblob以外のものを指定した場合 AILIA_STATUS_INVALID_ARGUMENT が返ります。 その他の注意点は ailiaSetInputShape() の解説を参照してください。 入力形状のランクが5次元以上の場合は ailiaSetInputBlobShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaSetInputBlobShapeND()

int AILIA_API ailiaSetInputBlobShapeND ( struct AILIANetwork *  net,
const unsigned *  shape,
const unsigned  dim,
unsigned int  blob_idx 
)

指定したBlobの形状を変更します。

引数
netネットワークオブジェクトポインタ
shape入力データの各次元の大きさの配列(dim-1, dim-2, ... ,1, 0)
dimshapeの次元
blob_idx変更するblobのインデックス
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

複数入力があるネットワークなどで入力形状を変更する場合に用います。 blob_idxは入力レイヤーのblob以外のものを指定した場合 AILIA_STATUS_INVALID_ARGUMENT が返ります。 その他の注意点は ailiaSetInputShapeND() の解説を参照してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaSetInputShape()

int AILIA_API ailiaSetInputShape ( struct AILIANetwork *  net,
const AILIAShape shape,
unsigned int  version 
)

推論時の入力データの形状を変更します。

引数
netネットワークオブジェクトポインタ
shape入力データの形状情報
versionAILIA_SHAPE_VERSION
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。 prototxtで定義されているランクが4次元未満の場合は未使用の要素に1を設定する必要があります。 prototxtで定義されているランクが5次元以上の場合は ailiaSetInputShapeND() を利用してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaSetInputShapeND()

int AILIA_API ailiaSetInputShapeND ( struct AILIANetwork *  net,
const unsigned int *  shape,
unsigned int  dim 
)

推論時の入力データの形状を変更します。

引数
netネットワークオブジェクトポインタ
shape入力データの各次元の大きさの配列(dim-1, dim-2, ... ,1, 0)
dimshapeの次元
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaSetMemoryMode()

int AILIA_API ailiaSetMemoryMode ( struct AILIANetwork *  net,
unsigned int  mode 
)

推論時のメモリの使用方針を設定します

引数
netネットワークオブジェクトポインタ
modeメモリモード(論理和で複数指定可) AILIA_MEMORY_XXX (デフォルト: AILIA_MEMORY_REDUCE_CONSTANT )
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

メモリの使用方針を変更します。 AILIA_MEMORY_NO_OPTIMIZATION 以外を指定した場合は、 推論時に確保する中間バッファーを開放するため、推論時のメモリ使用量を削減することができます。 ailiaCreate() の直後に指定する必要があります。ailiaOpenを呼び出した後は変更することができません。 なお、中間バッファーを開放するように指定した場合、該当するBlobに対し、 ailiaGetBlobData() を呼び出すと AILIA_STATUS_DATA_HIDDEN エラーが返ります。

◆ ailiaSetProfileMode()

int AILIA_API ailiaSetProfileMode ( struct AILIANetwork *  net,
unsigned int  mode 
)

プロファイルモードをセットします

引数
netネットワークオブジェクトポインタ
modeプロファイルモード
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

プロファイルモードを指定します。デフォルトは無効です。 ailiaOpenStreamXXXを呼び出したあとに呼び出してください。 プロファイルモードを有効にした場合、 ailiaSummary() の出力にプロファイル結果が追加されます。

◆ ailiaSetTemporaryCachePathA()

int AILIA_API ailiaSetTemporaryCachePathA ( const char *  cache_dir)

一時キャッシュディレクトリを指定します

引数
cache_dir一時キャッシュディレクトリ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

指定したキャッシュディレクトリは推論実行環境毎に最適化したマシンコードを生成して保存するためにシステムが利用します。 ailia の実行開始時に一度だけ呼び出してください。二回目以降の呼び出しに対しては無視して成功を返します。 複数スレッドから呼び出された場合も内部で排他制御しているので特に問題は発生しません。 Vulkan のシェーダーキャッシュ機能など、この API を呼ぶまで利用できないものがあります。 cache_dirにはContext.getCacheDir()で取得したファイルパスを指定してください。

◆ ailiaSetTemporaryCachePathW()

int AILIA_API ailiaSetTemporaryCachePathW ( const wchar_t *  cache_dir)

◆ ailiaSummary()

int AILIA_API ailiaSummary ( struct AILIANetwork *  net,
char *const  buffer,
const unsigned int  buffer_size 
)

各Blobの名前と形状を表示します。

引数
netネットワークオブジェクトポインタ
bufferSummaryの出力先
buffer_size出力バッファのサイズ(終端null文字分を含む)。 ailiaGetSummaryLength() で取得した値を設定してください。
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。

◆ ailiaUpdate()

int AILIA_API ailiaUpdate ( struct AILIANetwork *  net)

事前に指定した入力データで推論を行います。

引数
netネットワークオブジェクトポインタ
戻り値
成功した場合は AILIA_STATUS_SUCCESS 、そうでなければエラーコードを返す。

ailiaSetInputBlobData() を用いて入力を与えた場合などに用います。 推論結果は ailiaGetBlobData() で取得してください。 このAPIはailiaOpenWeighXXX呼び出し後より利用可能です。