ailia_tflite  1.2.2.0
マクロ定義 | 型定義 | 関数
ailia_tflite.h ファイル

AILIA TFLITE RUNTIME INTERFACE [詳解]

#include <stdint.h>
#include <stddef.h>
ailia_tflite.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_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 ailiaTFLiteGetScratchBufferUsage (struct AILIATFLiteInstance *instance, size_t *int_buffer_size, size_t *mid_buffer_size, size_t *ext_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)
 マルチコアで使用する場合において、各サブコアとの通信に使用する変数を設定します。 [詳解]
 

詳解

AILIA TFLITE RUNTIME INTERFACE

日付
January 26, 2024

マクロ定義詳解

◆ AILIA_TFLITE_CPU_FEATURES_AVX

#define AILIA_TFLITE_CPU_FEATURES_AVX   (0x00000008)

AVX

◆ AILIA_TFLITE_CPU_FEATURES_AVX2

#define AILIA_TFLITE_CPU_FEATURES_AVX2   (0x00000010)

AVX2

◆ AILIA_TFLITE_CPU_FEATURES_AVX512

#define AILIA_TFLITE_CPU_FEATURES_AVX512   (0x00000040)

AVX512

◆ AILIA_TFLITE_CPU_FEATURES_I8MM

#define AILIA_TFLITE_CPU_FEATURES_I8MM   (0x00000080)

I8MM

◆ AILIA_TFLITE_CPU_FEATURES_NEON

#define AILIA_TFLITE_CPU_FEATURES_NEON   (0x00000001)

NEON

◆ AILIA_TFLITE_CPU_FEATURES_NONE

#define AILIA_TFLITE_CPU_FEATURES_NONE   (0x00000000)

拡張命令無効

◆ AILIA_TFLITE_CPU_FEATURES_SSE2

#define AILIA_TFLITE_CPU_FEATURES_SSE2   (0x00000002)

SSE2

◆ AILIA_TFLITE_CPU_FEATURES_SSE4_2

#define AILIA_TFLITE_CPU_FEATURES_SSE4_2   (0x00000004)

SSE4.2

◆ AILIA_TFLITE_CPU_FEATURES_VNNI

#define AILIA_TFLITE_CPU_FEATURES_VNNI   (0x00000020)

VNNI

◆ AILIA_TFLITE_ENV_MMALIB

#define AILIA_TFLITE_ENV_MMALIB   (2)

MMALIBを使用した実装。PCではMMALIBのエミュレータ、デバイスではMMALIBを使用する。

◆ AILIA_TFLITE_ENV_MMALIB_COMPATIBLE

#define AILIA_TFLITE_ENV_MMALIB_COMPATIBLE   (3)

MMALIBの出力互換実装。出力一致のみを行うため高速に動作する。

◆ AILIA_TFLITE_ENV_NNAPI

#define AILIA_TFLITE_ENV_NNAPI   (1)

NNAPIを使用した実装。Android向け。

◆ AILIA_TFLITE_ENV_QNN

#define AILIA_TFLITE_ENV_QNN   (4)

QNNを使用した実装。

◆ AILIA_TFLITE_ENV_REFERENCE

#define AILIA_TFLITE_ENV_REFERENCE   (0)

リファレンスCPU実装

◆ AILIA_TFLITE_FLAG_INPUT_AND_OUTPUT_TENSORS_USE_SCRATCH

#define AILIA_TFLITE_FLAG_INPUT_AND_OUTPUT_TENSORS_USE_SCRATCH   (1)

◆ AILIA_TFLITE_FLAG_NONE

#define AILIA_TFLITE_FLAG_NONE   (0)

通常モード

◆ AILIA_TFLITE_MEMORY_MODE_DEFAULT

#define AILIA_TFLITE_MEMORY_MODE_DEFAULT   (0)

通常モード

◆ AILIA_TFLITE_MEMORY_MODE_REDUCE_INTERSTAGE

#define AILIA_TFLITE_MEMORY_MODE_REDUCE_INTERSTAGE   (1)

省メモリモード

◆ AILIA_TFLITE_PROFILE_MODE_DISABLE

#define AILIA_TFLITE_PROFILE_MODE_DISABLE   (0)

プロファイル無効

◆ AILIA_TFLITE_PROFILE_MODE_ENABLE

#define AILIA_TFLITE_PROFILE_MODE_ENABLE   (1)

