ailia  1.6.0.0
公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | プロパティ | 全メンバ一覧
ailia.AiliaModel クラス
ailia.AiliaModel の継承関係図
Inheritance graph
[凡例]
ailia.AiliaModel 連携図
Collaboration graph
[凡例]

公開メンバ関数

bool Environment (int type)
 指定した種類の計算環境を選択します。 [詳解]
 
string EnvironmentName ()
 選択された環境名を表示します。 [詳解]
 
int GetEnvironmentCount ()
 利用可能な計算環境(CPU, GPU)の数を取得します。 [詳解]
 
Ailia.AILIAEnvironment GetEnvironment (int idx)
 指定したインデックスの計算環境を取得します。 [詳解]
 
bool SelectEnvironment (int idx)
 計算環境を選択します。 [詳解]
 
Ailia.AILIAEnvironment GetSelectedEnvironment ()
 選択された計算環境を取得します。 [詳解]
 
bool SetMemoryMode (uint set_memory_mode)
 メモリモードを設定します [詳解]
 
bool DisableLayerFusion ()
 レイヤー統合による高速化を無効化します。 [詳解]
 
virtual bool OpenFile (string prototxt_path, string model_path)
 モデルファイルからネットワークオブジェクトを作成します。 [詳解]
 
virtual bool OpenMem (byte[] prototxt_buf, byte[] model_buf)
 メモリからネットワークオブジェクトを作成します。 [詳解]
 
virtual bool OpenEx (Ailia.ailiaFileCallback callback, IntPtr arg1, IntPtr arg2)
 ファイルコールバックからネットワークオブジェクトを作成します。 [詳解]
 
bool Predict (float[] output_data, float[] input_data)
 推論を行い推論結果を取得します。 [詳解]
 
Ailia.AILIAShape GetInputShape ()
 推論時の入力データの形状を取得します。 [詳解]
 
uint[] GetInputShapeND ()
 推論時の入力データの形状を取得します。 [詳解]
 
bool SetInputShape (Ailia.AILIAShape shape)
 推論時の入力データの形状を設定します。 [詳解]
 
bool SetInputShapeND (uint[] shape, int dim)
 推論時の入力データの形状を変更します。 [詳解]
 
Ailia.AILIAShape GetOutputShape ()
 推論時の出力データの形状を取得します。 [詳解]
 
uint[] GetOutputShapeND ()
 推論時の出力データの形状を取得します。 [詳解]
 
Ailia.AILIAShape GetBlobShape (string layer_name)
 推論時の内部データ(Blob)の形状(レイヤー形式)を取得します。(Obsolete) [詳解]
 
int FindBlobIndexByName (string name)
 推論時の内部データ(Blob)のインデックスを名前で探し取得します。 [詳解]
 
Ailia.AILIAShape GetBlobShape (uint idx)
 推論時の内部データ(Blob)の形状(レイヤー形式)を取得します。 [詳解]
 
Ailia.AILIAShape GetBlobShape (int idx)
 
bool GetBlobData (float[] output_data, uint idx)
 推論時の内部データ(Blob)を取得します。 [詳解]
 
bool GetBlobData (float[] output_data, int idx)
 
bool SetInputBlobData (float[] input_data, uint idx)
 指定したBlobに入力データを設定します。 [詳解]
 
bool SetInputBlobData (float[] input_data, int idx)
 
bool SetInputBlobShape (Ailia.AILIAShape shape, uint idx)
 指定した入力データ(Blob)の形式を設定します。(4次元以下) [詳解]
 
bool SetInputBlobShape (Ailia.AILIAShape shape, int idx)
 
bool SetInputBlobShapeND (uint[] shape, uint dim, uint idx)
 入力データ(Blob)の形式を設定します。(5次元以上) [詳解]
 
bool SetInputBlobShapeND (uint[] shape, int dim, int idx)
 
uint[] GetInputBlobList ()
 入力データ(Blob)のインデックスのリストを取得します。 [詳解]
 
uint[] GetOutputBlobList ()
 出力データ(Blob)のインデックスのリストを取得します。 [詳解]
 
bool CopyBlobData (uint dst_blob_idx, uint src_blob_idx, AiliaModel src_model=null)
 指定したBlob間でデータをコピーします [詳解]
 
bool Update ()
 事前に入力したデータで推論を行います。 [詳解]
 
virtual void Close ()
 ネットワークオブジェクトを破棄します。 [詳解]
 
virtual void Dispose ()
 リソースを解放します。 [詳解]
 
string GetStatusString (int status)
 ステータスコードに対応する文字列を返します。 [詳解]
 
string GetErrorDetail ()
 エラーの詳細を返します。 [詳解]
 
bool SetProfileMode (uint profile_mode)
 プロファイルモードを有効にします。 [詳解]
 
string GetSummary ()
 ネットワーク情報およびプロファイル結果を取得します。 [詳解]
 

限定公開メンバ関数

virtual void Dispose (bool disposing)
 

限定公開変数類

IntPtr ailia = IntPtr.Zero
 
bool logging = true
 

プロパティ

int Status [get, protected set]
 ステータスコード @detail ライブラリのステータスコードを取得します。 [詳解]
 

関数詳解

◆ Close()

virtual void ailia.AiliaModel.Close ( )
inlinevirtual

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

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

ailia.AiliaPoseEstimatorModel, ailia.AiliaFeatureExtractorModel, ailia.AiliaDetectorModel, ailia.AiliaClassifierModelで再実装されています。

1566  {
1567  if (ailia != IntPtr.Zero)
1568  {
1569  Ailia.ailiaDestroy(ailia);
1570  ailia = IntPtr.Zero;
1571  }
1572  }
Definition: AiliaClassifierModel.cs:22

◆ CopyBlobData()

bool ailia.AiliaModel.CopyBlobData ( uint  dst_blob_idx,
uint  src_blob_idx,
AiliaModel  src_model = null 
)
inline

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

