ailia  1.4.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 ()
 選択された計算環境を取得します。 [詳解]
 
void SetMemoryMode (uint set_memory_mode)
 メモリモードを設定します [詳解]
 
void 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で再実装されています。

1535  {
1536  if (ailia != IntPtr.Zero)
1537  {
1538  Ailia.ailiaDestroy(ailia);
1539  ailia = IntPtr.Zero;
1540  }
1541  }
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 を返します。
1465  {
1466  IntPtr src_ailia = ailia;
1467  if (src_model != null) src_ailia = src_model.ailia;
1468  if (ailia == IntPtr.Zero || src_ailia == IntPtr.Zero) return false;
1469 
1470  int status = Status = Ailia.ailiaCopyBlobData(ailia, dst_blob_idx, src_ailia, src_blob_idx);
1471  if (status != Ailia.AILIA_STATUS_SUCCESS)
1472  {
1473  if (logging)
1474  {
1475  Debug.Log("ailiaUpdate failed " + status + " (" + GetStatusString(status) + ")");
1476  }
1477  return false;
1478  }
1479  return true;
1480  }
IntPtr ailia
Definition: AiliaModel.cs:25
string GetStatusString(int status)
ステータスコードに対応する文字列を返します。
Definition: AiliaModel.cs:1587
int Status
ステータスコード @detail ライブラリのステータスコードを取得します。
Definition: AiliaModel.cs:1625
bool logging
Definition: AiliaModel.cs:33

◆ DisableLayerFusion()

void ailia.AiliaModel.DisableLayerFusion ( )
inline

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

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

358  {
359  disalbe_layer_fusion = true;
360  }

◆ Dispose() [1/2]

virtual void ailia.AiliaModel.Dispose ( )
inlinevirtual

リソースを解放します。

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

1551  {
1552  Dispose(true);
1553  }
virtual void Dispose()
リソースを解放します。
Definition: AiliaModel.cs:1550

◆ Dispose() [2/2]

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

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

1556  {
1557  if (disposing){
1558  // release managed resource
1559  }
1560  Close(); // release unmanaged resource
1561  }
virtual void Close()
ネットワークオブジェクトを破棄します。
Definition: AiliaModel.cs:1534

◆ Environment()

bool ailia.AiliaModel.Environment ( int  type)
inline

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

環境選択(簡易)

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

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

57  {
58  int count = GetEnvironmentCount();
59  if (count == -1)
60  {
61  return false;
62  }
63 
64  for (int i = 0; i < count; i++)
65  {
66  Ailia.AILIAEnvironment env = GetEnvironment(i);
67  if (env == null)
68  {
69  return false;
70  }
71 
72  if (env.type == type)
73  {
74  if (!SelectEnvironment(i))
75  {
76  return false;
77  }
78  if (env.backend == Ailia.AILIA_ENVIRONMENT_BACKEND_CUDA || env.backend == Ailia.AILIA_ENVIRONMENT_BACKEND_VULKAN)
79  {
80  return true; //優先
81  }
82  }
83  }
84  return true;
85  }
Ailia.AILIAEnvironment GetEnvironment(int idx)
指定したインデックスの計算環境を取得します。
Definition: AiliaModel.cs:157
bool SelectEnvironment(int idx)
計算環境を選択します。
Definition: AiliaModel.cs:194
int GetEnvironmentCount()
利用可能な計算環境(CPU, GPU)の数を取得します。
Definition: AiliaModel.cs:124

◆ EnvironmentName()

string ailia.AiliaModel.EnvironmentName ( )
inline

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

戻り値
選択された環境名

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

103  {
104  return env_name;
105  }

◆ FindBlobIndexByName()

int ailia.AiliaModel.FindBlobIndexByName ( string  name)
inline

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

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

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

1046  {
1047  uint idx = 0;
1048  int status = Status = Ailia.ailiaFindBlobIndexByName(ailia, ref idx, name);
1049  if (status != Ailia.AILIA_STATUS_SUCCESS)
1050  {
1051  if (logging)
1052  {
1053  Debug.Log("FindBlobIndexByName failed " + status + " (" + GetStatusString(status) + ")");
1054  }
1055  return -1;
1056  }
1057  return (int)idx;
1058  }

