パブリック クラスSoftmaxCrossEntropyWithLogits
パブリックコンストラクター
パブリックメソッド
| static <T extends TNumber , U extends TNumber >オペランド<T> | SoftmaxCrossEntropyWithLogits (スコープスコープ、オペランド<U> ラベル、オペランド<T> ロジット、int 軸) logitsとlabels間のソフトマックスクロスエントロピーを計算します。 |
継承されたメソッド
パブリックコンストラクター
public SoftmaxCrossEntropyWithLogits ()
パブリックメソッド
public staticオペランド<T> SoftmaxCrossEntropyWithLogits (スコープスコープ、オペランド<U> ラベル、オペランド<T> ロジッツ、int 軸)
logitsとlabels間のソフトマックスクロスエントロピーを計算します。
クラスが相互に排他的である (各エントリが 1 つのクラスにのみ存在する) 離散分類タスクの確率誤差を測定します。たとえば、各 CIFAR-10 画像には 1 つだけのラベルが付けられます。画像には犬またはトラックを指定できますが、両方を指定することはできません。
注記:
クラスは相互に排他的ですが、確率は相互に排他的である必要はありません。必要なのは、 labelsの各行が有効な確率分布であることだけです。そうでない場合、勾配の計算は不正確になります。
排他的labelsを使用する場合 (一度に 1 つのクラスのみが true となる)、 ERROR(/org.tensorflow.op.NnOps#sparseSoftmaxCrossEntropyWithLogits)を参照してください。
使用法:
Operand<TFloat32> logits =
tf.constant(new float[][] { {4.0F, 2.0F, 1.0F}, {0.0F, 5.0F, 1.0F} } );
Operand<TFloat32> labels =
tf.constant(new float[][] { {1.0F, 0.0F, 0.0F}, {0.0F, 0.8F, 0.2F} } );
Operand<TFloat32> output =
tf.nn.softmaxCrossEntropyWithLogits(labels, logits, -1);
// output Shape = [2]
// dataType = FLOAT (1)
// values { 0.169846, 0.824745 }
バックプロパゲーションはlogitsとlabelsの両方で発生します。 labelsへの逆伝播を禁止するには、ラベル テンソルをこの関数に渡す前にtf.stopGradientを通して渡します。
パラメータ
| 範囲 | 現在のスコープ |
|---|---|
| ラベル | クラス次元に沿った各ベクトルは有効な確率分布を保持する必要があります。たとえば、ラベルの形状が[batch_size, num_classes]の場合、 labels[i]の各行は有効な確率分布でなければなりません。 |
| ロジット | ラベルごとのアクティベーション。通常は線形出力です。これらの活性化エネルギーは、正規化されていない対数確率として解釈されます。 |
| 軸 | クラスのディメンション。 -1 は最後の次元です。 |
返品
- ソフトマックスのクロスエントロピー損失。そのタイプは
logitsと同じであり、その形状はlabelsの最後の次元を持たないことを除いてlabelsと同じです。