引数
dst_blob_idxコピー先のblobのインデックス
src_blob_idxコピー元のblobのインデックス
src_modelコピー元Blobが含まれるモデルオブジェクト nullを指定した場合 現在のモデルオブジェクト内でBlobをコピーします。
戻り値
成功した場合は true 、失敗した場合は false を返します。
1496  {
1497  IntPtr src_ailia = ailia;
1498  if (src_model != null) src_ailia = src_model.ailia;
1499  if (ailia == IntPtr.Zero || src_ailia == IntPtr.Zero) return false;
1500 
1501  int status = Status = Ailia.ailiaCopyBlobData(ailia, dst_blob_idx, src_ailia, src_blob_idx);
1502  if (status != Ailia.AILIA_STATUS_SUCCESS)
1503  {
1504  if (logging)
1505  {
1506  Debug.Log("ailiaUpdate failed " + status + " (" + GetStatusString(status) + ")");
1507  }
1508  return false;
1509  }
1510  return true;
1511  }
IntPtr ailia
Definition: AiliaModel.cs:25
string GetStatusString(int status)
ステータスコードに対応する文字列を返します。
Definition: AiliaModel.cs:1618
int Status
ステータスコード @detail ライブラリのステータスコードを取得します。
Definition: AiliaModel.cs:1656
bool logging
Definition: AiliaModel.cs:33

◆ DisableLayerFusion()

bool ailia.AiliaModel.DisableLayerFusion ( )
inline

レイヤー統合による高速化を無効化します。

戻り値
成功した場合は true 、失敗した場合は false を返す。

レイヤー統合による高速化を無効化します。デフォルトは有効です。

注釈
Open系API呼び出し後の呼び出しは無効です(falseを返却します)
389  {
390  if (ailia != IntPtr.Zero)
391  {
392  Debug.Assert(false, "Ailia instance is already initialized.");
393  return false;
394  }
395  disalbe_layer_fusion = true;
396  return true;
397  }

◆ Dispose() [1/2]

virtual void ailia.AiliaModel.Dispose ( )
inlinevirtual

リソースを解放します。

ailia.AiliaPoseEstimatorModel, ailia.AiliaFeatureExtractorModel, ailia.AiliaDetectorModel, ailia.AiliaClassifierModelで再実装されています。

1582  {
1583  Dispose(true);
1584  }
virtual void Dispose()
リソースを解放します。
Definition: AiliaModel.cs:1581

◆ Dispose() [2/2]

virtual void ailia.AiliaModel.Dispose ( bool  disposing)
inlineprotectedvirtual

ailia.AiliaPoseEstimatorModel, ailia.AiliaFeatureExtractorModel, ailia.AiliaDetectorModel, ailia.AiliaClassifierModelで再実装されています。

1587  {
1588  if (disposing){
1589  // release managed resource
1590  }
1591  Close(); // release unmanaged resource
1592  }
virtual void Close()
ネットワークオブジェクトを破棄します。
Definition: AiliaModel.cs:1565

◆ Environment()

bool ailia.AiliaModel.Environment ( int  type)
inline

指定した種類の計算環境を選択します。

環境選択(簡易)

引数
type環境の種別( AILIA_ENVIRONMENT_TYPE_CPU or BLAS or GPU)
戻り値
成功した場合 true を、失敗した場合は false を返す。

簡易的に環境種別から計算環境を選択します。 明示的に計算環境を指定する場合は、GetEnvironmentCount()、GetEnvironment()、SelectEnvironment()を使用してください。

注釈
Open系API呼び出し後の呼び出しは無効です(falseを返却します)
61  {
62  int count = GetEnvironmentCount();
63  if (count == -1)
64  {
65  return false;
66  }
67 
68  for (int i = 0; i < count; i++)
69  {
70  Ailia.AILIAEnvironment env = GetEnvironment(i);
71  if (env == null)
72  {
73  return false;
74  }
75 
76  if (env.type == type)
77  {
78  if (!SelectEnvironment(i))
79  {
80  return false;
81  }
82  if (env.backend == Ailia.AILIA_ENVIRONMENT_BACKEND_CUDA || env.backend == Ailia.AILIA_ENVIRONMENT_BACKEND_VULKAN)
83  {
84  return true; //優先
85  }
86  }
87  }
88  return true;
89  }
Ailia.AILIAEnvironment GetEnvironment(int idx)
指定したインデックスの計算環境を取得します。
Definition: AiliaModel.cs:161
bool SelectEnvironment(int idx)
計算環境を選択します。
Definition: AiliaModel.cs:202
int GetEnvironmentCount()
利用可能な計算環境(CPU, GPU)の数を取得します。
Definition: AiliaModel.cs:128

◆ EnvironmentName()

string ailia.AiliaModel.EnvironmentName ( )
inline

選択された環境名を表示します。

戻り値
選択された環境名

選択された環境名を返します。

107  {
108  return env_name;
109  }

◆ FindBlobIndexByName()

int ailia.AiliaModel.FindBlobIndexByName ( string  name)
inline

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

引数
layer_name検索するBlob名
戻り値
成功した場合は 名前で指定したBlobのインデックスを 、そうでなければ -1 を返す。

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

1077  {
1078  uint idx = 0;
1079  int status = Status = Ailia.ailiaFindBlobIndexByName(ailia, ref idx, name);
1080  if (status != Ailia.AILIA_STATUS_SUCCESS)
1081  {
1082  if (logging)
1083  {
1084  Debug.Log("FindBlobIndexByName failed " + status + " (" + GetStatusString(status) + ")");
1085  }
1086  return -1;
1087  }
1088  return (int)idx;
1089  }

◆ GetBlobData() [1/2]

public bool ailia.AiliaModel.GetBlobData ( float[]  output_data,
int  idx 
)
inline

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

1197  {
1198  if (idx < 0)
1199  {
1200  return false;
1201  }
1202  return GetBlobData(output_data, (uint)idx);
1203  }
bool GetBlobData(float[] output_data, uint idx)
推論時の内部データ(Blob)を取得します。
Definition: AiliaModel.cs:1166

◆ GetBlobData() [2/2]

bool ailia.AiliaModel.GetBlobData ( float[]  output_data,
uint  idx 
)
inline

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

引数
output_data推論結果の書き出し先
idxBlobのインデックス (0~ ailiaGetBlobCount() -1)
戻り値
成功した場合は true を、失敗した場合は false を返す。

Ailia.ailiaGetBlobData() で推論時の内部データ(Blob)を取得します。 推論を一度も実行していない場合は失敗します。