◆ GetBlobData() [1/2]

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

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

1166  {
1167  if (idx < 0)
1168  {
1169  return false;
1170  }
1171  return GetBlobData(output_data, (uint)idx);
1172  }
bool GetBlobData(float[] output_data, uint idx)
推論時の内部データ(Blob)を取得します。
Definition: AiliaModel.cs:1135

◆ 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)を取得します。 推論を一度も実行していない場合は失敗します。

1136  {
1137  if (ailia == IntPtr.Zero)
1138  {
1139  return false;
1140  }
1141 
1142  GCHandle output_buf_handle = GCHandle.Alloc(output_data, GCHandleType.Pinned);
1143  IntPtr output_buf_ptr = output_buf_handle.AddrOfPinnedObject();
1144  int status = Status = Ailia.ailiaGetBlobData(ailia, output_buf_ptr, (uint)(output_data.Length * 4), idx);
1145  output_buf_handle.Free();
1146 
1147  if (status != Ailia.AILIA_STATUS_SUCCESS)
1148  {
1149  if (logging)
1150  {
1151  Debug.Log("ailiaGetBlobData failed " + status + " (" + GetStatusString(status) + ")");
1152  }
1153  return false;
1154  }
1155  return true;
1156  }

◆ GetBlobShape() [1/3]

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

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

1106  {
1107  if (idx < 0)
1108  {
1109  return null;
1110  }
1111  return GetBlobShape((uint)idx);
1112  }
Ailia.AILIAShape GetBlobShape(string layer_name)
推論時の内部データ(Blob)の形状(レイヤー形式)を取得します。(Obsolete)
Definition: AiliaModel.cs:999

◆ 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 に格納します。

1000  {
1001  if (ailia == IntPtr.Zero)
1002  {
1003  return null;
1004  }
1005  Ailia.AILIAShape shape = new Ailia.AILIAShape();
1006  uint id = 0;
1007  int status = Status = Ailia.ailiaFindBlobIndexByName(ailia, ref id, layer_name);
1008  if (status != Ailia.AILIA_STATUS_SUCCESS)
1009  {
1010  if (logging)
1011  {
1012  Debug.Log("ailiaFindBlobIndexByName failed " + status + " (" + GetStatusString(status) + ")");
1013  }
1014  return null;
1015  }
1016  status = Status = Ailia.ailiaGetBlobShape(ailia, shape, id, Ailia.AILIA_SHAPE_VERSION);
1017  if (status != Ailia.AILIA_STATUS_SUCCESS)
1018  {
1019  if (logging)
1020  {
1021  Debug.Log("ailiaGetBlobShape failed " + status + " (" + GetStatusString(status) + ")");
1022  }
1023  return null;
1024  }
1025  return shape;
1026  }

◆ GetBlobShape() [3/3]

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

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

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

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

1079  {
1080  if (ailia == IntPtr.Zero)
1081  {
1082  return null;
1083  }
1084 
1085  Ailia.AILIAShape shape = new Ailia.AILIAShape();
1086  int status = Status = Ailia.ailiaGetBlobShape(ailia, shape, idx, Ailia.AILIA_SHAPE_VERSION);
1087  if (status != Ailia.AILIA_STATUS_SUCCESS)
1088  {
1089  if (logging)
1090  {
1091  Debug.Log("ailiaGetBlobShape failed " + status + " (" + GetStatusString(status) + ")");
1092  }
1093  return null;
1094  }
1095  return shape;
1096  }

◆ GetEnvironment()

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

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

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

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

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

◆ GetEnvironmentCount()

int ailia.AiliaModel.GetEnvironmentCount ( )
inline

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

環境選択(詳細)

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

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

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

◆ GetErrorDetail()

string ailia.AiliaModel.GetErrorDetail ( )
inline

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

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

◆ GetInputBlobList()

uint [] ailia.AiliaModel.GetInputBlobList ( )
inline

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

