|
ailia_tflite
1.2.4.0
|
AILIA TFLITE RUNTIME INTERFACE [詳解]
#include <stdint.h>#include <stddef.h>
マクロ定義 | |
| #define | AILIA_TFLITE_TENSOR_TYPE_FLOAT32 (0) |
| FLOAT32 [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_FLOAT16 (1) |
| FLOAT16 [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_INT32 (2) |
| INT32 [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_UINT8 (3) |
| UINT8 [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_INT64 (4) |
| INT64 [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_STRING (5) |
| STRING [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_BOOL (6) |
| BOOL [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_INT16 (7) |
| INT16 [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_COMPLEX64 (8) |
| COMPLEX64 [詳解] | |
| #define | AILIA_TFLITE_TENSOR_TYPE_INT8 (9) |
| INT8 [詳解] | |
| #define | AILIA_TFLITE_STATUS_SUCCESS ( 0) |
| 成功 [詳解] | |
| #define | AILIA_TFLITE_STATUS_INVALID_ARGUMENT ( -1) |
| 引数が不正 このステータスコードが返ってきた場合、呼び出し元のコードや渡している引数がNULLになっていないかなどを見直してください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_OUT_OF_RANGE ( -2) |
| 引数などが範囲外 このステータスコードが返ってきた場合、引数が範囲外になっていないかなどを見直してください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_MEMORY_INSUFFICIENT ( -3) |
| メモリが不足している このステータスコードはメモリ確保に失敗した場合などに返ってきます。メモリの空き状況を確認し、ほかのプロセスを終了するなどの対処をしてください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_BROKEN_MODEL ( -4) |
| モデルが破損している このステータスコードは与えられたモデルファイルが破損している場合に返ってきます。モデルファイルが正しいかどうかをご確認ください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_INVALID_PARAMETER ( -5) |
| モデルのパラメーターが不正 このステータスコードはモデル内に含まれているパラメーターが不正な場合に返ってきます。モデルファイルが正しいかどうかをご確認ください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_PARAMETER_NOT_FOUND ( -6) |
| パラメーターが存在しない このステータスコードはモデル内で指定したパラメーターが存在しない場合に返ってきます。呼び出し元のコードやモデルファイルが正しいかどうかをご確認ください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_UNSUPPORTED_OPCODE ( -7) |
| 非対応のオペレーターを実行しようとした このステータスコードはailia TFLite runtimeでサポートされていないオペレーターが含まれていた場合に返ってきます。ドキュメントに記載されているオペレーター以外がモデルに含まれていないかご確認ください。オペレーターの新規追加に関しましてはドキュメント記載の問い合わせ先までお問い合わせください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_LICENSE_NOT_FOUND ( -8) |
| 有効なライセンスが見つからない このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルが見つからなかった場合に返ってきます。トライアル版のライセンスに関しましてはドキュメント記載の問い合わせ先までお問い合わせください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_LICENSE_BROKEN ( -9) |
| ライセンスが壊れている このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルが破損している場合に返ってきます。トライアル版のライセンスに関しましてはドキュメント記載の問い合わせ先までお問い合わせください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_LICENSE_EXPIRED ( -10) |
| ライセンスの有効期限切れ このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルの有効期限が切れている場合に返ってきます。トライアル版のライセンスの更新に関しましてはドキュメント記載の問い合わせ先までお問い合わせください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_INVALID_STATE ( -11) |
| APIを呼び出せるステートでない このステータスコードが返ってきた場合、APIを呼び出せる状態かどうかなどを見直してください。 [詳解] | |
| #define | AILIA_TFLITE_STATUS_OTHER_ERROR (-128) |
| その他のエラー 上記以外のエラーが発生した場合に返ります。ドキュメント記載の問い合わせ先までお問い合わせください。 [詳解] | |
| #define | AILIA_TFLITE_ENV_REFERENCE (0) |
| リファレンスCPU実装 [詳解] | |
| #define | AILIA_TFLITE_ENV_NNAPI (1) |
| NNAPIを使用した実装。Android向け。 [詳解] | |
| #define | AILIA_TFLITE_ENV_MMALIB (2) |
| MMALIBを使用した実装。PCではMMALIBのエミュレータ、デバイスではMMALIBを使用する。 [詳解] | |
| #define | AILIA_TFLITE_ENV_MMALIB_COMPATIBLE (3) |
| MMALIBの出力互換実装。出力一致のみを行うため高速に動作する。 [詳解] | |
| #define | AILIA_TFLITE_ENV_QNN (4) |
| QNNを使用した実装。 [詳解] | |
| #define | AILIA_TFLITE_MEMORY_MODE_DEFAULT (0) |
| 通常モード [詳解] | |
| #define | AILIA_TFLITE_MEMORY_MODE_REDUCE_INTERSTAGE (1) |
| 省メモリモード [詳解] | |
| #define | AILIA_TFLITE_PROFILE_MODE_DISABLE (0) |
| プロファイル無効 [詳解] | |
| #define | AILIA_TFLITE_PROFILE_MODE_ENABLE (1) |
| プロファイル有効 [詳解] | |
| #define | AILIA_TFLITE_PROFILE_MODE_TRACE (2) |
| トレース有効 [詳解] | |
| #define | AILIA_TFLITE_PROFILE_MODE_MEMORY (4) |
| メモリプロファイル有効 [詳解] | |
| #define | AILIA_TFLITE_PROFILE_MODE_SUB_CORE (8) |
| サブコアプロファイル有効 [詳解] | |
| #define | AILIA_TFLITE_PROFILE_MODE_ALLOCATION (16) |
| アロケーションプロファイル有効 [詳解] | |
| #define | AILIA_TFLITE_FLAG_NONE (0) |
| 通常モード [詳解] | |
| #define | AILIA_TFLITE_FLAG_INPUT_AND_OUTPUT_TENSORS_USE_SCRATCH (1) |
| #define | AILIA_TFLITE_CPU_FEATURES_NONE (0x00000000) |
| 拡張命令無効 [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_NEON (0x00000001) |
| NEON [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_SSE2 (0x00000002) |
| SSE2 [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_SSE4_2 (0x00000004) |
| SSE4.2 [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_AVX (0x00000008) |
| AVX [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_AVX2 (0x00000010) |
| AVX2 [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_VNNI (0x00000020) |
| VNNI [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_AVX512 (0x00000040) |
| AVX512 [詳解] | |
| #define | AILIA_TFLITE_CPU_FEATURES_I8MM (0x00000080) |
| I8MM [詳解] | |
| #define | AILIA_TFLITE_SUB_CORE_COUNT_MAX (8) |
| マルチコアをサポートする環境で指定できるコア数の最大値 [詳解] | |
型定義 | |
| typedef int8_t | AILIATFLiteTensorType |
| typedef int32_t | AILIATFLiteStatus |
| typedef int32_t | AILIATFLiteEnvironment |
| typedef int32_t | AILIATFLiteMemoryMode |
| typedef int32_t | AILIATFLiteFlags |
| typedef int32_t | AILIATFLiteCpuFeatures |
関数 | |
| AILIATFLiteStatus | ailiaTFLiteGetEnvironmentCount (size_t *env_count) |
| 利用可能な計算環境の数を取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetEnvironment (AILIATFLiteEnvironment *env) |
| 計算環境の一覧を取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteCreate (struct AILIATFLiteInstance **instance, const void *tflite, const size_t tflite_length, void *(*pmalloc)(size_t, const void *, void *), void *(*pmemcpy)(void *, const void *, size_t, void *), void(*pfree)(void *, void *), void *phandle, AILIATFLiteEnvironment env_id, AILIATFLiteMemoryMode memory_mode, AILIATFLiteFlags flags) |
| ailia TFLite runtimeのインスタンスを作成します。 [詳解] | |
| void | ailiaTFLiteDestroy (struct AILIATFLiteInstance *instance) |
| ailia TFLite runtimeのインスタンスを破棄します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetCpuFeatures (struct AILIATFLiteInstance *instance, int32_t *cpu_features) |
| 使用するCPU命令を取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteSetCpuFeatures (struct AILIATFLiteInstance *instance, int32_t cpu_features) |
| 使用するCPU命令を設定します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteAllocateTensors (struct AILIATFLiteInstance *instance) |
| ailia TFLite runtimeの内部バッファーの確保を行います [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteResizeInputTensor (struct AILIATFLiteInstance *instance, const int32_t input_index, const int32_t *shape, const int32_t dim) |
| 指定した入力indexのTensorの形状を変更します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNumberOfInputs (const struct AILIATFLiteInstance *instance, int32_t *num_of_input_tensor) |
| tfliteモデルの入力Tensorの数を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetInputTensorIndex (const struct AILIATFLiteInstance *instance, int32_t *tensor_index, const int32_t input_index) |
| 入力TensorのindexからTensorのindexを取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNumberOfOutputs (const struct AILIATFLiteInstance *instance, int32_t *num_of_output_tensor) |
| tfliteモデルの出力Tensorの数を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetOutputTensorIndex (const struct AILIATFLiteInstance *instance, int32_t *tensor_index, const int32_t output_index) |
| 出力TensorのindexからTensorのindexを取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorDimension (const struct AILIATFLiteInstance *instance, int32_t *tensor_dim, const int32_t tensor_index) |
| index番目のTensorの次元を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorShape (const struct AILIATFLiteInstance *instance, int32_t *shape, const int32_t tensor_index) |
| index番目のTensorの形状を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorShapeSignature (const struct AILIATFLiteInstance *instance, int32_t *shape, const int32_t tensor_index) |
| index番目のTensorの未確定な次元情報付き形状を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorType (const struct AILIATFLiteInstance *instance, AILIATFLiteTensorType *tensor_type, const int32_t tensor_index) |
| index番目のTensorのデータタイプを取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorBuffer (struct AILIATFLiteInstance *instance, void **buffer, const int32_t tensor_index) |
| index番目のTensorのデータの格納バッファーを取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorName (const struct AILIATFLiteInstance *instance, const char **name, const int32_t tensor_index) |
| index番目のTensorの名前を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorQuantizationCount (const struct AILIATFLiteInstance *instance, int32_t *count, const int32_t tensor_index) |
| index番目のTensorの量子化パラメーターの個数を取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorQuantizationScale (const struct AILIATFLiteInstance *instance, float *scale, const int32_t tensor_index) |
| index番目のTensorの量子化パラメーターのスケールを取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorQuantizationZeroPoint (const struct AILIATFLiteInstance *instance, int64_t *zero_point, const int32_t tensor_index) |
| index番目のTensorの量子化パラメーターのゼロ点を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetTensorQuantizationQuantizedDimension (const struct AILIATFLiteInstance *instance, int32_t *axis, const int32_t tensor_index) |
| index番目のTensorの量子化パラメーターの軸を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLitePredict (struct AILIATFLiteInstance *instance) |
| 推論を行います。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNodeCount (const struct AILIATFLiteInstance *instance, int32_t *count) |
| Nodeの個数を取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNodeOperator (const struct AILIATFLiteInstance *instance, int32_t *op, const int32_t node_index) |
| node_index番目のNodeのOperatorを取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNodeInputCount (const struct AILIATFLiteInstance *instance, int32_t *count, const int32_t node_index) |
| node_index番目のNodeの入力の個数を取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNodeInputTensorIndex (const struct AILIATFLiteInstance *instance, int32_t *tensor_index, const int32_t node_index, const int32_t input_index) |
| node_index番目のNodeのinput_index番目の入力のTensorのindexを取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNodeOutputCount (const struct AILIATFLiteInstance *instance, int32_t *count, const int32_t node_index) |
| node_index番目のNodeの出力の個数を取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNodeOutputTensorIndex (const struct AILIATFLiteInstance *instance, int32_t *tensor_index, const int32_t node_index, const int32_t output_index) |
| node_index番目のNodeのoutput_index番目の出力のTensorのindexを取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetNodeOption (const struct AILIATFLiteInstance *instance, void *value, const int32_t node_index, const char *key) |
| node_index番目のNodeのオプションを取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetOperatorName (const char **name, const int32_t op) |
| Operatorの名前を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteSetProfileMode (struct AILIATFLiteInstance *instance, int mode) |
| プロファイルモードをセットします。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetSummaryLength (struct AILIATFLiteInstance *instance, size_t *buffer_size) |
| ネットワークSummary用に必要なバッファのサイズを取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetSummary (struct AILIATFLiteInstance *instance, char *buffer, size_t buffer_size) |
| 各Nodeの名前と形状を表示します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetErrorDetail (struct AILIATFLiteInstance *instance, char **buffer) |
| エラーの詳細を返します [詳解] | |
| const char * | ailiaTFLiteGetVersion (void) |
| ライブラリバージョンを取得します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteSetScratchBuffer (struct AILIATFLiteInstance *instance, void *int_buffer, size_t int_buffer_size, void *mid_buffer, size_t mid_buffer_size, void *ext_buffer, size_t ext_buffer_size) |
| スクラッチバッファを設定します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteSetScratchBufferEx (struct AILIATFLiteInstance *instance, void *int_buffer, size_t int_buffer_size, void *mid_buffer, size_t mid_buffer_size, void *ext_buffer, size_t ext_buffer_size, void *global_buffer, size_t global_buffer_size) |
| スクラッチバッファを設定します (グローバルMSMC対応版) [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetScratchBufferUsage (struct AILIATFLiteInstance *instance, size_t *int_buffer_size, size_t *mid_buffer_size, size_t *ext_buffer_size) |
| スクラッチバッファの最大使用量を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetScratchBufferUsageEx (struct AILIATFLiteInstance *instance, size_t *int_buffer_size, size_t *mid_buffer_size, size_t *ext_buffer_size, size_t *global_buffer_size) |
| スクラッチバッファの最大使用量を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteMklSetNumThreads (const int32_t num_threads) |
| MKLが使用するスレッド数を設定します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteMklDisableFastMM (void) |
| MKLのFastMMを無効化します [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteSetSynchronizeFunctions (struct AILIATFLiteInstance *instance, int(*pmain_after_command_store)(void *), int(*pmain_before_state_load)(void *)) |
| マルチコアで使用する場合において、コア間の同期関数を設定します。 [詳解] | |
| AILIATFLiteStatus | alilaTFLiteSetSubCoreControlVariables (struct AILIATFLiteInstance *instance, const struct AILIATFLiteSubCoreControlVariables *control_variables, int32_t sub_core_count) |
| マルチコアで使用する場合において、各サブコアとの通信に使用する変数を設定します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetContext (struct AILIATFLiteInstance *instance, void *buf, size_t buf_size) |
| DSAの結果を保存します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteGetContextSize (struct AILIATFLiteInstance *instance, size_t *buf_size) |
| DSAの結果の保存に必要なバッファのサイズ(バイト単位)を取得します。 [詳解] | |
| AILIATFLiteStatus | ailiaTFLiteRestoreContext (struct AILIATFLiteInstance *instance, const void *buf, size_t buf_size) |
| DSAの結果を復元します。 [詳解] | |
AILIA TFLITE RUNTIME INTERFACE
| #define AILIA_TFLITE_CPU_FEATURES_AVX (0x00000008) |
AVX
| #define AILIA_TFLITE_CPU_FEATURES_AVX2 (0x00000010) |
AVX2
| #define AILIA_TFLITE_CPU_FEATURES_AVX512 (0x00000040) |
AVX512
| #define AILIA_TFLITE_CPU_FEATURES_I8MM (0x00000080) |
I8MM
| #define AILIA_TFLITE_CPU_FEATURES_NEON (0x00000001) |
NEON
| #define AILIA_TFLITE_CPU_FEATURES_NONE (0x00000000) |
拡張命令無効
| #define AILIA_TFLITE_CPU_FEATURES_SSE2 (0x00000002) |
SSE2
| #define AILIA_TFLITE_CPU_FEATURES_SSE4_2 (0x00000004) |
SSE4.2
| #define AILIA_TFLITE_CPU_FEATURES_VNNI (0x00000020) |
VNNI
| #define AILIA_TFLITE_ENV_MMALIB (2) |
MMALIBを使用した実装。PCではMMALIBのエミュレータ、デバイスではMMALIBを使用する。
| #define AILIA_TFLITE_ENV_MMALIB_COMPATIBLE (3) |
MMALIBの出力互換実装。出力一致のみを行うため高速に動作する。
| #define AILIA_TFLITE_ENV_NNAPI (1) |
NNAPIを使用した実装。Android向け。
| #define AILIA_TFLITE_ENV_QNN (4) |
QNNを使用した実装。
| #define AILIA_TFLITE_ENV_REFERENCE (0) |
リファレンスCPU実装
| #define AILIA_TFLITE_FLAG_INPUT_AND_OUTPUT_TENSORS_USE_SCRATCH (1) |
| #define AILIA_TFLITE_FLAG_NONE (0) |
通常モード
| #define AILIA_TFLITE_MEMORY_MODE_DEFAULT (0) |
通常モード
| #define AILIA_TFLITE_MEMORY_MODE_REDUCE_INTERSTAGE (1) |
省メモリモード
| #define AILIA_TFLITE_PROFILE_MODE_ALLOCATION (16) |
アロケーションプロファイル有効
| #define AILIA_TFLITE_PROFILE_MODE_DISABLE (0) |
プロファイル無効
| #define AILIA_TFLITE_PROFILE_MODE_ENABLE (1) |
プロファイル有効
| #define AILIA_TFLITE_PROFILE_MODE_MEMORY (4) |
メモリプロファイル有効
| #define AILIA_TFLITE_PROFILE_MODE_SUB_CORE (8) |
サブコアプロファイル有効
| #define AILIA_TFLITE_PROFILE_MODE_TRACE (2) |
トレース有効
| #define AILIA_TFLITE_STATUS_BROKEN_MODEL ( -4) |
モデルが破損している このステータスコードは与えられたモデルファイルが破損している場合に返ってきます。モデルファイルが正しいかどうかをご確認ください。
| #define AILIA_TFLITE_STATUS_INVALID_ARGUMENT ( -1) |
引数が不正 このステータスコードが返ってきた場合、呼び出し元のコードや渡している引数がNULLになっていないかなどを見直してください。
| #define AILIA_TFLITE_STATUS_INVALID_PARAMETER ( -5) |
モデルのパラメーターが不正 このステータスコードはモデル内に含まれているパラメーターが不正な場合に返ってきます。モデルファイルが正しいかどうかをご確認ください。
| #define AILIA_TFLITE_STATUS_INVALID_STATE ( -11) |
APIを呼び出せるステートでない このステータスコードが返ってきた場合、APIを呼び出せる状態かどうかなどを見直してください。
| #define AILIA_TFLITE_STATUS_LICENSE_BROKEN ( -9) |
ライセンスが壊れている このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルが破損している場合に返ってきます。トライアル版のライセンスに関しましてはドキュメント記載の問い合わせ先までお問い合わせください。
| #define AILIA_TFLITE_STATUS_LICENSE_EXPIRED ( -10) |
ライセンスの有効期限切れ このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルの有効期限が切れている場合に返ってきます。トライアル版のライセンスの更新に関しましてはドキュメント記載の問い合わせ先までお問い合わせください。
| #define AILIA_TFLITE_STATUS_LICENSE_NOT_FOUND ( -8) |
有効なライセンスが見つからない このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルが見つからなかった場合に返ってきます。トライアル版のライセンスに関しましてはドキュメント記載の問い合わせ先までお問い合わせください。
| #define AILIA_TFLITE_STATUS_MEMORY_INSUFFICIENT ( -3) |
メモリが不足している このステータスコードはメモリ確保に失敗した場合などに返ってきます。メモリの空き状況を確認し、ほかのプロセスを終了するなどの対処をしてください。
| #define AILIA_TFLITE_STATUS_OTHER_ERROR (-128) |
その他のエラー 上記以外のエラーが発生した場合に返ります。ドキュメント記載の問い合わせ先までお問い合わせください。
| #define AILIA_TFLITE_STATUS_OUT_OF_RANGE ( -2) |
引数などが範囲外 このステータスコードが返ってきた場合、引数が範囲外になっていないかなどを見直してください。
| #define AILIA_TFLITE_STATUS_PARAMETER_NOT_FOUND ( -6) |
パラメーターが存在しない このステータスコードはモデル内で指定したパラメーターが存在しない場合に返ってきます。呼び出し元のコードやモデルファイルが正しいかどうかをご確認ください。
| #define AILIA_TFLITE_STATUS_SUCCESS ( 0) |
成功
| #define AILIA_TFLITE_STATUS_UNSUPPORTED_OPCODE ( -7) |
非対応のオペレーターを実行しようとした このステータスコードはailia TFLite runtimeでサポートされていないオペレーターが含まれていた場合に返ってきます。ドキュメントに記載されているオペレーター以外がモデルに含まれていないかご確認ください。オペレーターの新規追加に関しましてはドキュメント記載の問い合わせ先までお問い合わせください。
| #define AILIA_TFLITE_SUB_CORE_COUNT_MAX (8) |
マルチコアをサポートする環境で指定できるコア数の最大値
| #define AILIA_TFLITE_TENSOR_TYPE_BOOL (6) |
BOOL
| #define AILIA_TFLITE_TENSOR_TYPE_COMPLEX64 (8) |
COMPLEX64
| #define AILIA_TFLITE_TENSOR_TYPE_FLOAT16 (1) |
FLOAT16
| #define AILIA_TFLITE_TENSOR_TYPE_FLOAT32 (0) |
FLOAT32
| #define AILIA_TFLITE_TENSOR_TYPE_INT16 (7) |
INT16
| #define AILIA_TFLITE_TENSOR_TYPE_INT32 (2) |
INT32
| #define AILIA_TFLITE_TENSOR_TYPE_INT64 (4) |
INT64
| #define AILIA_TFLITE_TENSOR_TYPE_INT8 (9) |
INT8
| #define AILIA_TFLITE_TENSOR_TYPE_STRING (5) |
STRING
| #define AILIA_TFLITE_TENSOR_TYPE_UINT8 (3) |
UINT8
| typedef int32_t AILIATFLiteCpuFeatures |
| typedef int32_t AILIATFLiteEnvironment |
| typedef int32_t AILIATFLiteFlags |
| typedef int32_t AILIATFLiteMemoryMode |
| typedef int32_t AILIATFLiteStatus |
| typedef int8_t AILIATFLiteTensorType |
| AILIATFLiteStatus ailiaTFLiteAllocateTensors | ( | struct AILIATFLiteInstance * | instance | ) |
ailia TFLite runtimeの内部バッファーの確保を行います
| instance | ailia TFLite runtimeインスタンスポインター |
内部の形状を更新し、推論に必要なバッファーを確保します。
| AILIATFLiteStatus ailiaTFLiteCreate | ( | struct AILIATFLiteInstance ** | instance, |
| const void * | tflite, | ||
| const size_t | tflite_length, | ||
| void *(*)(size_t, const void *, void *) | pmalloc, | ||
| void *(*)(void *, const void *, size_t, void *) | pmemcpy, | ||
| void(*)(void *, void *) | pfree, | ||
| void * | phandle, | ||
| AILIATFLiteEnvironment | env_id, | ||
| AILIATFLiteMemoryMode | memory_mode, | ||
| AILIATFLiteFlags | flags | ||
| ) |
ailia TFLite runtimeのインスタンスを作成します。
| instance | ailia TFLite runtimeインスタンスポインターへのポインター |
| tflite | tfliteモデルへのポインター |
| tflite_length | tfliteの長さ(バイト単位) |
| pmalloc | mallocの関数ポインター(NULLの場合はmallocを利用) |
| pmemcpy | memcpyの関数ポインター(NULLの場合はmemcpyを利用) |
| pfree | freeの関数ポインター(NULLの場合はfreeを利用) |
| phandle | メモリアロケータに渡されるハンドル(標準のアロケータを使用する場合はNULL) |
| env_id | 計算に利用する推論実行環境(AILIA_TFLITE_ENV_NNAPI_*) |
| memory_mode | メモリモード(AILIA_TFLITE_MEMORY_MODE_*) |
| flags | フラグ(AILIA_TFLITE_FLAG_*の論理和) |
tfliteモデルを開き、ailia TFLite runtimeインスタンスを作成します。 また、必要な内部バッファーの確保も行います。 インスタンス生成に失敗した場合でinstanceにNULL以外が格納された場合はailiaTFLiteDestroyを呼び出す必要があります。
| void ailiaTFLiteDestroy | ( | struct AILIATFLiteInstance * | instance | ) |
ailia TFLite runtimeのインスタンスを破棄します。
| instance | ailia TFLite runtimeインスタンスポインター |
| AILIATFLiteStatus ailiaTFLiteGetContext | ( | struct AILIATFLiteInstance * | instance, |
| void * | buf, | ||
| size_t | buf_size | ||
| ) |
DSAの結果を保存します。
| instance | ailia TFLite runtimeインスタンスポインタ |
| buf | 格納先バッファ |
| buf_size | バッファサイズ(バイト単位) |
ailiaTFLiteAllocateTensorsを呼び出した後に実行する必要があります。 現在のDSAの割り当て状況をバッファに保存し、次回のインスタンス作成時に再利用することで、DSAの割り当て時間を短縮することができます。 ailiaTFLiteRuntimeのバージョンが変わると保存した結果は無効になります。
| AILIATFLiteStatus ailiaTFLiteGetContextSize | ( | struct AILIATFLiteInstance * | instance, |
| size_t * | buf_size | ||
| ) |
DSAの結果の保存に必要なバッファのサイズ(バイト単位)を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| buffer_size | バッファのサイズの格納先へのポインター |
ailiaTFLiteAllocateTensorsを呼び出した後に実行する必要があります。
| AILIATFLiteStatus ailiaTFLiteGetCpuFeatures | ( | struct AILIATFLiteInstance * | instance, |
| int32_t * | cpu_features | ||
| ) |
使用するCPU命令を取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| cpu_features | AILIA_TFLITE_CPU_FEATURES_XXXの論理和 |
使用するCPU命令を取得します。 デフォルトではCPU情報から取得したCPU命令を返します。 ailiaTFLiteSetCpuFeaturesを呼び出した以降は、設定したCPU命令を返します。
| AILIATFLiteStatus ailiaTFLiteGetEnvironment | ( | AILIATFLiteEnvironment * | env | ) |
計算環境の一覧を取得します
| env | 計算環境情報の格納先の配列 |
ailiaTFLiteGetEnvironmentCount()の返すサイズの配列を入力に渡してください。
| AILIATFLiteStatus ailiaTFLiteGetEnvironmentCount | ( | size_t * | env_count | ) |
利用可能な計算環境の数を取得します
| env_count | 計算環境情報の数の格納先へのポインター |
| AILIATFLiteStatus ailiaTFLiteGetErrorDetail | ( | struct AILIATFLiteInstance * | instance, |
| char ** | buffer | ||
| ) |
エラーの詳細を返します
| instance | ailia TFLite runtimeインスタンスポインター |
| buffer | エラー詳細文字列へのポインタ |
文字列は解放する必要はありません。 文字列の有効期間は次にailiaのAPIを呼ぶまでとなります。
| AILIATFLiteStatus ailiaTFLiteGetInputTensorIndex | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | tensor_index, | ||
| const int32_t | input_index | ||
| ) |
入力TensorのindexからTensorのindexを取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| tensor_index | Tensorのindexの格納先へのポインター |
| input_index | 入力Tensorのindex(0~入力Tensorの数-1) |
入力TensorのindexからTensorのindexに変換します。 indexの上限はailiaTFLiteGetNumberOfInputs()-1です。
| AILIATFLiteStatus ailiaTFLiteGetNodeCount | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | count | ||
| ) |
Nodeの個数を取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| count | Nodeの個数の格納先へのポインター |
| AILIATFLiteStatus ailiaTFLiteGetNodeInputCount | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | count, | ||
| const int32_t | node_index | ||
| ) |
node_index番目のNodeの入力の個数を取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| count | 入力の個数の格納先へのポインター |
| node_index | Nodeのindex |
| AILIATFLiteStatus ailiaTFLiteGetNodeInputTensorIndex | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | tensor_index, | ||
| const int32_t | node_index, | ||
| const int32_t | input_index | ||
| ) |
node_index番目のNodeのinput_index番目の入力のTensorのindexを取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| tensor_index | Tensorのindexの格納先へのポインター |
| node_index | Nodeのindex |
| input_index | 入力のindex |
| AILIATFLiteStatus ailiaTFLiteGetNodeOperator | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | op, | ||
| const int32_t | node_index | ||
| ) |
node_index番目のNodeのOperatorを取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| op | Operatorの格納先へのポインター |
| node_index | Nodeのindex |
Operatorのenum値はtfliteファイルの内部の値に準じます。 詳しくはTensorFlowのソースツリーのtensorflow/lite/schema/schema.fbsファイルを参照してください。
| AILIATFLiteStatus ailiaTFLiteGetNodeOption | ( | const struct AILIATFLiteInstance * | instance, |
| void * | value, | ||
| const int32_t | node_index, | ||
| const char * | key | ||
| ) |
node_index番目のNodeのオプションを取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| value | 出力の格納先へのポインター |
| node_index | Nodeのindex |
| key | オプション名の文字列ポインター |
| AILIATFLiteStatus ailiaTFLiteGetNodeOutputCount | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | count, | ||
| const int32_t | node_index | ||
| ) |
node_index番目のNodeの出力の個数を取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| count | 出力の個数の格納先へのポインター |
| node_index | Nodeのindex |
| AILIATFLiteStatus ailiaTFLiteGetNodeOutputTensorIndex | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | tensor_index, | ||
| const int32_t | node_index, | ||
| const int32_t | output_index | ||
| ) |
node_index番目のNodeのoutput_index番目の出力のTensorのindexを取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| tensor_index | Tensorのindexの格納先へのポインター |
| node_index | Nodeのindex |
| output_index | 出力のindex |
| AILIATFLiteStatus ailiaTFLiteGetNumberOfInputs | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | num_of_input_tensor | ||
| ) |
tfliteモデルの入力Tensorの数を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| num_of_input_tensor | モデルの入力Tensorの数の格納先へのポインター |
| AILIATFLiteStatus ailiaTFLiteGetNumberOfOutputs | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | num_of_output_tensor | ||
| ) |
tfliteモデルの出力Tensorの数を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| num_of_output_tensor | モデルの出力Tensorの数の格納先へのポインター |
| AILIATFLiteStatus ailiaTFLiteGetOperatorName | ( | const char ** | name, |
| const int32_t | op | ||
| ) |
Operatorの名前を取得します。
| name | Operatorの名前の文字列ポインターの格納先へのポインター |
| op | Operator |
nameで取得できる文字列ポインターの寿命はライブラリのアンロードまで有効です。 なお、呼び出し元で文字列ポインターを開放する必要はありません。
| AILIATFLiteStatus ailiaTFLiteGetOutputTensorIndex | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | tensor_index, | ||
| const int32_t | output_index | ||
| ) |
出力TensorのindexからTensorのindexを取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| tensor_index | Tensorのindexの格納先へのポインター |
| output_index | 出力Tensorのindex(0~出力Tensorの数-1) |
出力TensorのindexからTensorのindexに変換します。 indexの上限はailiaTFLiteGetNumberOfOutputs()-1です。
| AILIATFLiteStatus ailiaTFLiteGetScratchBufferUsage | ( | struct AILIATFLiteInstance * | instance, |
| size_t * | int_buffer_size, | ||
| size_t * | mid_buffer_size, | ||
| size_t * | ext_buffer_size | ||
| ) |
スクラッチバッファの最大使用量を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| int_buffer_size | スクラッチバッファ(L2)のサイズ |
| mid_buffer_size | スクラッチバッファ(MSMC)のサイズ |
| ext_buffer_size | スクラッチバッファ(DDR)のサイズ |
初回に大きいスクラッチバッファサイズで推論を行うことで、必要なスクラッチバッファのサイズを取得することができます。 内部で行われるアライメントを考慮した値が返るため、取得した値はアライメントを考慮せずに直接使用可能です。
| AILIATFLiteStatus ailiaTFLiteGetScratchBufferUsageEx | ( | struct AILIATFLiteInstance * | instance, |
| size_t * | int_buffer_size, | ||
| size_t * | mid_buffer_size, | ||
| size_t * | ext_buffer_size, | ||
| size_t * | global_buffer_size | ||
| ) |
スクラッチバッファの最大使用量を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| int_buffer_size | スクラッチバッファ(L2)のサイズ |
| mid_buffer_size | スクラッチバッファ(MSMC)のサイズ |
| ext_buffer_size | スクラッチバッファ(DDR)のサイズ |
| global_buffer_size | スクラッチバッファ(グローバルMSMC)のサイズ |
初回に大きいスクラッチバッファサイズで推論を行うことで、必要なスクラッチバッファのサイズを取得することができます。 内部で行われるアライメントを考慮した値が返るため、取得した値はアライメントを考慮せずに直接使用可能です。
| AILIATFLiteStatus ailiaTFLiteGetSummary | ( | struct AILIATFLiteInstance * | instance, |
| char * | buffer, | ||
| size_t | buffer_size | ||
| ) |
各Nodeの名前と形状を表示します。
| instance | ailia TFLite runtimeインスタンスポインター |
| buffer | Summaryの出力先の文字列ポインター |
| buffer_size | 出力バッファのサイズ(終端null文字分を含む)。 ailiaTFLiteGetSummaryLength() で取得した値を設定してください。 |
| AILIATFLiteStatus ailiaTFLiteGetSummaryLength | ( | struct AILIATFLiteInstance * | instance, |
| size_t * | buffer_size | ||
| ) |
ネットワークSummary用に必要なバッファのサイズを取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| buffer_size | バッファのサイズの格納先へのポインター(終端null文字分を含む) |
| AILIATFLiteStatus ailiaTFLiteGetTensorBuffer | ( | struct AILIATFLiteInstance * | instance, |
| void ** | buffer, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorのデータの格納バッファーを取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| buffer | データの格納バッファーへのポインターの格納先へのポインター |
| tensor_index | Tensorのindex |
bufferで取得できる格納バッファーの寿命はailiaTFLiteAllocateTensors/ailiaTFLiteResizeInputTensor/ailiaTFLiteDestroyのいずれか呼び出すまで有効です。 また、格納バッファーの値はailiaTFLitePredictを呼び出すと変更されます。 なお、呼び出し元で格納バッファーを開放する必要はありません。
| AILIATFLiteStatus ailiaTFLiteGetTensorDimension | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | tensor_dim, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの次元を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| tensor_dim | 指定したTensorの次元の格納先へのポインター |
| tensor_index | Tensorのindex |
| AILIATFLiteStatus ailiaTFLiteGetTensorName | ( | const struct AILIATFLiteInstance * | instance, |
| const char ** | name, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの名前を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| name | Tensorの名前の文字列ポインターの格納先へのポインター |
| tensor_index | Tensorのindex |
nameで取得できる文字列ポインターの寿命はailiaTFLiteDestroyを呼び出すまで有効です。 なお、呼び出し元で文字列ポインターを開放する必要はありません。
| AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationCount | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | count, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの量子化パラメーターの個数を取得します
| instance | ailia TFLite runtimeインスタンスポインター |
| count | 量子化パラメーターの個数の格納先へのポインター |
| tensor_index | Tensorのindex |
指定したTensorに関連付けられた量子化パラメーターの個数を取得します。 指定したTensorに量子化パラメーターが存在しない場合は0が格納されます。
| AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationQuantizedDimension | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | axis, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの量子化パラメーターの軸を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| axis | 量子化パラメーターの軸の格納先へのポインター |
| tensor_index | Tensorのindex |
| AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationScale | ( | const struct AILIATFLiteInstance * | instance, |
| float * | scale, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの量子化パラメーターのスケールを取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| scale | 量子化パラメーターのスケールの格納先へのポインター |
| tensor_index | Tensorのindex |
Tensorは以下の式で量子化して格納します。 量子化値 = zero_point * round(入力/scale) scale:ailiaTFLiteGetTensorQuantizationScaleで取得 zero_point:ailiaTFLiteGetTensorQuantizationZeroPointで取得 scaleはailiaTFLiteGetTensorQuantizationCountで取得した要素数以上のバッファーを確保してください。
| AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationZeroPoint | ( | const struct AILIATFLiteInstance * | instance, |
| int64_t * | zero_point, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの量子化パラメーターのゼロ点を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| zero_point | 量子化パラメーターのゼロ点の格納先へのポインター |
| tensor_index | Tensorのindex |
量子化の解説はailiaTFLiteGetTensorQuantizationScaleを御覧ください。 zero_pointはailiaTFLiteGetTensorQuantizationCountで取得した要素数以上のバッファーを確保してください。
| AILIATFLiteStatus ailiaTFLiteGetTensorShape | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | shape, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの形状を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| shape | Tensorの形状の格納先 |
| tensor_index | Tensorのindex |
指定したTensorの形状をshapeに格納します。 shapeはailiaTFLiteGetTensorDimensionで取得した次元以上のバッファーを確保してください。
| AILIATFLiteStatus ailiaTFLiteGetTensorShapeSignature | ( | const struct AILIATFLiteInstance * | instance, |
| int32_t * | shape, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorの未確定な次元情報付き形状を取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| shape | Tensorの形状の格納先 |
| tensor_index | Tensorのindex |
指定したTensorの未確定な次元情報付き形状をshapeに格納します。 形状が未確定な次元は-1が格納されます。 指定したTensorに未確定な次元が含まれていない場合はailiaTFLiteGetTensorShapeと同じ結果となります。 shapeはailiaTFLiteGetTensorDimensionで取得した次元以上のバッファーを確保してください。
| AILIATFLiteStatus ailiaTFLiteGetTensorType | ( | const struct AILIATFLiteInstance * | instance, |
| AILIATFLiteTensorType * | tensor_type, | ||
| const int32_t | tensor_index | ||
| ) |
index番目のTensorのデータタイプを取得します。
| instance | ailia TFLite runtimeインスタンスポインター |
| tensor_type | 指定したTensorのデータタイプの格納先 |
| tensor_index | Tensorのindex |
| const char* ailiaTFLiteGetVersion | ( | void | ) |
ライブラリバージョンを取得します
返値は解放する必要はありません。
| AILIATFLiteStatus ailiaTFLiteMklDisableFastMM | ( | void | ) |
MKLのFastMMを無効化します
mkl_disable_fast_mmを呼び出すことでFastMMを無効化します。全てのインスタンスに影響します。 MKLはスレッドごとにメモリを確保するため、mkl_free_buffersを呼び出すまでメモリが単調増加します。 このワークメモリは、ailiaTFLiteDestroyでmkl_free_buffersを呼び出すまで保持されます。 FastMMを無効化することで、スレッドごとにメモリを確保しないように指定することができます。 MKLを使用しない環境(macOSなど)ではAILIA_TFLITE_STATUS_INVALID_STATEを返します。
| AILIATFLiteStatus ailiaTFLiteMklSetNumThreads | ( | const int32_t | num_threads | ) |
MKLが使用するスレッド数を設定します
| num_threads | スレッド数(1以上) |
mkl_set_num_threadsを呼び出すことでMKLのスレッド数を変更します。全てのインスタンスに影響します。 デフォルトでは自動設定となります。 MKLを使用しない環境(macOSなど)ではAILIA_TFLITE_STATUS_INVALID_STATEを返します。
| AILIATFLiteStatus ailiaTFLitePredict | ( | struct AILIATFLiteInstance * | instance | ) |
推論を行います。
| instance | ailia TFLite runtimeインスタンスポインター |
| AILIATFLiteStatus ailiaTFLiteResizeInputTensor | ( | struct AILIATFLiteInstance * | instance, |
| const int32_t | input_index, | ||
| const int32_t * | shape, | ||
| const int32_t | dim | ||
| ) |
指定した入力indexのTensorの形状を変更します
| instance | ailia TFLite runtimeインスタンスポインター |
| input_index | 0~入力Tensorの数-1 |
| shape | 新しい形状 |
| dim | 次元 |
入力Tensorの形状を変更します。 この関数を呼び出すと確保済み内部バッファーを開放するため、 ailiaTFLiteAllocateTensorsを呼び出す必要があります。 また、入力形状に応じて中間Tensorの形状が変わる場合があるため、 この関数を呼出後、ailiaTFLiteAllocateTensorsを呼び出すまでは取得系APIの結果が不正となる場合があります。 indexの上限はailiaTFLiteGetNumberOfInputs()-1です。 なお、指定したTensorに未確定な次元が含まれていない場合(ailiaTFLiteGetTensorShapeSignatureで取得したshapeに-1が含まれていない場合)はエラーとなります。
| AILIATFLiteStatus ailiaTFLiteRestoreContext | ( | struct AILIATFLiteInstance * | instance, |
| const void * | buf, | ||
| size_t | buf_size | ||
| ) |
DSAの結果を復元します。
| instance | ailia TFLite runtimeインスタンスポインタ |
| buf | バッファ |
| buf_size | バッファサイズ(バイト単位) |
ailiaTFLiteAllocateTensorsを呼び出す前に実行する必要があります。 バッファに保存したDSAの割り当て情報を再利用することで、DSAの割り当て時間を短縮することができます。 ailiaTFLiteRuntimeのバージョンが変わると保存した結果は無効になります。
| AILIATFLiteStatus ailiaTFLiteSetCpuFeatures | ( | struct AILIATFLiteInstance * | instance, |
| int32_t | cpu_features | ||
| ) |
使用するCPU命令を設定します
| instance | ailia TFLite runtimeインスタンスポインター |
| cpu_features | AILIA_TFLITE_CPU_FEATURES_XXXの論理和 |
使用するCPU命令を設定します。 使用できないCPU命令が設定された場合、AILIA_TFLITE_STATUS_OUT_OF_RANGEを返します。
| AILIATFLiteStatus ailiaTFLiteSetProfileMode | ( | struct AILIATFLiteInstance * | instance, |
| int | mode | ||
| ) |
プロファイルモードをセットします。
| instance | ailia TFLite runtimeインスタンスポインター |
| mode | プロファイルモード (AILIA_TFLITE_PROFILE_MODE_*) |
プロファイルモードを指定します。デフォルトは無効です。 プロファイルモードを有効にした場合、ailiaTFLiteGetSummaryの出力にプロファイル結果が追加されます。 ailiaTFLiteCreateの直後に実行する必要があります。 ailiaTFLiteAllocateTensorsの後に呼び出した場合はAILIA_TFLITE_STATUS_INVALID_STATEが返ります。
| AILIATFLiteStatus ailiaTFLiteSetScratchBuffer | ( | struct AILIATFLiteInstance * | instance, |
| void * | int_buffer, | ||
| size_t | int_buffer_size, | ||
| void * | mid_buffer, | ||
| size_t | mid_buffer_size, | ||
| void * | ext_buffer, | ||
| size_t | ext_buffer_size | ||
| ) |
スクラッチバッファを設定します
| instance | ailia TFLite runtimeインスタンスポインター |
| int_buffer | スクラッチバッファ(L2)へのポインタ |
| int_buffer_size | スクラッチバッファ(L2)のサイズ(64byte以上) |
| mid_buffer | スクラッチバッファ(MSMC)へのポインタ |
| mid_buffer_size | スクラッチバッファ(MSMC)のサイズ |
| ext_buffer | スクラッチバッファ(DDR)へのポインタ |
| ext_buffer_size | スクラッチバッファ(DDR)のサイズ |
中間テンソルやワークメモリとして使用するスクラッチバッファを設定します。 バッファのアライメントは内部で行われるため、アライメントを考慮する必要はありません。 L2以外のバッファサイズに0を指定すると、指定したバッファを無効化することが可能です。 ENV_MMALIBを指定した場合に、この関数を呼び出さずにailiaTFLiteAllocateTensorsを実行すると、AILIA_TFLITE_STATUS_INVALID_STATEを返します。 スクラッチバッファはailiaTFLitePredictを呼び出す度に変更することが可能です。 ただし、スクラッチバッファのサイズはailiaTFLiteAllocateTensorsで使用した値と同じである必要があります。 非永続化データのワーク領域として使用するため、シングルスレッドの場合は複数インスタンスに同じバッファを与えることが可能です。 スクラッチバッファのサイズが変化すると、Attentionのタイルサイズが変化し、処理結果も変化します。
| AILIATFLiteStatus ailiaTFLiteSetScratchBufferEx | ( | struct AILIATFLiteInstance * | instance, |
| void * | int_buffer, | ||
| size_t | int_buffer_size, | ||
| void * | mid_buffer, | ||
| size_t | mid_buffer_size, | ||
| void * | ext_buffer, | ||
| size_t | ext_buffer_size, | ||
| void * | global_buffer, | ||
| size_t | global_buffer_size | ||
| ) |
スクラッチバッファを設定します (グローバルMSMC対応版)
| instance | ailia TFLite runtimeインスタンスポインター |
| int_buffer | スクラッチバッファ(L2)へのポインタ |
| int_buffer_size | スクラッチバッファ(L2)のサイズ(64byte以上) |
| mid_buffer | スクラッチバッファ(MSMC)へのポインタ |
| mid_buffer_size | スクラッチバッファ(MSMC)のサイズ |
| ext_buffer | スクラッチバッファ(DDR)へのポインタ |
| ext_buffer_size | スクラッチバッファ(DDR)のサイズ |
| global_buffer | スクラッチバッファ(グローバルMSMC)へのポインタ |
| global_buffer_size | スクラッチバッファ(グローバルMSMC)のサイズ |
ailiaTFLiteSetScratchBufferをグローバルMSMCに対応させたバージョンです。
| AILIATFLiteStatus ailiaTFLiteSetSynchronizeFunctions | ( | struct AILIATFLiteInstance * | instance, |
| int(*)(void *) | pmain_after_command_store, | ||
| int(*)(void *) | pmain_before_state_load | ||
| ) |
マルチコアで使用する場合において、コア間の同期関数を設定します。
| instance | ailia TFLite runtimeインスタンスポインタ |
| pmain_after_command_store | コマンドストア後に呼び出される関数 |
| pmain_before_state_load | サブコア状態のロード前に呼び出される関数 |
コア間の同期が必要な処理系では、設定した関数内でシステム的に必要となる同期処理を行ってください。
| AILIATFLiteStatus alilaTFLiteSetSubCoreControlVariables | ( | struct AILIATFLiteInstance * | instance, |
| const struct AILIATFLiteSubCoreControlVariables * | control_variables, | ||
| int32_t | sub_core_count | ||
| ) |
マルチコアで使用する場合において、各サブコアとの通信に使用する変数を設定します。
| instance | ailia TFLite runtimeインスタンスポインタ |
| control_variables | AILIATFLiteSubCoreControlVariables構造体のポインタ |
| sub_core_count | サブコア数 |
sub_core_countにサブコア数を指定し、control_variablesには要素数がsub_core_countの構造体配列を指定します。