1167  {
1168  if (ailia == IntPtr.Zero)
1169  {
1170  return false;
1171  }
1172 
1173  GCHandle output_buf_handle = GCHandle.Alloc(output_data, GCHandleType.Pinned);
1174  IntPtr output_buf_ptr = output_buf_handle.AddrOfPinnedObject();
1175  int status = Status = Ailia.ailiaGetBlobData(ailia, output_buf_ptr, (uint)(output_data.Length * 4), idx);
1176  output_buf_handle.Free();
1177 
1178  if (status != Ailia.AILIA_STATUS_SUCCESS)
1179  {
1180  if (logging)
1181  {
1182  Debug.Log("ailiaGetBlobData failed " + status + " (" + GetStatusString(status) + ")");
1183  }
1184  return false;
1185  }
1186  return true;
1187  }

◆ GetBlobShape() [1/3]

public Ailia AILIAShape ailia.AiliaModel.GetBlobShape ( int  idx)
inline

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

1137  {
1138  if (idx < 0)
1139  {
1140  return null;
1141  }
1142  return GetBlobShape((uint)idx);
1143  }
Ailia.AILIAShape GetBlobShape(string layer_name)
推論時の内部データ(Blob)の形状(レイヤー形式)を取得します。(Obsolete)
Definition: AiliaModel.cs:1030

◆ GetBlobShape() [2/3]

Ailia.AILIAShape ailia.AiliaModel.GetBlobShape ( string  layer_name)
inline

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

引数
layer_name検索するBlob名
戻り値
成功した場合は名前で指定したBlobの形状を、そうでなければ null を返す。

Ailia.ailiaFindBlobIndexByName() でBlob名からBlobのインデックスを取得します。 Ailia.ailiaGetBlobShape() で推論時の内部データ(Blob)の形状(レイヤー形式)を取得し shape に格納します。

1031  {
1032  if (ailia == IntPtr.Zero)
1033  {
1034  return null;
1035  }
1036  Ailia.AILIAShape shape = new Ailia.AILIAShape();
1037  uint id = 0;
1038  int status = Status = Ailia.ailiaFindBlobIndexByName(ailia, ref id, layer_name);
1039  if (status != Ailia.AILIA_STATUS_SUCCESS)
1040  {
1041  if (logging)
1042  {
1043  Debug.Log("ailiaFindBlobIndexByName failed " + status + " (" + GetStatusString(status) + ")");
1044  }
1045  return null;
1046  }
1047  status = Status = Ailia.ailiaGetBlobShape(ailia, shape, id, Ailia.AILIA_SHAPE_VERSION);
1048  if (status != Ailia.AILIA_STATUS_SUCCESS)
1049  {
1050  if (logging)
1051  {
1052  Debug.Log("ailiaGetBlobShape failed " + status + " (" + GetStatusString(status) + ")");
1053  }
1054  return null;
1055  }
1056  return shape;
1057  }

◆ GetBlobShape() [3/3]

Ailia.AILIAShape ailia.AiliaModel.GetBlobShape ( uint  idx)
inline

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

引数
idxBlobのインデックス
戻り値
成功した場合は名前で指定したBlobの形状を、そうでなければ null を返す。

Ailia.ailiaGetBlobShape() で推論時の内部データ(Blob)の形状(レイヤー形式)を取得し shape に格納します。

1110  {
1111  if (ailia == IntPtr.Zero)
1112  {
1113  return null;
1114  }
1115 
1116  Ailia.AILIAShape shape = new Ailia.AILIAShape();
1117  int status = Status = Ailia.ailiaGetBlobShape(ailia, shape, idx, Ailia.AILIA_SHAPE_VERSION);
1118  if (status != Ailia.AILIA_STATUS_SUCCESS)
1119  {
1120  if (logging)
1121  {
1122  Debug.Log("ailiaGetBlobShape failed " + status + " (" + GetStatusString(status) + ")");
1123  }
1124  return null;
1125  }
1126  return shape;
1127  }

◆ GetEnvironment()

Ailia.AILIAEnvironment ailia.AiliaModel.GetEnvironment ( int  idx)
inline

指定したインデックスの計算環境を取得します。

引数
idx環境情報のインデックス(0~ ailiaGetEnvironmentCount() -1)
戻り値
成功した場合は利用可能な環境を、失敗した場合は null を返す。

指定した計算環境の詳細情報を取得します。

162  {
163  IntPtr env_ptr = IntPtr.Zero;
164  int status = Status = Ailia.ailiaGetEnvironment(ref env_ptr, (uint)idx, Ailia.AILIA_ENVIRONMENT_VERSION);
165  if (status != Ailia.AILIA_STATUS_SUCCESS)
166  {
167  if (logging)
168  {
169  Debug.Log("ailiaGetEnvironment failed " + status + " (" + GetStatusString(status) + ")");
170  }
171  return null;
172  }
173  Ailia.AILIAEnvironment env = (Ailia.AILIAEnvironment)Marshal.PtrToStructure(env_ptr, typeof(Ailia.AILIAEnvironment));
174  if (logging)
175  {
176  //Debug.Log("ENV id:"+env.id+", name:"+Marshal.PtrToStringAnsi(env.name)+", type:"+env.type);
177  }
178  return env;
179  }

◆ GetEnvironmentCount()

int ailia.AiliaModel.GetEnvironmentCount ( )
inline

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

環境選択(詳細)

戻り値
成功した場合は利用可能な環境の数を、失敗した場合は-1を返す。 

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

129  {
130  SetTemporaryCachePath();
131  int count = 0;
132  int status = Status = Ailia.ailiaGetEnvironmentCount(ref count);
133  if (status != Ailia.AILIA_STATUS_SUCCESS)
134  {
135  if (logging)
136  {
137  Debug.Log("ailiaGetEnvironmentCount failed " + status + " (" + GetStatusString(status) + ")");
138  }
139  return -1;
140  }
141  return count;
142  }

◆ GetErrorDetail()

string ailia.AiliaModel.GetErrorDetail ( )
inline

エラーの詳細を返します。

戻り値
成功した場合はエラー詳細の文字列を返します。 @detail エラー詳細を文字列として返します。
1640  {
1641  return Marshal.PtrToStringAnsi(Ailia.ailiaGetErrorDetail(ailia));
1642  }

◆ GetInputBlobList()

uint [] ailia.AiliaModel.GetInputBlobList ( )
inline

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