戻り値
成功した場合は入力データ(Blob)のリストを、失敗した場合は null を返します。 @detail Ailia.ailiaGetInputBlobCount()で入力データ(Blob)の数をcountとして取得します。 Ailia.ailiaGetBlobIndexByInputIndex()でBlobのインデックスをidxとして取得し、リストを作成します。
1373  {
1374  if (ailia == IntPtr.Zero)
1375  {
1376  return null;
1377  }
1378 
1379  uint count = 0;
1380  int status = Status = Ailia.ailiaGetInputBlobCount(ailia, ref count);
1381  if (status != Ailia.AILIA_STATUS_SUCCESS || count == 0)
1382  {
1383  return null;
1384  }
1385 
1386  uint[] r = new uint[count];
1387  for (uint i = 0; i < count; i++)
1388  {
1389  uint idx = 0;
1390  status = Status = Ailia.ailiaGetBlobIndexByInputIndex(ailia, ref idx, i);
1391  if (status != Ailia.AILIA_STATUS_SUCCESS)
1392  {
1393  break;
1394  }
1395  r[i] = idx;
1396  }
1397 
1398  return r;
1399  }

◆ 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.
746  {
747  Ailia.AILIAShape shape = new Ailia.AILIAShape();
748  int status = Status = Ailia.ailiaGetInputShape(ailia, shape, Ailia.AILIA_SHAPE_VERSION);
749  if (status != Ailia.AILIA_STATUS_SUCCESS)
750  {
751  if (logging)
752  {
753  Debug.Log("ailiaGetInputShape failed " + status + " (" + GetStatusString(status) + ")");
754  }
755  return null;
756  }
757  return shape;
758  }

◆ GetInputShapeND()

uint [] ailia.AiliaModel.GetInputShapeND ( )
inline

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

戻り値
成功した場合、入力データの各次元の大きさが格納された配列 shape それ以外の場合はnullを返す。 @detail AILIA.ailiaGetInputDim() を用いて、推論時の入力データの次元を取得します。 AILIA.ailiaGetInputShapeND() を用いて、推論時の入力データの形状を取得します。 形状が5次元以上の場合は GetInputShapeND() を利用してください。 形状の一部が未確定の場合、該当する次元の値は0となり、それ以外の次元の値は有効な値が shape に格納されます。 失敗した場合には、それに応じたエラーメッセージが表示されます。
785  {
786  uint dim = 0;
787  int status = Status = Ailia.ailiaGetInputDim(ailia, ref dim);
788  if (status != Ailia.AILIA_STATUS_SUCCESS)
789  {
790  if (logging)
791  {
792  Debug.Log("ailiaGetInputDim failed " + status + " (" + GetStatusString(status) + ")");
793  }
794  return null;
795  }
796  uint[] shape = new uint[dim];
797  status = Status = Ailia.ailiaGetInputShapeND(ailia, shape, dim);
798  if (status != Ailia.AILIA_STATUS_SUCCESS)
799  {
800  if (logging)
801  {
802  Debug.Log("ailiaGetInputShapeND failed " + status + " (" + GetStatusString(status) + ")");
803  }
804  return null;
805  }
806  return shape;
807  }

◆ GetOutputBlobList()

uint [] ailia.AiliaModel.GetOutputBlobList ( )
inline

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

戻り値
成功した場合は入力データ(Blob)のリストを、失敗した場合は null を返します。 @detail Ailia.ailiaGetInputBlobCount()で出力データ(Blob)の数をcountとして取得します。 Ailia.ailiaGetBlobIndexByInputIndex()でBlobのインデックスをidxとして取得し、リストを作成します。
1419  {
1420  if (ailia == IntPtr.Zero)
1421  {
1422  return null;
1423  }
1424 
1425  uint count = 0;
1426  int status = Status = Ailia.ailiaGetOutputBlobCount(ailia, ref count);
1427  if (status != Ailia.AILIA_STATUS_SUCCESS || count == 0)
1428  {
1429  return null;
1430  }
1431 
1432  uint[] r = new uint[count];
1433  for (uint i = 0; i < count; i++)
1434  {
1435  uint idx = 0;
1436  status = Status = Ailia.ailiaGetBlobIndexByOutputIndex(ailia, ref idx, i);
1437  if (status != Ailia.AILIA_STATUS_SUCCESS)
1438  {
1439  break;
1440  }
1441  r[i] = idx;
1442  }
1443  return r;
1444  }