プロファイル有効

◆ AILIA_TFLITE_PROFILE_MODE_MEMORY

#define AILIA_TFLITE_PROFILE_MODE_MEMORY   (4)

メモリプロファイル有効

◆ AILIA_TFLITE_PROFILE_MODE_TRACE

#define AILIA_TFLITE_PROFILE_MODE_TRACE   (2)

トレース有効

◆ AILIA_TFLITE_STATUS_BROKEN_MODEL

#define AILIA_TFLITE_STATUS_BROKEN_MODEL   ( -4)

モデルが破損している このステータスコードは与えられたモデルファイルが破損している場合に返ってきます。モデルファイルが正しいかどうかをご確認ください。

◆ AILIA_TFLITE_STATUS_INVALID_ARGUMENT

#define AILIA_TFLITE_STATUS_INVALID_ARGUMENT   ( -1)

引数が不正 このステータスコードが返ってきた場合、呼び出し元のコードや渡している引数がNULLになっていないかなどを見直してください。

◆ AILIA_TFLITE_STATUS_INVALID_PARAMETER

#define AILIA_TFLITE_STATUS_INVALID_PARAMETER   ( -5)

モデルのパラメーターが不正 このステータスコードはモデル内に含まれているパラメーターが不正な場合に返ってきます。モデルファイルが正しいかどうかをご確認ください。

◆ AILIA_TFLITE_STATUS_INVALID_STATE

#define AILIA_TFLITE_STATUS_INVALID_STATE   ( -11)

APIを呼び出せるステートでない このステータスコードが返ってきた場合、APIを呼び出せる状態かどうかなどを見直してください。

◆ AILIA_TFLITE_STATUS_LICENSE_BROKEN

#define AILIA_TFLITE_STATUS_LICENSE_BROKEN   ( -9)

ライセンスが壊れている このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルが破損している場合に返ってきます。トライアル版のライセンスに関しましてはドキュメント記載の問い合わせ先までお問い合わせください。

◆ AILIA_TFLITE_STATUS_LICENSE_EXPIRED

#define AILIA_TFLITE_STATUS_LICENSE_EXPIRED   ( -10)

ライセンスの有効期限切れ このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルの有効期限が切れている場合に返ってきます。トライアル版のライセンスの更新に関しましてはドキュメント記載の問い合わせ先までお問い合わせください。

◆ AILIA_TFLITE_STATUS_LICENSE_NOT_FOUND

#define AILIA_TFLITE_STATUS_LICENSE_NOT_FOUND   ( -8)

有効なライセンスが見つからない このステータスコードはトライアル版ailia TFLite runtimeを実行している場合で、ライセンスファイルが見つからなかった場合に返ってきます。トライアル版のライセンスに関しましてはドキュメント記載の問い合わせ先までお問い合わせください。

◆ AILIA_TFLITE_STATUS_MEMORY_INSUFFICIENT

#define AILIA_TFLITE_STATUS_MEMORY_INSUFFICIENT   ( -3)

メモリが不足している このステータスコードはメモリ確保に失敗した場合などに返ってきます。メモリの空き状況を確認し、ほかのプロセスを終了するなどの対処をしてください。

◆ AILIA_TFLITE_STATUS_OTHER_ERROR

#define AILIA_TFLITE_STATUS_OTHER_ERROR   (-128)

その他のエラー 上記以外のエラーが発生した場合に返ります。ドキュメント記載の問い合わせ先までお問い合わせください。

◆ AILIA_TFLITE_STATUS_OUT_OF_RANGE

#define AILIA_TFLITE_STATUS_OUT_OF_RANGE   ( -2)

引数などが範囲外 このステータスコードが返ってきた場合、引数が範囲外になっていないかなどを見直してください。

◆ AILIA_TFLITE_STATUS_PARAMETER_NOT_FOUND

#define AILIA_TFLITE_STATUS_PARAMETER_NOT_FOUND   ( -6)

パラメーターが存在しない このステータスコードはモデル内で指定したパラメーターが存在しない場合に返ってきます。呼び出し元のコードやモデルファイルが正しいかどうかをご確認ください。

◆ AILIA_TFLITE_STATUS_SUCCESS

#define AILIA_TFLITE_STATUS_SUCCESS   ( 0)

成功

◆ AILIA_TFLITE_STATUS_UNSUPPORTED_OPCODE