戻り値
成功した場合は入力データ(Blob)のリストを、失敗した場合は null を返します。 @detail Ailia.ailiaGetInputBlobCount()で入力データ(Blob)の数をcountとして取得します。 Ailia.ailiaGetBlobIndexByInputIndex()でBlobのインデックスをidxとして取得し、リストを作成します。
1404  {
1405  if (ailia == IntPtr.Zero)
1406  {
1407  return null;
1408  }
1409 
1410  uint count = 0;
1411  int status = Status = Ailia.ailiaGetInputBlobCount(ailia, ref count);
1412  if (status != Ailia.AILIA_STATUS_SUCCESS || count == 0)
1413  {
1414  return null;
1415  }
1416 
1417  uint[] r = new uint[count];
1418  for (uint i = 0; i < count; i++)
1419  {
1420  uint idx = 0;
1421  status = Status = Ailia.ailiaGetBlobIndexByInputIndex(ailia, ref idx, i);
1422  if (status != Ailia.AILIA_STATUS_SUCCESS)
1423  {
1424  break;
1425  }
1426  r[i] = idx;
1427  }
1428 
1429  return r;
1430  }

◆ GetInputShape()

Ailia.AILIAShape ailia.AiliaModel.GetInputShape ( )
inline

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

戻り値
成功した場合、入力データの各次元の大きさが格納された配列 shape それ以外の場合はnullを返す。 @detail AILIAクラスのailiaGetInputShape()メソッドを用いて、推論時の入力データの形状を取得します。 形状が5次元以上の場合は GetInputShapeND() を利用してください。 形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が shape に格納されます。 失敗した場合には、それに応じたエラーメッセージが表示されます。

Obtains the shape of the input data at the time of inference.

戻り値
If successful, an array containing the size of each dimension of the input data shape Otherwise, null is returned. @detail The ailiaGetInputShape() method of the AILIA class is used to obtain the shape of the input data during inference. If the shape has more than 5 dimensions, use GetInputShapeND(). If a part of the shape is not yet determined, the value of the corresponding dimension is set to 0, and valid values for the other dimensions are stored in shape. In case of failure, a corresponding error message will be displayed.
777  {
778  Ailia.AILIAShape shape = new Ailia.AILIAShape();
779  int status = Status = Ailia.ailiaGetInputShape(ailia, shape, Ailia.AILIA_SHAPE_VERSION);
780  if (status != Ailia.AILIA_STATUS_SUCCESS)
781  {
782  if (logging)
783  {
784  Debug.Log("ailiaGetInputShape failed " + status + " (" + GetStatusString(status) + ")");
785  }
786  return null;
787  }
788  return shape;
789  }

◆ GetInputShapeND()

uint [] ailia.AiliaModel.GetInputShapeND ( )
inline

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

戻り値
成功した場合、入力データの各次元の大きさが格納された配列 shape それ以外の場合はnullを返す。 @detail AILIA.ailiaGetInputDim() を用いて、推論時の入力データの次元を取得します。 AILIA.ailiaGetInputShapeND() を用いて、推論時の入力データの形状を取得します。 形状が5次元以上の場合は GetInputShapeND() を利用してください。 形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が shape に格納されます。 失敗した場合には、それに応じたエラーメッセージが表示されます。
816  {
817  uint dim = 0;
818  int status = Status = Ailia.ailiaGetInputDim(ailia, ref dim);
819  if (status != Ailia.AILIA_STATUS_SUCCESS)
820  {
821  if (logging)
822  {
823  Debug.Log("ailiaGetInputDim failed " + status + " (" + GetStatusString(status) + ")");
824  }
825  return null;
826  }
827  uint[] shape = new uint[dim];
828  status = Status = Ailia.ailiaGetInputShapeND(ailia, shape, dim);
829  if (status != Ailia.AILIA_STATUS_SUCCESS)
830  {
831  if (logging)
832  {
833  Debug.Log("ailiaGetInputShapeND failed " + status + " (" + GetStatusString(status) + ")");
834  }
835  return null;
836  }
837  return shape;
838  }

◆ GetOutputBlobList()

uint [] ailia.AiliaModel.GetOutputBlobList ( )
inline

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

戻り値
成功した場合は入力データ(Blob)のリストを、失敗した場合は null を返します。 @detail Ailia.ailiaGetInputBlobCount()で出力データ(Blob)の数をcountとして取得します。 Ailia.ailiaGetBlobIndexByInputIndex()でBlobのインデックスをidxとして取得し、リストを作成します。
1450  {
1451  if (ailia == IntPtr.Zero)
1452  {
1453  return null;
1454  }
1455 
1456  uint count = 0;
1457  int status = Status = Ailia.ailiaGetOutputBlobCount(ailia, ref count);
1458  if (status != Ailia.AILIA_STATUS_SUCCESS || count == 0)
1459  {
1460  return null;
1461  }
1462 
1463  uint[] r = new uint[count];
1464  for (uint i = 0; i < count; i++)
1465  {
1466  uint idx = 0;
1467  status = Status = Ailia.ailiaGetBlobIndexByOutputIndex(ailia, ref idx, i);
1468  if (status != Ailia.AILIA_STATUS_SUCCESS)
1469  {
1470  break;
1471  }
1472  r[i] = idx;
1473  }
1474  return r;
1475  }

◆ GetOutputShape()

Ailia.AILIAShape ailia.AiliaModel.GetOutputShape ( )
inline

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

戻り値
成功した場合は shape 、そうでなければ null を返す。

Ailia.ailiaGetOutputShape() で推論時の出力データの形状を取得します。 形状が5次元以上の場合は GetOutputShapeND() を利用してください。

949  {
950  if (ailia == IntPtr.Zero)
951  {
952  return null;
953  }
954  Ailia.AILIAShape shape = new Ailia.AILIAShape();
955  int status = Status = Ailia.ailiaGetOutputShape(ailia, shape, Ailia.AILIA_SHAPE_VERSION);
956  if (status != Ailia.AILIA_STATUS_SUCCESS)
957  {
958  if (logging)
959  {
960  Debug.Log("ailiaGetOutputShape failed " + status + " (" + GetStatusString(status) + ")");
961  }
962  return null;
963  }
964  return shape;
965  }

◆ GetOutputShapeND()