◆ GetOutputShape()

Ailia.AILIAShape ailia.AiliaModel.GetOutputShape ( )
inline

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

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

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

918  {
919  if (ailia == IntPtr.Zero)
920  {
921  return null;
922  }
923  Ailia.AILIAShape shape = new Ailia.AILIAShape();
924  int status = Status = Ailia.ailiaGetOutputShape(ailia, shape, Ailia.AILIA_SHAPE_VERSION);
925  if (status != Ailia.AILIA_STATUS_SUCCESS)
926  {
927  if (logging)
928  {
929  Debug.Log("ailiaGetOutputShape failed " + status + " (" + GetStatusString(status) + ")");
930  }
931  return null;
932  }
933  return shape;
934  }

◆ GetOutputShapeND()

uint [] ailia.AiliaModel.GetOutputShapeND ( )
inline

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

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

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

954  {
955  uint dim = 0;
956  int status = Status = Ailia.ailiaGetOutputDim(ailia, ref dim);
957  if (status != Ailia.AILIA_STATUS_SUCCESS)
958  {
959  if (logging)
960  {
961  Debug.Log("ailiaGetOutputDim failed " + status + " (" + GetStatusString(status) + ")");
962  }
963  return null;
964  }
965  uint[] shape = new uint[dim];
966  status = Status = Ailia.ailiaGetOutputShapeND(ailia, shape, dim);
967  if (status != Ailia.AILIA_STATUS_SUCCESS)
968  {
969  if (logging)
970  {
971  Debug.Log("ailiaGetOutputShapeND failed " + status + " (" + GetStatusString(status) + ")");
972  }
973  return null;
974  }
975  return shape;
976  }

◆ GetSelectedEnvironment()

Ailia.AILIAEnvironment ailia.AiliaModel.GetSelectedEnvironment ( )
inline

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

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

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

222  {
223  IntPtr env_ptr = IntPtr.Zero;
224  int status = Status = Ailia.ailiaGetSelectedEnvironment(ailia, ref env_ptr, Ailia.AILIA_ENVIRONMENT_VERSION);
225  if (status != Ailia.AILIA_STATUS_SUCCESS)
226  {
227  if (logging)
228  {
229  Debug.Log("ailiaGetSelectedEnvironment failed " + status + " (" + GetStatusString(status) + ")");
230  }
231  return null;
232  }
233  Ailia.AILIAEnvironment env = (Ailia.AILIAEnvironment)Marshal.PtrToStructure(env_ptr, typeof(Ailia.AILIAEnvironment));
234  return env;
235  }

◆ GetStatusString()

string ailia.AiliaModel.GetStatusString ( int  status)
inline

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

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

◆ GetSummary()

string ailia.AiliaModel.GetSummary ( )
inline

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

戻り値
成功した場合はネットワーク情報およびプロファイル結果を示すASCII文字列を、失敗した場合は null を返します。 @detail ネットワーク情報およびプロファイル結果を含む文字列を取得します。
1675  {
1676  uint buffer_size = 0;
1677  int status = Status = Ailia.ailiaGetSummaryLength(ailia, ref buffer_size);
1678  if (status != Ailia.AILIA_STATUS_SUCCESS)
1679  {
1680  if (logging)
1681  {
1682  Debug.Log("ailiaGetSummaryLength failed " + status + " (" + GetStatusString(status) + ")");
1683  }
1684  return null;
1685  }
1686  byte[] buffer = new byte[buffer_size];
1687  status = Status = Ailia.ailiaSummary(ailia, buffer, buffer_size);
1688  if (status != Ailia.AILIA_STATUS_SUCCESS)
1689  {
1690  if (logging)
1691  {
1692  Debug.Log("ailiaSummary failed " + status + " (" + GetStatusString(status) + ")");
1693  }
1694  return null;
1695  }
1696  return System.Text.Encoding.ASCII.GetString(buffer);
1697  }