#define AILIA_TFLITE_STATUS_UNSUPPORTED_OPCODE   ( -7)

非対応のオペレーターを実行しようとした このステータスコードはailia TFLite runtimeでサポートされていないオペレーターが含まれていた場合に返ってきます。ドキュメントに記載されているオペレーター以外がモデルに含まれていないかご確認ください。オペレーターの新規追加に関しましてはドキュメント記載の問い合わせ先までお問い合わせください。

◆ AILIA_TFLITE_SUB_CORE_COUNT_MAX

#define AILIA_TFLITE_SUB_CORE_COUNT_MAX   (8)

マルチコアをサポートする環境で指定できるコア数の最大値

◆ AILIA_TFLITE_TENSOR_TYPE_BOOL

#define AILIA_TFLITE_TENSOR_TYPE_BOOL   (6)

BOOL

◆ AILIA_TFLITE_TENSOR_TYPE_COMPLEX64

#define AILIA_TFLITE_TENSOR_TYPE_COMPLEX64   (8)

COMPLEX64

◆ AILIA_TFLITE_TENSOR_TYPE_FLOAT16

#define AILIA_TFLITE_TENSOR_TYPE_FLOAT16   (1)

FLOAT16

◆ AILIA_TFLITE_TENSOR_TYPE_FLOAT32

#define AILIA_TFLITE_TENSOR_TYPE_FLOAT32   (0)

FLOAT32

◆ AILIA_TFLITE_TENSOR_TYPE_INT16

#define AILIA_TFLITE_TENSOR_TYPE_INT16   (7)

INT16

◆ AILIA_TFLITE_TENSOR_TYPE_INT32

#define AILIA_TFLITE_TENSOR_TYPE_INT32   (2)

INT32

◆ AILIA_TFLITE_TENSOR_TYPE_INT64

#define AILIA_TFLITE_TENSOR_TYPE_INT64   (4)

INT64

◆ AILIA_TFLITE_TENSOR_TYPE_INT8

#define AILIA_TFLITE_TENSOR_TYPE_INT8   (9)

INT8

◆ AILIA_TFLITE_TENSOR_TYPE_STRING

#define AILIA_TFLITE_TENSOR_TYPE_STRING   (5)

STRING

◆ AILIA_TFLITE_TENSOR_TYPE_UINT8

#define AILIA_TFLITE_TENSOR_TYPE_UINT8   (3)

UINT8

型定義詳解

◆ AILIATFLiteCpuFeatures

typedef int32_t AILIATFLiteCpuFeatures

◆ AILIATFLiteEnvironment

typedef int32_t AILIATFLiteEnvironment

◆ AILIATFLiteFlags

typedef int32_t AILIATFLiteFlags

◆ AILIATFLiteMemoryMode

typedef int32_t AILIATFLiteMemoryMode

◆ AILIATFLiteStatus

typedef int32_t AILIATFLiteStatus

◆ AILIATFLiteTensorType

typedef int8_t AILIATFLiteTensorType

関数詳解

◆ ailiaTFLiteAllocateTensors()

AILIATFLiteStatus ailiaTFLiteAllocateTensors ( struct AILIATFLiteInstance *  instance)

ailia TFLite runtimeの内部バッファーの確保を行います

引数
instanceailia TFLite runtimeインスタンスポインター
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

内部の形状を更新し、推論に必要なバッファーを確保します。

◆ ailiaTFLiteCreate()

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のインスタンスを作成します。

引数
instanceailia TFLite runtimeインスタンスポインターへのポインター
tflitetfliteモデルへのポインター
tflite_lengthtfliteの長さ(バイト単位)
pmallocmallocの関数ポインター(NULLの場合はmallocを利用)
pmemcpymemcpyの関数ポインター(NULLの場合はmemcpyを利用)
pfreefreeの関数ポインター(NULLの場合はfreeを利用)
phandleメモリアロケータに渡されるハンドル(標準のアロケータを使用する場合はNULL)
env_id計算に利用する推論実行環境(AILIA_TFLITE_ENV_NNAPI_*)
memory_modeメモリモード(AILIA_TFLITE_MEMORY_MODE_*)
flagsフラグ(AILIA_TFLITE_FLAG_*の論理和)
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