uint [] ailia.AiliaModel.GetOutputShapeND ( )
inline

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

戻り値
成功した場合は shape 、そうでなければ null を返す。

ailiaGetOutputDim() で推論時の出力データの次元を取得します。 Ailia.ailiaGetOutputShapeND() で推論時の出力データの形状を取得します。

985  {
986  uint dim = 0;
987  int status = Status = Ailia.ailiaGetOutputDim(ailia, ref dim);
988  if (status != Ailia.AILIA_STATUS_SUCCESS)
989  {
990  if (logging)
991  {
992  Debug.Log("ailiaGetOutputDim failed " + status + " (" + GetStatusString(status) + ")");
993  }
994  return null;
995  }
996  uint[] shape = new uint[dim];
997  status = Status = Ailia.ailiaGetOutputShapeND(ailia, shape, dim);
998  if (status != Ailia.AILIA_STATUS_SUCCESS)
999  {
1000  if (logging)
1001  {
1002  Debug.Log("ailiaGetOutputShapeND failed " + status + " (" + GetStatusString(status) + ")");
1003  }
1004  return null;
1005  }
1006  return shape;
1007  }

◆ GetSelectedEnvironment()

Ailia.AILIAEnvironment ailia.AiliaModel.GetSelectedEnvironment ( )
inline

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

戻り値
成功した場合は計算環境情報を、失敗した場合は null を返す。

選択された計算環境の詳細情報を取得します。

235  {
236  IntPtr env_ptr = IntPtr.Zero;
237  int status = Status = Ailia.ailiaGetSelectedEnvironment(ailia, ref env_ptr, Ailia.AILIA_ENVIRONMENT_VERSION);
238  if (status != Ailia.AILIA_STATUS_SUCCESS)
239  {
240  if (logging)
241  {
242  Debug.Log("ailiaGetSelectedEnvironment failed " + status + " (" + GetStatusString(status) + ")");
243  }
244  return null;
245  }
246  Ailia.AILIAEnvironment env = (Ailia.AILIAEnvironment)Marshal.PtrToStructure(env_ptr, typeof(Ailia.AILIAEnvironment));
247  return env;
248  }

◆ GetStatusString()

string ailia.AiliaModel.GetStatusString ( int  status)
inline

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

引数
statusステータスコード
戻り値
成功した場合はエラー詳細の文字列を返します。 @detail ステータスコードに対応するエラー詳細を文字列として返します。
1619  {
1620  return Marshal.PtrToStringAnsi(Ailia.ailiaGetStatusString(status));
1621  }

◆ GetSummary()

string ailia.AiliaModel.GetSummary ( )
inline

ネットワーク情報およびプロファイル結果を取得します。

戻り値
成功した場合はネットワーク情報およびプロファイル結果を示すASCII文字列を、失敗した場合は null を返します。 @detail ネットワーク情報およびプロファイル結果を含む文字列を取得します。
1706  {
1707  uint buffer_size = 0;
1708  int status = Status = Ailia.ailiaGetSummaryLength(ailia, ref buffer_size);
1709  if (status != Ailia.AILIA_STATUS_SUCCESS)
1710  {
1711  if (logging)
1712  {
1713  Debug.Log("ailiaGetSummaryLength failed " + status + " (" + GetStatusString(status) + ")");
1714  }
1715  return null;
1716  }
1717  byte[] buffer = new byte[buffer_size];
1718  status = Status = Ailia.ailiaSummary(ailia, buffer, buffer_size);
1719  if (status != Ailia.AILIA_STATUS_SUCCESS)
1720  {
1721  if (logging)
1722  {
1723  Debug.Log("ailiaSummary failed " + status + " (" + GetStatusString(status) + ")");
1724  }
1725  return null;
1726  }
1727  return System.Text.Encoding.ASCII.GetString(buffer);
1728  }

◆ OpenEx()

virtual bool ailia.AiliaModel.OpenEx ( Ailia.ailiaFileCallback  callback,
IntPtr  arg1,
IntPtr  arg2 
)
inlinevirtual

ファイルコールバックからネットワークオブジェクトを作成します。

引数
callbackユーザ定義ファイルアクセスコールバック関数構造体
arg1AILIA_USER_API_FOPEN に通知される引数ポインタ
arg2AILIA_USER_API_FOPEN に通知される引数ポインタ
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。 @detail  ファイルコールバックからネットワークオブジェクトを作成します。

ailia.AiliaPoseEstimatorModel, ailia.AiliaFeatureExtractorModel, ailia.AiliaDetectorModel, ailia.AiliaClassifierModelで再実装されています。

621  {
622  Close();
623 
624  int status = Status = Ailia.ailiaCreate(ref ailia, env_id, Ailia.AILIA_MULTITHREAD_AUTO);
625  if (status != Ailia.AILIA_STATUS_SUCCESS)
626  {
627  DisplayLicenseError(status);
628  if (logging)
629  {
630  Debug.Log("ailiaCreate failed " + status + " (" + GetStatusString(status) + ")");
631  }
632  return false;
633  }
634 
635  if (memory_mode != Ailia.AILIA_MEMORY_OPTIMAIZE_DEFAULT)
636  {
637  status = Status = Ailia.ailiaSetMemoryMode(ailia, memory_mode);
638  if (status != Ailia.AILIA_STATUS_SUCCESS)
639  {
640  if (logging)
641  {
642  Debug.Log("ailiaSetMemoryMode failed " + status + " (" + GetStatusString(status) + ")");
643  }
644  Close();
645  return false;
646  }
647  }
648  if (disalbe_layer_fusion)
649  {
650  status = Status = Ailia.ailiaDisableLayerFusion(ailia);
651  if (status != Ailia.AILIA_STATUS_SUCCESS)
652  {
653  if (logging)
654  {
655  Debug.Log("ailiaDisableLayerFusion failed " + status + " (" + GetStatusString(status) + ")");
656  }
657  Close();
658  return false;
659  }
660  }
661 
662  if (arg1 != null)
663  {
664  status = Status = Ailia.ailiaOpenStreamEx(ailia, arg1, callback, Ailia.AILIA_FILE_CALLBACK_VERSION);
665  if (status != Ailia.AILIA_STATUS_SUCCESS)
666  {
667  if (logging)
668  {
669  Debug.Log("ailiaOpenStreamFileEx failed " + status + " (" + GetStatusString(status) + ")");
670  }
671  Close();
672  return false;
673  }
674  }
675 
676  status = Status = Ailia.ailiaOpenWeightEx(ailia, arg2, callback, Ailia.AILIA_FILE_CALLBACK_VERSION);
677  if (status != Ailia.AILIA_STATUS_SUCCESS)
678  {
679  if (logging)
680  {
681  Debug.Log("ailiaOpenWeightFileEx failed " + status + " (" + GetStatusString(status) + ")");
682  }
683  Close();
684  return false;
685  }
686 
687  return true;
688  }