◆ 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で再実装されています。

588  {
589  AiliaLicense.CheckAndDownloadLicense();
590 
591  Close();
592 
593  int status = Status = Ailia.ailiaCreate(ref ailia, env_id, Ailia.AILIA_MULTITHREAD_AUTO);
594  if (status != Ailia.AILIA_STATUS_SUCCESS)
595  {
596  DisplayLicenseError(status);
597  if (logging)
598  {
599  Debug.Log("ailiaCreate failed " + status + " (" + GetStatusString(status) + ")");
600  }
601  return false;
602  }
603 
604  if (memory_mode != Ailia.AILIA_MEMORY_OPTIMAIZE_DEFAULT)
605  {
606  status = Status = Ailia.ailiaSetMemoryMode(ailia, memory_mode);
607  if (status != Ailia.AILIA_STATUS_SUCCESS)
608  {
609  if (logging)
610  {
611  Debug.Log("ailiaSetMemoryMode failed " + status + " (" + GetStatusString(status) + ")");
612  }
613  Close();
614  return false;
615  }
616  }
617  if (disalbe_layer_fusion)
618  {
619  status = Status = Ailia.ailiaDisableLayerFusion(ailia);
620  if (status != Ailia.AILIA_STATUS_SUCCESS)
621  {
622  if (logging)
623  {
624  Debug.Log("ailiaDisableLayerFusion failed " + status + " (" + GetStatusString(status) + ")");
625  }
626  Close();
627  return false;
628  }
629  }
630 
631  if (arg1 != null)
632  {
633  status = Status = Ailia.ailiaOpenStreamEx(ailia, arg1, callback, Ailia.AILIA_FILE_CALLBACK_VERSION);
634  if (status != Ailia.AILIA_STATUS_SUCCESS)
635  {
636  if (logging)
637  {
638  Debug.Log("ailiaOpenStreamFileEx failed " + status + " (" + GetStatusString(status) + ")");
639  }
640  Close();
641  return false;
642  }
643  }
644 
645  status = Status = Ailia.ailiaOpenWeightEx(ailia, arg2, callback, Ailia.AILIA_FILE_CALLBACK_VERSION);
646  if (status != Ailia.AILIA_STATUS_SUCCESS)
647  {
648  if (logging)
649  {
650  Debug.Log("ailiaOpenWeightFileEx failed " + status + " (" + GetStatusString(status) + ")");
651  }
652  Close();
653  return false;
654  }
655 
656  return true;
657  }

◆ 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で再実装されています。

386  {
387  AiliaLicense.CheckAndDownloadLicense();
388 
389  Close();
390 
391  int status = Status = Ailia.ailiaCreate(ref ailia, env_id, Ailia.AILIA_MULTITHREAD_AUTO);
392  if (status != Ailia.AILIA_STATUS_SUCCESS)
393  {
394  DisplayLicenseError(status);
395  if (logging)
396  {
397  Debug.Log("ailiaCreate failed " + status + " (" + GetStatusString(status) + ")");
398  }
399  return false;
400  }
401 
402  if (memory_mode != Ailia.AILIA_MEMORY_OPTIMAIZE_DEFAULT)
403  {
404  status = Status = Ailia.ailiaSetMemoryMode(ailia, memory_mode);
405  if (status != Ailia.AILIA_STATUS_SUCCESS)
406  {
407  if (logging)
408  {
409  Debug.Log("ailiaSetMemoryMode failed " + status + " (" + GetStatusString(status) + ")");
410  }
411  Close();
412  return false;
413  }
414  }
415  if (disalbe_layer_fusion)
416  {
417  status = Status = Ailia.ailiaDisableLayerFusion(ailia);
418  if (status != Ailia.AILIA_STATUS_SUCCESS)
419  {
420  if (logging)
421  {
422  Debug.Log("ailiaDisableLayerFusion failed " + status + " (" + GetStatusString(status) + ")");
423  }
424  Close();
425  return false;
426  }
427  }
428 
429  if (prototxt_path != null)
430  {
431  status = Status = Ailia.ailiaOpenStreamFile(ailia, prototxt_path);
432  if (status != Ailia.AILIA_STATUS_SUCCESS)
433  {
434  if (logging)
435  {
436  Debug.Log("ailiaOpenStreamFile failed " + status + " (" + GetStatusString(status) + ")");
437  }
438  Close();
439  return false;
440  }
441  }
442 
443  status = Status = Ailia.ailiaOpenWeightFile(ailia, model_path);
444  if (status != Ailia.AILIA_STATUS_SUCCESS)
445  {
446  if (logging)
447  {
448  Debug.Log("ailiaOpenWeightFile failed " + status + " (" + GetStatusString(status) + ")");
449  }
450  Close();
451  return false;
452  }
453 
454  return true;
455  }