tfliteモデルを開き、ailia TFLite runtimeインスタンスを作成します。 また、必要な内部バッファーの確保も行います。 インスタンス生成に失敗した場合でinstanceにNULL以外が格納された場合はailiaTFLiteDestroyを呼び出す必要があります。

◆ ailiaTFLiteDestroy()

void ailiaTFLiteDestroy ( struct AILIATFLiteInstance *  instance)

ailia TFLite runtimeのインスタンスを破棄します。

引数
instanceailia TFLite runtimeインスタンスポインター

◆ ailiaTFLiteGetCpuFeatures()

AILIATFLiteStatus ailiaTFLiteGetCpuFeatures ( struct AILIATFLiteInstance *  instance,
int32_t *  cpu_features 
)

使用するCPU命令を取得します

引数
instanceailia TFLite runtimeインスタンスポインター
cpu_featuresAILIA_TFLITE_CPU_FEATURES_XXXの論理和
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

使用するCPU命令を取得します。 デフォルトではCPU情報から取得したCPU命令を返します。 ailiaTFLiteSetCpuFeaturesを呼び出した以降は、設定したCPU命令を返します。

◆ ailiaTFLiteGetEnvironment()

AILIATFLiteStatus ailiaTFLiteGetEnvironment ( AILIATFLiteEnvironment env)

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

引数
env計算環境情報の格納先の配列
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

ailiaTFLiteGetEnvironmentCount()の返すサイズの配列を入力に渡してください。

◆ ailiaTFLiteGetEnvironmentCount()

AILIATFLiteStatus ailiaTFLiteGetEnvironmentCount ( size_t *  env_count)

利用可能な計算環境の数を取得します

引数
env_count計算環境情報の数の格納先へのポインター
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetErrorDetail()

AILIATFLiteStatus ailiaTFLiteGetErrorDetail ( struct AILIATFLiteInstance *  instance,
char **  buffer 
)

エラーの詳細を返します

引数
instanceailia TFLite runtimeインスタンスポインター
bufferエラー詳細文字列へのポインタ

文字列は解放する必要はありません。 文字列の有効期間は次にailiaのAPIを呼ぶまでとなります。

◆ ailiaTFLiteGetInputTensorIndex()

AILIATFLiteStatus ailiaTFLiteGetInputTensorIndex ( const struct AILIATFLiteInstance *  instance,
int32_t *  tensor_index,
const int32_t  input_index 
)

入力TensorのindexからTensorのindexを取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
tensor_indexTensorのindexの格納先へのポインター
input_index入力Tensorのindex(0~入力Tensorの数-1)
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 input_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

入力TensorのindexからTensorのindexに変換します。 indexの上限はailiaTFLiteGetNumberOfInputs()-1です。

◆ ailiaTFLiteGetNodeCount()

AILIATFLiteStatus ailiaTFLiteGetNodeCount ( const struct AILIATFLiteInstance *  instance,
int32_t *  count 
)

Nodeの個数を取得します

引数
instanceailia TFLite runtimeインスタンスポインター
countNodeの個数の格納先へのポインター
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetNodeInputCount()

AILIATFLiteStatus ailiaTFLiteGetNodeInputCount ( const struct AILIATFLiteInstance *  instance,
int32_t *  count,
const int32_t  node_index 
)

node_index番目のNodeの入力の個数を取得します

引数
instanceailia TFLite runtimeインスタンスポインター
count入力の個数の格納先へのポインター
node_indexNodeのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 node_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetNodeInputTensorIndex()

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を取得します

引数
instanceailia TFLite runtimeインスタンスポインター
tensor_indexTensorのindexの格納先へのポインター
node_indexNodeのindex
input_index入力のindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 node_indexおよびinput_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetNodeOperator()

AILIATFLiteStatus ailiaTFLiteGetNodeOperator ( const struct AILIATFLiteInstance *  instance,
int32_t *  op,
const int32_t  node_index 
)

node_index番目のNodeのOperatorを取得します

引数
instanceailia TFLite runtimeインスタンスポインター
opOperatorの格納先へのポインター
node_indexNodeのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 node_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

Operatorのenum値はtfliteファイルの内部の値に準じます。 詳しくはTensorFlowのソースツリーのtensorflow/lite/schema/schema.fbsファイルを参照してください。

◆ ailiaTFLiteGetNodeOption()

AILIATFLiteStatus ailiaTFLiteGetNodeOption ( const struct AILIATFLiteInstance *  instance,
void *  value,
const int32_t  node_index,
const char *  key 
)