◆ OpenFile()

virtual bool ailia.AiliaModel.OpenFile ( string  prototxt_path,
string  model_path 
)
inlinevirtual

モデルファイルからネットワークオブジェクトを作成します。

引数
prototxt_path prototxtファイルのパス名(MBSC or UTF16)
model_pathprotobuf/onnxファイルのパス名(MBSC or UTF16)
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。 @detail モデルファイルからネットワークオブジェクトを作成します。

ailia.AiliaPoseEstimatorModel, ailia.AiliaFeatureExtractorModel, ailia.AiliaDetectorModel, ailia.AiliaClassifierModelで再実装されています。

423  {
424  Close();
425 
426  int status = Status = Ailia.ailiaCreate(ref ailia, env_id, Ailia.AILIA_MULTITHREAD_AUTO);
427  if (status != Ailia.AILIA_STATUS_SUCCESS)
428  {
429  DisplayLicenseError(status);
430  if (logging)
431  {
432  Debug.Log("ailiaCreate failed " + status + " (" + GetStatusString(status) + ")");
433  }
434  return false;
435  }
436 
437  if (memory_mode != Ailia.AILIA_MEMORY_OPTIMAIZE_DEFAULT)
438  {
439  status = Status = Ailia.ailiaSetMemoryMode(ailia, memory_mode);
440  if (status != Ailia.AILIA_STATUS_SUCCESS)
441  {
442  if (logging)
443  {
444  Debug.Log("ailiaSetMemoryMode failed " + status + " (" + GetStatusString(status) + ")");
445  }
446  Close();
447  return false;
448  }
449  }
450  if (disalbe_layer_fusion)
451  {
452  status = Status = Ailia.ailiaDisableLayerFusion(ailia);
453  if (status != Ailia.AILIA_STATUS_SUCCESS)
454  {
455  if (logging)
456  {
457  Debug.Log("ailiaDisableLayerFusion failed " + status + " (" + GetStatusString(status) + ")");
458  }
459  Close();
460  return false;
461  }
462  }
463 
464  if (prototxt_path != null)
465  {
466  status = Status = Ailia.ailiaOpenStreamFile(ailia, prototxt_path);
467  if (status != Ailia.AILIA_STATUS_SUCCESS)
468  {
469  if (logging)
470  {
471  Debug.Log("ailiaOpenStreamFile failed " + status + " (" + GetStatusString(status) + ")");
472  }
473  Close();
474  return false;
475  }
476  }
477 
478  status = Status = Ailia.ailiaOpenWeightFile(ailia, model_path);
479  if (status != Ailia.AILIA_STATUS_SUCCESS)
480  {
481  if (logging)
482  {
483  Debug.Log("ailiaOpenWeightFile failed " + status + " (" + GetStatusString(status) + ")");
484  }
485  Close();
486  return false;
487  }
488 
489  return true;
490  }

◆ OpenMem()

virtual bool ailia.AiliaModel.OpenMem ( byte[]  prototxt_buf,
byte[]  model_buf 
)
inlinevirtual

メモリからネットワークオブジェクトを作成します。

引数
prototxt_bufprototxtファイルのデータへのポインタ
model_bufprotobuf/onnxファイルのデータへのポインタ
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。 @detail メモリからネットワークオブジェクトを作成します。

ailia.AiliaPoseEstimatorModel, ailia.AiliaFeatureExtractorModel, ailia.AiliaDetectorModel, ailia.AiliaClassifierModelで再実装されています。

516  {
517  Close();
518 
519  if (model_buf == null || model_buf.Length == 0 || (prototxt_buf != null && prototxt_buf.Length == 0))
520  {
521  if (logging)
522  {
523  Debug.Log("input buffer is empty");
524  }
525  return false;
526  }
527 
528  int status = Status = Ailia.ailiaCreate(ref ailia, env_id, Ailia.AILIA_MULTITHREAD_AUTO);
529  if (status != Ailia.AILIA_STATUS_SUCCESS)
530  {
531  DisplayLicenseError(status);
532  if (logging)
533  {
534  Debug.Log("ailiaCreate failed " + status + " (" + GetStatusString(status) + ")");
535  }
536  return false;
537  }
538 
539  if (memory_mode != Ailia.AILIA_MEMORY_OPTIMAIZE_DEFAULT)
540  {
541  status = Status = Ailia.ailiaSetMemoryMode(ailia, memory_mode);
542  if (status != Ailia.AILIA_STATUS_SUCCESS)
543  {
544  if (logging)
545  {
546  Debug.Log("ailiaSetMemoryMode failed " + status + " (" + GetStatusString(status) + ")");
547  }
548  Close();
549  return false;
550  }
551  }
552  if (disalbe_layer_fusion)
553  {
554  status = Status = Ailia.ailiaDisableLayerFusion(ailia);
555  if (status != Ailia.AILIA_STATUS_SUCCESS)
556  {
557  if (logging)
558  {
559  Debug.Log("ailiaDisableLayerFusion failed " + status + " (" + GetStatusString(status) + ")");
560  }
561  Close();
562  return false;
563  }
564  }
565 
566  if (prototxt_buf != null)
567  {
568  status = Status = Ailia.ailiaOpenStreamMem(ailia, prototxt_buf, (uint)prototxt_buf.Length);
569  if (status != Ailia.AILIA_STATUS_SUCCESS)
570  {
571  if (logging)
572  {
573  Debug.Log("ailiaOpenStreamMem failed " + status + " (" + GetStatusString(status) + ")");
574  }
575  Close();
576  return false;
577  }
578  }
579 
580  status = Status = Ailia.ailiaOpenWeightMem(ailia, model_buf, (uint)model_buf.Length);
581  if (status != Ailia.AILIA_STATUS_SUCCESS)
582  {
583  if (logging)
584  {
585  Debug.Log("ailiaOpenWeightMem filed " + status + " (" + GetStatusString(status) + ")");
586  }
587  Close();
588  return false;
589  }
590 
591  return true;
592  }

