TensorLabel

パブリック クラスTensorLabel

TensorLabel は、軸上に意味のあるラベルを持つ TensorBuffers のユーティリティ ラッパーです。

たとえば、画像分類モデルは、{1, 10} のような形状を持つ出力テンソルを持つ場合があります。ここで、1 はバッチ サイズ、10 はカテゴリの数です。実際、2 番目の軸では、対応する各カテゴリの名前または説明を使用して各サブテンソルにラベルを付けることができます。 TensorLabel TensorBuffer内のプレーン Tensor を、事前定義されたラベルからサブテンソルへのマップに変換するのに役立ちます。この場合、2 番目の軸に 10 個のラベルが指定されている場合、 TensorLabel元の {1, 10} テンソルを 10 要素マップに変換できます。その各値は形状 {} (スカラー) のテンソルです。使用例:

   TensorBuffer outputTensor = ...;
   List<String> labels = FileUtil.loadLabels(context, labelFilePath);
   // labels the first axis with size greater than one
   TensorLabel labeled = new TensorLabel(labels, outputTensor);
   // If each sub-tensor has effectively size 1, we can directly get a float value
   Map<String, Float> probabilities = labeled.getMapWithFloatValue();
   // Or get sub-tensors, when each sub-tensor has elements more than 1
   Map<String, TensorBuffer> subTensors = labeled.getMapWithTensorBuffer();
 

注: 現在、サイズが 1 より大きい最初のラベルのテンソルからマップへの変換のみをサポートしています。

パブリックコンストラクター

TensorLabel ( Map < IntegerList < String >> axisLabels、 TensorBuffer tensorBuffer)
多次元テンソルの軸にラベルを付けることができる TensorLabel オブジェクトを作成します。
TensorLabel ( List < String > axisLabels、 TensorBuffer tensorBuffer)
多次元テンソルの 1 つの軸にラベルを付けることができる TensorLabel オブジェクトを作成します。

パブリックメソッド

一覧<カテゴリ>
getCategoryList ()
TensorLabelオブジェクトからCategoryのリストを取得します。
マップ< StringFloat >
getMapWithFloatValue ()
ラベルを float にマップするマップを取得します。
Map < String , TensorBuffer >
getMapWithTensorBuffer ()
ラベルと対応する TensorBuffer のペアを持つマップを取得します。

継承されたメソッド

パブリックコンストラクター

public TensorLabel ( Map < Integer , List < String >> axisLabels, TensorBuffer tensorBuffer)

多次元テンソルの軸にラベルを付けることができる TensorLabel オブジェクトを作成します。

パラメーター
軸ラベルキーが軸 ID (0 から始まる) で、値が対応するラベルであるマップ。注: ラベルのサイズは、その軸上のテンソルのサイズと同じである必要があります。
テンソルバッファラベルを付ける TensorBuffer。
投げる
NullPointerException axisLabelsまたはtensorBuffer null の場合、またはaxisLabelsのいずれかの値が null の場合。
IllegalArgumentException axisLabelsのキーのいずれかが範囲外にある場合 ( tensorBufferの形状と比較して)、または任意の値 (ラベル) が指定された次元のtensorBufferとサイズが異なる場合。

public TensorLabel ( List < String > axisLabels, TensorBuffer tensorBuffer)

多次元テンソルの 1 つの軸にラベルを付けることができる TensorLabel オブジェクトを作成します。

注: ラベルは、サイズが 1 より大きい最初の軸に適用されます。たとえば、テンソルの形状が [1, 10, 3] の場合、ラベルは軸 1 (ID は 0 から始まります) に適用されます。また、 axisLabelsのサイズも 10 にする必要があります。

パラメーター
軸ラベルラベルのリスト。そのサイズは、ラベル付けされる軸上のテンソルのサイズと同じである必要があります。
テンソルバッファラベルを付ける TensorBuffer。

パブリックメソッド

public List <カテゴリ> getCategoryList ()

TensorLabelオブジェクトからCategoryのリストを取得します。

ラベルの軸は事実上最後の軸である必要があります (つまり、この軸で指定されたすべてのサブテンソルのフラット サイズは 1 である必要があります)。そのため、ラベル付きの各サブテンソルは浮動小数点数スコアに変換できます。例: 形状{2, 5, 3}および軸 2 のTensorLabel有効です。 axis が 1 または 0 の場合、 Categoryに変換できません。

getMapWithFloatValue()は代替手段ですが、結果としてMapを返します。

投げる
IllegalStateException各ラベルのサブテンソルのサイズが 1 ではない場合。

public Map < String , Float > getMapWithFloatValue ()

ラベルを float にマップするマップを取得します。サイズが 1 より大きい最初の軸でのみマッピングを許可し、その軸は事実上最後の軸である必要があります (つまり、この軸で指定されたすべてのサブテンソルのフラット サイズは 1 である必要があります)。

getCategoryList()は、結果を取得するための代替 API です。

投げる
IllegalStateException各ラベルのサブテンソルのサイズが 1 ではない場合。

public Map < String , TensorBuffer > getMapWithTensorBuffer ()

ラベルと対応する TensorBuffer のペアを持つマップを取得します。現在、サイズが 1 より大きい最初の軸でのマッピングのみを許可します。