node_index番目のNodeのオプションを取得します

引数
instanceailia TFLite runtimeインスタンスポインター
value出力の格納先へのポインター
node_indexNodeのindex
keyオプション名の文字列ポインター
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 node_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetNodeOutputCount()

AILIATFLiteStatus ailiaTFLiteGetNodeOutputCount ( const struct AILIATFLiteInstance *  instance,
int32_t *  count,
const int32_t  node_index 
)

node_index番目のNodeの出力の個数を取得します

引数
instanceailia TFLite runtimeインスタンスポインター
count出力の個数の格納先へのポインター
node_indexNodeのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 node_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetNodeOutputTensorIndex()

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を取得します

引数
instanceailia TFLite runtimeインスタンスポインター
tensor_indexTensorのindexの格納先へのポインター
node_indexNodeのindex
output_index出力のindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 node_indexおよびoutput_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetNumberOfInputs()

AILIATFLiteStatus ailiaTFLiteGetNumberOfInputs ( const struct AILIATFLiteInstance *  instance,
int32_t *  num_of_input_tensor 
)

tfliteモデルの入力Tensorの数を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
num_of_input_tensorモデルの入力Tensorの数の格納先へのポインター
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetNumberOfOutputs()

AILIATFLiteStatus ailiaTFLiteGetNumberOfOutputs ( const struct AILIATFLiteInstance *  instance,
int32_t *  num_of_output_tensor 
)

tfliteモデルの出力Tensorの数を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
num_of_output_tensorモデルの出力Tensorの数の格納先へのポインター
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetOperatorName()

AILIATFLiteStatus ailiaTFLiteGetOperatorName ( const char **  name,
const int32_t  op 
)

Operatorの名前を取得します。

引数
nameOperatorの名前の文字列ポインターの格納先へのポインター
opOperator
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

nameで取得できる文字列ポインターの寿命はライブラリのアンロードまで有効です。 なお、呼び出し元で文字列ポインターを開放する必要はありません。

◆ ailiaTFLiteGetOutputTensorIndex()

AILIATFLiteStatus ailiaTFLiteGetOutputTensorIndex ( const struct AILIATFLiteInstance *  instance,
int32_t *  tensor_index,
const int32_t  output_index 
)

出力TensorのindexからTensorのindexを取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
tensor_indexTensorのindexの格納先へのポインター
output_index出力Tensorのindex(0~出力Tensorの数-1)
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 output_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

出力TensorのindexからTensorのindexに変換します。 indexの上限はailiaTFLiteGetNumberOfOutputs()-1です。

◆ ailiaTFLiteGetScratchBufferUsage()

AILIATFLiteStatus ailiaTFLiteGetScratchBufferUsage ( struct AILIATFLiteInstance *  instance,
size_t *  int_buffer_size,
size_t *  mid_buffer_size,
size_t *  ext_buffer_size 
)

スクラッチバッファの最大使用量を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
int_buffer_sizeスクラッチバッファ(L2)のサイズ
mid_buffer_sizeスクラッチバッファ(MSMC)のサイズ
ext_buffer_sizeスクラッチバッファ(DDR)のサイズ

初回に大きいスクラッチバッファサイズで推論を行うことで、必要なスクラッチバッファのサイズを取得することができます。 内部で行われるアライメントを考慮した値が返るため、取得した値はアライメントを考慮せずに直接使用可能です。

◆ ailiaTFLiteGetSummary()

AILIATFLiteStatus ailiaTFLiteGetSummary ( struct AILIATFLiteInstance *  instance,
char *  buffer,
size_t  buffer_size 
)

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

引数
instanceailia TFLite runtimeインスタンスポインター
bufferSummaryの出力先の文字列ポインター
buffer_size出力バッファのサイズ(終端null文字分を含む)。 ailiaTFLiteGetSummaryLength() で取得した値を設定してください。
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetSummaryLength()

AILIATFLiteStatus ailiaTFLiteGetSummaryLength ( struct AILIATFLiteInstance *  instance,
size_t *  buffer_size 
)

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

引数
instanceailia TFLite runtimeインスタンスポインター
buffer_sizeバッファのサイズの格納先へのポインター(終端null文字分を含む)
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetTensorBuffer()

AILIATFLiteStatus ailiaTFLiteGetTensorBuffer ( struct AILIATFLiteInstance *  instance,
void **  buffer,
const int32_t  tensor_index 
)

index番目のTensorのデータの格納バッファーを取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
bufferデータの格納バッファーへのポインターの格納先へのポインター
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

bufferで取得できる格納バッファーの寿命はailiaTFLiteAllocateTensors/ailiaTFLiteResizeInputTensor/ailiaTFLiteDestroyのいずれか呼び出すまで有効です。 また、格納バッファーの値はailiaTFLitePredictを呼び出すと変更されます。 なお、呼び出し元で格納バッファーを開放する必要はありません。

◆ ailiaTFLiteGetTensorDimension()

AILIATFLiteStatus ailiaTFLiteGetTensorDimension ( const struct AILIATFLiteInstance *  instance,
int32_t *  tensor_dim,
const int32_t  tensor_index 
)

index番目のTensorの次元を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
tensor_dim指定したTensorの次元の格納先へのポインター
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetTensorName()

AILIATFLiteStatus ailiaTFLiteGetTensorName ( const struct AILIATFLiteInstance *  instance,
const char **  name,
const int32_t  tensor_index 
)

index番目のTensorの名前を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
nameTensorの名前の文字列ポインターの格納先へのポインター
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

nameで取得できる文字列ポインターの寿命はailiaTFLiteDestroyを呼び出すまで有効です。 なお、呼び出し元で文字列ポインターを開放する必要はありません。

◆ ailiaTFLiteGetTensorQuantizationCount()

AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationCount ( const struct AILIATFLiteInstance *  instance,
int32_t *  count,
const int32_t  tensor_index 
)

index番目のTensorの量子化パラメーターの個数を取得します

引数
instanceailia TFLite runtimeインスタンスポインター
count量子化パラメーターの個数の格納先へのポインター
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

指定したTensorに関連付けられた量子化パラメーターの個数を取得します。 指定したTensorに量子化パラメーターが存在しない場合は0が格納されます。

◆ ailiaTFLiteGetTensorQuantizationQuantizedDimension()

AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationQuantizedDimension ( const struct AILIATFLiteInstance *  instance,
int32_t *  axis,
const int32_t  tensor_index 
)

index番目のTensorの量子化パラメーターの軸を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
axis量子化パラメーターの軸の格納先へのポインター
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 指定したTensorに量子化パラメーターが存在しない場合はAILIA_TFLITE_STATUS_PARAMETER_NOT_FOUNDが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetTensorQuantizationScale()

AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationScale ( const struct AILIATFLiteInstance *  instance,
float *  scale,
const int32_t  tensor_index 
)

index番目のTensorの量子化パラメーターのスケールを取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
scale量子化パラメーターのスケールの格納先へのポインター
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 指定したTensorに量子化パラメーターが存在しない場合はAILIA_TFLITE_STATUS_PARAMETER_NOT_FOUNDが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

Tensorは以下の式で量子化して格納します。 量子化値 = zero_point * round(入力/scale) scale:ailiaTFLiteGetTensorQuantizationScaleで取得 zero_point:ailiaTFLiteGetTensorQuantizationZeroPointで取得 scaleはailiaTFLiteGetTensorQuantizationCountで取得した要素数以上のバッファーを確保してください。

◆ ailiaTFLiteGetTensorQuantizationZeroPoint()

AILIATFLiteStatus ailiaTFLiteGetTensorQuantizationZeroPoint ( const struct AILIATFLiteInstance *  instance,
int64_t *  zero_point,
const int32_t  tensor_index 
)

index番目のTensorの量子化パラメーターのゼロ点を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
zero_point量子化パラメーターのゼロ点の格納先へのポインター
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 指定したTensorに量子化パラメーターが存在しない場合はAILIA_TFLITE_STATUS_PARAMETER_NOT_FOUNDが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

量子化の解説はailiaTFLiteGetTensorQuantizationScaleを御覧ください。 zero_pointはailiaTFLiteGetTensorQuantizationCountで取得した要素数以上のバッファーを確保してください。

◆ ailiaTFLiteGetTensorShape()

AILIATFLiteStatus ailiaTFLiteGetTensorShape ( const struct AILIATFLiteInstance *  instance,
int32_t *  shape,
const int32_t  tensor_index 
)

index番目のTensorの形状を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
shapeTensorの形状の格納先
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

指定したTensorの形状をshapeに格納します。 shapeはailiaTFLiteGetTensorDimensionで取得した次元以上のバッファーを確保してください。

◆ ailiaTFLiteGetTensorShapeSignature()

AILIATFLiteStatus ailiaTFLiteGetTensorShapeSignature ( const struct AILIATFLiteInstance *  instance,
int32_t *  shape,
const int32_t  tensor_index 
)

index番目のTensorの未確定な次元情報付き形状を取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
shapeTensorの形状の格納先
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

指定したTensorの未確定な次元情報付き形状をshapeに格納します。 形状が未確定な次元は-1が格納されます。 指定したTensorに未確定な次元が含まれていない場合はailiaTFLiteGetTensorShapeと同じ結果となります。 shapeはailiaTFLiteGetTensorDimensionで取得した次元以上のバッファーを確保してください。

◆ ailiaTFLiteGetTensorType()

AILIATFLiteStatus ailiaTFLiteGetTensorType ( const struct AILIATFLiteInstance *  instance,
AILIATFLiteTensorType tensor_type,
const int32_t  tensor_index 
)

index番目のTensorのデータタイプを取得します。

引数
instanceailia TFLite runtimeインスタンスポインター
tensor_type指定したTensorのデータタイプの格納先
tensor_indexTensorのindex
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 tensor_indexが範囲外の場合はAILIA_TFLITE_STATUS_OUT_OF_RANGEが返ります。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteGetVersion()

const char* ailiaTFLiteGetVersion ( void  )

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

戻り値
バージョン番号

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

◆ ailiaTFLiteMklDisableFastMM()

AILIATFLiteStatus ailiaTFLiteMklDisableFastMM ( void  )

MKLのFastMMを無効化します

戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

mkl_disable_fast_mmを呼び出すことでFastMMを無効化します。全てのインスタンスに影響します。 MKLはスレッドごとにメモリを確保するため、mkl_free_buffersを呼び出すまでメモリが単調増加します。 このワークメモリは、ailiaTFLiteDestroyでmkl_free_buffersを呼び出すまで保持されます。 FastMMを無効化することで、スレッドごとにメモリを確保しないように指定することができます。 MKLを使用しない環境(macOSなど)ではAILIA_TFLITE_STATUS_INVALID_STATEを返します。

◆ ailiaTFLiteMklSetNumThreads()

AILIATFLiteStatus ailiaTFLiteMklSetNumThreads ( const int32_t  num_threads)

MKLが使用するスレッド数を設定します

引数
num_threadsスレッド数(1以上)
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

mkl_set_num_threadsを呼び出すことでMKLのスレッド数を変更します。全てのインスタンスに影響します。 デフォルトでは自動設定となります。 MKLを使用しない環境(macOSなど)ではAILIA_TFLITE_STATUS_INVALID_STATEを返します。

◆ ailiaTFLitePredict()

AILIATFLiteStatus ailiaTFLitePredict ( struct AILIATFLiteInstance *  instance)

推論を行います。

引数
instanceailia TFLite runtimeインスタンスポインター
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

◆ ailiaTFLiteResizeInputTensor()

AILIATFLiteStatus ailiaTFLiteResizeInputTensor ( struct AILIATFLiteInstance *  instance,
const int32_t  input_index,
const int32_t *  shape,
const int32_t  dim 
)

指定した入力indexのTensorの形状を変更します

引数
instanceailia TFLite runtimeインスタンスポインター
input_index0~入力Tensorの数-1
shape新しい形状
dim次元
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 指定したTensorに未確定な次元が含まれていない場合AILIA_TFLITE_STATUS_FIXED_TENSORを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

入力Tensorの形状を変更します。 この関数を呼び出すと確保済み内部バッファーを開放するため、 ailiaTFLiteAllocateTensorsを呼び出す必要があります。 また、入力形状に応じて中間Tensorの形状が変わる場合があるため、 この関数を呼出後、ailiaTFLiteAllocateTensorsを呼び出すまでは取得系APIの結果が不正となる場合があります。 indexの上限はailiaTFLiteGetNumberOfInputs()-1です。 なお、指定したTensorに未確定な次元が含まれていない場合(ailiaTFLiteGetTensorShapeSignatureで取得したshapeに-1が含まれていない場合)はエラーとなります。

◆ ailiaTFLiteSetCpuFeatures()

AILIATFLiteStatus ailiaTFLiteSetCpuFeatures ( struct AILIATFLiteInstance *  instance,
int32_t  cpu_features 
)

使用するCPU命令を設定します

引数
instanceailia TFLite runtimeインスタンスポインター
cpu_featuresAILIA_TFLITE_CPU_FEATURES_XXXの論理和
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

使用するCPU命令を設定します。 使用できないCPU命令が設定された場合、AILIA_TFLITE_STATUS_OUT_OF_RANGEを返します。

◆ ailiaTFLiteSetProfileMode()

AILIATFLiteStatus ailiaTFLiteSetProfileMode ( struct AILIATFLiteInstance *  instance,
int  mode 
)

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

引数
instanceailia TFLite runtimeインスタンスポインター
modeプロファイルモード (AILIA_TFLITE_PROFILE_MODE_*)
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 その他のエラーの場合はAILIA_TFLITE_STATUS_XXXを返します。

プロファイルモードを指定します。デフォルトは無効です。 プロファイルモードを有効にした場合、ailiaTFLiteGetSummaryの出力にプロファイル結果が追加されます。 ailiaTFLiteCreateの直後に実行する必要があります。 ailiaTFLiteAllocateTensorsの後に呼び出した場合はAILIA_TFLITE_STATUS_INVALID_STATEが返ります。

◆ ailiaTFLiteSetScratchBuffer()

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 
)

スクラッチバッファを設定します

引数
instanceailia TFLite runtimeインスタンスポインター
int_bufferスクラッチバッファ(L2)へのポインタ
int_buffer_sizeスクラッチバッファ(L2)のサイズ(64byte以上)
mid_bufferスクラッチバッファ(MSMC)へのポインタ
mid_buffer_sizeスクラッチバッファ(MSMC)のサイズ
ext_bufferスクラッチバッファ(DDR)へのポインタ
ext_buffer_sizeスクラッチバッファ(DDR)のサイズ

MMALIBで使用するスクラッチバッファを設定します。ENV_MMALIBを指定した場合のみ有効です。 バッファのアライメントは内部で行われるため、アライメントを考慮する必要はありません。 L2以外のバッファサイズに0を指定すると、指定したバッファを無効化することが可能です。 ENV_MMALIBを指定した場合に、この関数を呼び出さずにailiaTFLiteAllocateTensorsを実行すると、AILIA_TFLITE_STATUS_INVALID_STATEを返します。 スクラッチバッファはailiaTFLitePredictを呼び出す度に変更することが可能です。 ただし、スクラッチバッファのサイズはailiaTFLiteAllocateTensorsで使用した値と同じである必要があります。 非永続化データのワーク領域として使用するため、シングルスレッドの場合は複数インスタンスに同じバッファを与えることが可能です。

◆ ailiaTFLiteSetSynchronizeFunctions()

AILIATFLiteStatus ailiaTFLiteSetSynchronizeFunctions ( struct AILIATFLiteInstance *  instance,
int(*)(void *)  pmain_after_command_store,
int(*)(void *)  pmain_before_state_load 
)

マルチコアで使用する場合において、コア間の同期関数を設定します。

引数
instanceailia TFLite runtimeインスタンスポインタ
pmain_after_command_storeコマンドストア後に呼び出される関数
pmain_before_state_loadサブコア状態のロード前に呼び出される関数
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

コア間の同期が必要な処理系では、設定した関数内でシステム的に必要となる同期処理を行ってください。

◆ alilaTFLiteSetSubCoreControlVariables()

AILIATFLiteStatus alilaTFLiteSetSubCoreControlVariables ( struct AILIATFLiteInstance *  instance,
const struct AILIATFLiteSubCoreControlVariables *  control_variables,
int32_t  sub_core_count 
)

マルチコアで使用する場合において、各サブコアとの通信に使用する変数を設定します。

引数
instanceailia TFLite runtimeインスタンスポインタ
control_variablesAILIATFLiteSubCoreControlVariables構造体のポインタ
sub_core_countサブコア数
戻り値
成功した場合はAILIA_TFLITE_STATUS_SUCCESSを返します。 失敗した場合はAILIA_TFLITE_STATUS_XXXを返します。

sub_core_countにサブコア数を指定し、control_variablesには要素数がsub_core_countの構造体配列を指定します。