◆ Predict()

bool ailia.AiliaModel.Predict ( float[]  output_data,
float[]  input_data 
)
inline

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

引数
output_data出力データの書き出し先
input_data推論データ
戻り値
成功した場合はtrue、失敗した場合はfalseを返す。 @detail input_dataを入力としてAilia.ailiaPredict()で推論を行い、output_dataに出力します。 このAPIは1入力1出力のモデルで使用可能です。 多入出力のモデルを推論する場合は、SetInputBlobData、Update、GetBlobData APIを使用してください。
719  {
720  if (ailia == IntPtr.Zero)
721  {
722  return false;
723  }
724 
725  //バッファの固定
726  GCHandle input_buf_handle = GCHandle.Alloc(input_data, GCHandleType.Pinned);
727  IntPtr input_buf_ptr = input_buf_handle.AddrOfPinnedObject();
728 
729  GCHandle output_buf_handle = GCHandle.Alloc(output_data, GCHandleType.Pinned);
730  IntPtr output_buf_ptr = output_buf_handle.AddrOfPinnedObject();
731 
732  //推論
733  int status = Status = Ailia.ailiaPredict(ailia, output_buf_ptr, (uint)(output_data.Length * 4), input_buf_ptr, (uint)(input_data.Length * 4));
734 
735  //バッファの開放
736  input_buf_handle.Free();
737  output_buf_handle.Free();
738 
739  if (status != Ailia.AILIA_STATUS_SUCCESS)
740  {
741  if (logging)
742  {
743  Debug.Log("ailiaPredict failed " + status + " (" + GetStatusString(status) + ")");
744  }
745  return false;
746  }
747  return true;
748  }

◆ SelectEnvironment()

bool ailia.AiliaModel.SelectEnvironment ( int  idx)
inline

計算環境を選択します。

引数
idx環境情報のインデックス (0~ ailiaGetEnvironmentCount() -1)
戻り値
成功した場合は true 、失敗した場合は false を返す。

指定したインデックスの計算環境を推論環境として選択します。

注釈
Open系API呼び出し後の呼び出しは無効です(falseを返却します)
203  {
204  Ailia.AILIAEnvironment env = GetEnvironment(idx);
205  if (env == null)
206  {
207  return false;
208  }
209  if (ailia != IntPtr.Zero)
210  {
211  Debug.Assert(false, "Ailia instance is already initialized.");
212  return false;
213  }
214  env_id = env.id;
215  env_name = Marshal.PtrToStringAnsi(env.name);
216  return true;
217  }

◆ SetInputBlobData() [1/2]

public bool ailia.AiliaModel.SetInputBlobData ( float[]  input_data,
int  idx 
)
inline

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

1255  {
1256  if (ailia == IntPtr.Zero || idx < 0)
1257  {
1258  return false;
1259  }
1260  return SetInputBlobData(input_data, (uint)idx);
1261  }
bool SetInputBlobData(float[] input_data, uint idx)
指定したBlobに入力データを設定します。
Definition: AiliaModel.cs:1224

◆ SetInputBlobData() [2/2]

bool ailia.AiliaModel.SetInputBlobData ( float[]  input_data,
uint  idx 
)
inline

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

引数
input_data推論データ X,Y,Z,Wの順でnumeric型で格納 サイズはネットファイルのinputSizeとなる (バッファの確保してるので厳密にailia.csの説明と同じでいいかわからない)
idx設定を変更するBlobのインデックス
戻り値
成功した場合は true を、失敗した場合は false を返す。

Ailia.ailiaSetInPutBlobData() で指定したBlobに入力データを与えます。

1225  {
1226  if (ailia == IntPtr.Zero)
1227  {
1228  return false;
1229  }
1230 
1231  GCHandle input_buf_handle = GCHandle.Alloc(input_data, GCHandleType.Pinned);
1232  IntPtr input_buf_ptr = input_buf_handle.AddrOfPinnedObject();
1233  int status = Status = Ailia.ailiaSetInputBlobData(ailia, input_buf_ptr, (uint)(input_data.Length * 4), idx);
1234  input_buf_handle.Free();
1235 
1236  if (status != Ailia.AILIA_STATUS_SUCCESS)
1237  {
1238  if (logging)
1239  {
1240  Debug.Log("ailiaSetInputBlobData failed " + status + " (" + GetStatusString(status) + ")");
1241  }
1242  return false;
1243  }
1244  return true;
1245  }

◆ SetInputBlobShape() [1/2]

public bool ailia.AiliaModel.SetInputBlobShape ( Ailia.AILIAShape  shape,
int  idx 
)
inline

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

1317  {
1318  if (idx < 0)
1319  {
1320  return false;
1321  }
1322  return SetInputBlobShape(shape, (uint)idx);
1323  }
bool SetInputBlobShape(Ailia.AILIAShape shape, uint idx)
指定した入力データ(Blob)の形式を設定します。(4次元以下)
Definition: AiliaModel.cs:1290

◆ SetInputBlobShape() [2/2]

bool ailia.AiliaModel.SetInputBlobShape ( Ailia.AILIAShape  shape,
uint  idx 
)
inline

指定した入力データ(Blob)の形式を設定します。(4次元以下)

引数
shape入力データの形状情報
idx変更するBlobのインデックス
戻り値
成功した場合は true を、失敗した場合は false を返す。 @detail 複数入力があるネットワークなどで入力形状を変更する場合に用います。 Ailia.ailiaSetInputBlobShape() で指定した入力データ(Blob)の形式を変更します。 入力形状のランクが5次元以上の場合は、SetInputShapeND() を利用してください。
1291  {
1292  if (ailia == IntPtr.Zero)
1293  {
1294  return false;
1295  }
1296 
1297  int status = Status = Ailia.ailiaSetInputBlobShape(ailia, shape, idx, Ailia.AILIA_SHAPE_VERSION);
1298  if (status != Ailia.AILIA_STATUS_SUCCESS)
1299  {
1300  if (logging)
1301  {
1302  Debug.Log("ailiaSetInputBlobShape failed " + status + " (" + GetStatusString(status) + ")");
1303  }
1304  return false;
1305  }
1306  return true;
1307  }