◆ 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で再実装されています。

481  {
482  AiliaLicense.CheckAndDownloadLicense();
483 
484  Close();
485 
486  if (model_buf == null || model_buf.Length == 0 || (prototxt_buf != null && prototxt_buf.Length == 0))
487  {
488  if (logging)
489  {
490  Debug.Log("input buffer is empty");
491  }
492  return false;
493  }
494 
495  int status = Status = Ailia.ailiaCreate(ref ailia, env_id, Ailia.AILIA_MULTITHREAD_AUTO);
496  if (status != Ailia.AILIA_STATUS_SUCCESS)
497  {
498  DisplayLicenseError(status);
499  if (logging)
500  {
501  Debug.Log("ailiaCreate failed " + status + " (" + GetStatusString(status) + ")");
502  }
503  return false;
504  }
505 
506  if (memory_mode != Ailia.AILIA_MEMORY_OPTIMAIZE_DEFAULT)
507  {
508  status = Status = Ailia.ailiaSetMemoryMode(ailia, memory_mode);
509  if (status != Ailia.AILIA_STATUS_SUCCESS)
510  {
511  if (logging)
512  {
513  Debug.Log("ailiaSetMemoryMode failed " + status + " (" + GetStatusString(status) + ")");
514  }
515  Close();
516  return false;
517  }
518  }
519  if (disalbe_layer_fusion)
520  {
521  status = Status = Ailia.ailiaDisableLayerFusion(ailia);
522  if (status != Ailia.AILIA_STATUS_SUCCESS)
523  {
524  if (logging)
525  {
526  Debug.Log("ailiaDisableLayerFusion failed " + status + " (" + GetStatusString(status) + ")");
527  }
528  Close();
529  return false;
530  }
531  }
532 
533  if (prototxt_buf != null)
534  {
535  status = Status = Ailia.ailiaOpenStreamMem(ailia, prototxt_buf, (uint)prototxt_buf.Length);
536  if (status != Ailia.AILIA_STATUS_SUCCESS)
537  {
538  if (logging)
539  {
540  Debug.Log("ailiaOpenStreamMem failed " + status + " (" + GetStatusString(status) + ")");
541  }
542  Close();
543  return false;
544  }
545  }
546 
547  status = Status = Ailia.ailiaOpenWeightMem(ailia, model_buf, (uint)model_buf.Length);
548  if (status != Ailia.AILIA_STATUS_SUCCESS)
549  {
550  if (logging)
551  {
552  Debug.Log("ailiaOpenWeightMem filed " + status + " (" + GetStatusString(status) + ")");
553  }
554  Close();
555  return false;
556  }
557 
558  return true;
559  }

◆ 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を使用してください。
688  {
689  if (ailia == IntPtr.Zero)
690  {
691  return false;
692  }
693 
694  //バッファの固定
695  GCHandle input_buf_handle = GCHandle.Alloc(input_data, GCHandleType.Pinned);
696  IntPtr input_buf_ptr = input_buf_handle.AddrOfPinnedObject();
697 
698  GCHandle output_buf_handle = GCHandle.Alloc(output_data, GCHandleType.Pinned);
699  IntPtr output_buf_ptr = output_buf_handle.AddrOfPinnedObject();
700 
701  //推論
702  int status = Status = Ailia.ailiaPredict(ailia, output_buf_ptr, (uint)(output_data.Length * 4), input_buf_ptr, (uint)(input_data.Length * 4));
703 
704  //バッファの開放
705  input_buf_handle.Free();
706  output_buf_handle.Free();
707 
708  if (status != Ailia.AILIA_STATUS_SUCCESS)
709  {
710  if (logging)
711  {
712  Debug.Log("ailiaPredict failed " + status + " (" + GetStatusString(status) + ")");
713  }
714  return false;
715  }
716  return true;
717  }

◆ SelectEnvironment()

bool ailia.AiliaModel.SelectEnvironment ( int  idx)
inline

計算環境を選択します。

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

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

195  {
196  Ailia.AILIAEnvironment env = GetEnvironment(idx);
197  if (env == null)
198  {
199  return false;
200  }
201  env_id = env.id;
202  env_name = Marshal.PtrToStringAnsi(env.name);
203  return true;
204  }

◆ SetInputBlobData() [1/2]

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

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

1224  {
1225  if (ailia == IntPtr.Zero || idx < 0)
1226  {
1227  return false;
1228  }
1229  return SetInputBlobData(input_data, (uint)idx);
1230  }
bool SetInputBlobData(float[] input_data, uint idx)
指定したBlobに入力データを設定します。
Definition: AiliaModel.cs:1193

◆ 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に入力データを与えます。

1194  {
1195  if (ailia == IntPtr.Zero)
1196  {
1197  return false;
1198  }
1199 
1200  GCHandle input_buf_handle = GCHandle.Alloc(input_data, GCHandleType.Pinned);
1201  IntPtr input_buf_ptr = input_buf_handle.AddrOfPinnedObject();
1202  int status = Status = Ailia.ailiaSetInputBlobData(ailia, input_buf_ptr, (uint)(input_data.Length * 4), idx);
1203  input_buf_handle.Free();
1204 
1205  if (status != Ailia.AILIA_STATUS_SUCCESS)
1206  {
1207  if (logging)
1208  {
1209  Debug.Log("ailiaSetInputBlobData failed " + status + " (" + GetStatusString(status) + ")");
1210  }
1211  return false;
1212  }
1213  return true;
1214  }

◆ SetInputBlobShape() [1/2]

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

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

1286  {
1287  if (idx < 0)
1288  {
1289  return false;
1290  }
1291  return SetInputBlobShape(shape, (uint)idx);
1292  }
bool SetInputBlobShape(Ailia.AILIAShape shape, uint idx)
指定した入力データ(Blob)の形式を設定します。(4次元以下)
Definition: AiliaModel.cs:1259

◆ 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() を利用してください。
1260  {
1261  if (ailia == IntPtr.Zero)
1262  {
1263  return false;
1264  }
1265 
1266  int status = Status = Ailia.ailiaSetInputBlobShape(ailia, shape, idx, Ailia.AILIA_SHAPE_VERSION);
1267  if (status != Ailia.AILIA_STATUS_SUCCESS)
1268  {
1269  if (logging)
1270  {
1271  Debug.Log("ailiaSetInputBlobShape failed " + status + " (" + GetStatusString(status) + ")");
1272  }
1273  return false;
1274  }
1275  return true;
1276  }

◆ SetInputBlobShapeND() [1/2]

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

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

1344  {
1345  if (idx < 0 || dim < 0)
1346  {
1347  return false;
1348  }
1349  return SetInputBlobShapeND(shape, (uint)dim, (uint)idx);
1350  }
bool SetInputBlobShapeND(uint[] shape, uint dim, uint idx)
入力データ(Blob)の形式を設定します。(5次元以上)
Definition: AiliaModel.cs:1317

◆ 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)の形式を変更します。
1318  {
1319  if (ailia == IntPtr.Zero)
1320  {
1321  return false;
1322  }
1323 
1324  int status = Status = Ailia.ailiaSetInputBlobShapeND(ailia, shape, dim, idx);
1325  if (status != Ailia.AILIA_STATUS_SUCCESS)
1326  {
1327  if (logging)
1328  {
1329  Debug.Log("ailiaSetInputBlobShapeND failed " + status + " (" + GetStatusString(status) + ")");
1330  }
1331  return false;
1332  }
1333  return true;
1334  }

◆ SetInputShape()

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

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

引数
shape入力データの形状情報
戻り値
成功した場合は true 、失敗した場合は false を返す。 @detail prototxtで定義されている入力形状を変更します。 prototxtに記述されているランクと同じにする必要があります。 なお、重み係数の形状が入力形状に依存しているなどによりエラーが返る場合があります。 prototxtで定義されているランクが5次元以上の場合は SetInputShapeND() を利用してください。
837  {
838  if (ailia == IntPtr.Zero)
839  {
840  return false;
841  }
842 
843  int status = Status = Ailia.ailiaSetInputShape(ailia, shape, Ailia.AILIA_SHAPE_VERSION);
844  if (status != Ailia.AILIA_STATUS_SUCCESS)
845  {
846  if (logging)
847  {
848  Debug.Log("ailiaSetInputShape failed " + status + " (" + GetStatusString(status) + ")");
849  }
850  return false;
851  }
852  return true;
853  }

◆ SetInputShapeND()

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

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

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

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

881  {
882  if (ailia == IntPtr.Zero || dim < 0)
883  {
884  return false;
885  }
886 
887  int status = Status = Ailia.ailiaSetInputShapeND(ailia, shape, (uint)dim);
888  if (status != Ailia.AILIA_STATUS_SUCCESS)
889  {
890  if (logging)
891  {
892  Debug.Log("ailiaSetInputShapeND failed " + status + " (" + GetStatusString(status) + ")");
893  }
894  return false;
895  }
896  return true;
897  }

◆ SetMemoryMode()

void ailia.AiliaModel.SetMemoryMode ( uint  set_memory_mode)
inline

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

引数
set_memory_modeメモリモード(論理和で複数指定可) AILIA_MEMORY_XXX (デフォルト: AILIA_MEMORY_REDUCE_CONSTANT )
戻り値
なし

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

342  {
343  memory_mode = set_memory_mode;
344  }

◆ SetProfileMode()

bool ailia.AiliaModel.SetProfileMode ( uint  profile_mode)
inline

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

戻り値
成功した場合は true 、失敗した場合は false を返します。 @detail プロファイルモードを有効にします。プロファイルモードを有効にして推論後、Summary APIでプロファイル結果を取得します。
1644  {
1645  int status = Status = Ailia.ailiaSetProfileMode(ailia, profile_mode);
1646  if (status != Ailia.AILIA_STATUS_SUCCESS)
1647  {
1648  if (logging)
1649  {
1650  Debug.Log("ailiaSetProfileMode failed " + status + " (" + GetStatusString(status) + ")");
1651  }
1652  return false;
1653  }
1654  return true;
1655  }

◆ Update()

bool ailia.AiliaModel.Update ( )
inline

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

戻り値
成功した場合は true 、失敗した場合は false を返します。 @detail SetInputBlobData() を用いて入力を与えた場合などに用います。 推論結果は GetBlobData() で取得してください。
1503  {
1504  if (ailia == IntPtr.Zero)
1505  {
1506  return false;
1507  }
1508  int status = Status = Ailia.ailiaUpdate(ailia);
1509  if (status != Ailia.AILIA_STATUS_SUCCESS)
1510  {
1511  if (logging)
1512  {
1513  Debug.Log("ailiaUpdate failed " + status + " (" + GetStatusString(status) + ")");
1514  }
1515  return false;
1516  }
1517  return true;
1518  }

メンバ詳解

◆ ailia

IntPtr ailia.AiliaModel.ailia = IntPtr.Zero
protected

◆ logging

bool ailia.AiliaModel.logging = true
protected

プロパティ詳解

◆ Status

int ailia.AiliaModel.Status
getprotected set

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

1625 { get; protected set; }

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