◆ SetInputBlobShapeND() [1/2]

public bool ailia.AiliaModel.SetInputBlobShapeND ( uint[]  shape,
int  dim,
int  idx 
)
inline

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

1375  {
1376  if (idx < 0 || dim < 0)
1377  {
1378  return false;
1379  }
1380  return SetInputBlobShapeND(shape, (uint)dim, (uint)idx);
1381  }
bool SetInputBlobShapeND(uint[] shape, uint dim, uint idx)
入力データ(Blob)の形式を設定します。(5次元以上)
Definition: AiliaModel.cs:1348

◆ SetInputBlobShapeND() [2/2]

bool ailia.AiliaModel.SetInputBlobShapeND ( uint[]  shape,
uint  dim,
uint  idx 
)
inline

入力データ(Blob)の形式を設定します。(5次元以上)

引数
shape入力データの形状情報
dimshape の次元
idx変更するBlobのインデックス
戻り値
成功した場合は true を、失敗した場合は false を返す。 @detail 複数入力があるネットワークなどで入力形状を変更する場合に用います。 Ailia.ailiaSetInputBlobShapeND() で指定した入力データ(Blob)の形式を変更します。
1349  {
1350  if (ailia == IntPtr.Zero)
1351  {
1352  return false;
1353  }
1354 
1355  int status = Status = Ailia.ailiaSetInputBlobShapeND(ailia, shape, dim, idx);
1356  if (status != Ailia.AILIA_STATUS_SUCCESS)
1357  {
1358  if (logging)
1359  {
1360  Debug.Log("ailiaSetInputBlobShapeND failed " + status + " (" + GetStatusString(status) + ")");
1361  }
1362  return false;
1363  }
1364  return true;
1365  }

◆ SetInputShape()

bool ailia.AiliaModel.SetInputShape ( Ailia.AILIAShape  shape)
inline

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

引数
shape入力データの形状情報
戻り値
成功した場合は true 、失敗した場合は false を返す。 @detail prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。 prototxtで定義されているランクが5次元以上の場合は SetInputShapeND() を利用してください。
868  {
869  if (ailia == IntPtr.Zero)
870  {
871  return false;
872  }
873 
874  int status = Status = Ailia.ailiaSetInputShape(ailia, shape, Ailia.AILIA_SHAPE_VERSION);
875  if (status != Ailia.AILIA_STATUS_SUCCESS)
876  {
877  if (logging)
878  {
879  Debug.Log("ailiaSetInputShape failed " + status + " (" + GetStatusString(status) + ")");
880  }
881  return false;
882  }
883  return true;
884  }

◆ SetInputShapeND()

bool ailia.AiliaModel.SetInputShapeND ( uint[]  shape,
int  dim 
)
inline

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

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

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

912  {
913  if (ailia == IntPtr.Zero || dim < 0)
914  {
915  return false;
916  }
917 
918  int status = Status = Ailia.ailiaSetInputShapeND(ailia, shape, (uint)dim);
919  if (status != Ailia.AILIA_STATUS_SUCCESS)
920  {
921  if (logging)
922  {
923  Debug.Log("ailiaSetInputShapeND failed " + status + " (" + GetStatusString(status) + ")");
924  }
925  return false;
926  }
927  return true;
928  }

◆ SetMemoryMode()

bool ailia.AiliaModel.SetMemoryMode ( uint  set_memory_mode)
inline

メモリモードを設定します

引数
set_memory_modeメモリモード(論理和で複数指定可) AILIA_MEMORY_XXX (デフォルト: AILIA_MEMORY_REDUCE_CONSTANT )
戻り値
成功した場合は true 、失敗した場合は false を返す。

メモリの使用方針の設定を変更します。 AILIA_MEMORY_NO_OPTIMIZATION 以外を指定した場合は、 推論時に確保する中間バッファーを開放するため、推論時のメモリ使用量を削減することができます。

注釈
Open系API呼び出し後の呼び出しは無効です(falseを返却します)
359  {
360  if (ailia != IntPtr.Zero)
361  {
362  Debug.Assert(false, "Ailia instance is already initialized.");
363  return false;
364  }
365  memory_mode = set_memory_mode;
366  return true;
367  }

◆ SetProfileMode()

bool ailia.AiliaModel.SetProfileMode ( uint  profile_mode)
inline

プロファイルモードを有効にします。

戻り値
成功した場合は true 、失敗した場合は false を返します。 @detail プロファイルモードを有効にします。プロファイルモードを有効にして推論後、Summary APIでプロファイル結果を取得します。
1675  {
1676  int status = Status = Ailia.ailiaSetProfileMode(ailia, profile_mode);
1677  if (status != Ailia.AILIA_STATUS_SUCCESS)
1678  {
1679  if (logging)
1680  {
1681  Debug.Log("ailiaSetProfileMode failed " + status + " (" + GetStatusString(status) + ")");
1682  }
1683  return false;
1684  }
1685  return true;
1686  }

◆ Update()

bool ailia.AiliaModel.Update ( )
inline

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

戻り値
成功した場合は true 、失敗した場合は false を返します。 @detail SetInputBlobData() を用いて入力を与えた場合などに用います。 推論結果は GetBlobData() で取得してください。
1534  {
1535  if (ailia == IntPtr.Zero)
1536  {
1537  return false;
1538  }
1539  int status = Status = Ailia.ailiaUpdate(ailia);
1540  if (status != Ailia.AILIA_STATUS_SUCCESS)
1541  {
1542  if (logging)
1543  {
1544  Debug.Log("ailiaUpdate failed " + status + " (" + GetStatusString(status) + ")");
1545  }
1546  return false;
1547  }
1548  return true;
1549  }

メンバ詳解

◆ ailia

IntPtr ailia.AiliaModel.ailia = IntPtr.Zero
protected

◆ logging

bool ailia.AiliaModel.logging = true
protected

プロパティ詳解

◆ Status

int ailia.AiliaModel.Status
getprotected set

ステータスコード @detail ライブラリのステータスコードを取得します。

1656 { get; protected set; }

このクラス詳解は次のファイルから抽出されました: