sparse_softmax_cross_entropy_with_logits と softmax_cross_entropy_with_logits の違いは何ですか? 質問する

sparse_softmax_cross_entropy_with_logits と softmax_cross_entropy_with_logits の違いは何ですか? 質問する

最近出会ったtf.nn.sparse_softmax_cross_entropy_with_logitsそして、私は何と比べて違いがあるのか​​分かりませんtf.nn.softmax_cross_entropy_with_logits

唯一の違いは、トレーニングベクトルyワンホットエンコード使用時sparse_softmax_cross_entropy_with_logitsは?

API を読んでも、 と比べて他の違いは見つかりませんでしたsoftmax_cross_entropy_with_logits。しかし、なぜ追加の関数が必要なのでしょうか?

ワンホットエンコードされたトレーニングデータ/ベクトルが提供されている場合、softmax_cross_entropy_with_logitsと同じ結果が生成されませんか?sparse_softmax_cross_entropy_with_logits

ベストアンサー1

2つの異なる機能を持つことは利便性どちらも同じ結果になるからです。

違いは簡単です:

  • の場合sparse_softmax_cross_entropy_with_logits、ラベルの形状は [batch_size] で、データ型は int32 または int64 である必要があります。各ラベルは範囲 の int です[0, num_classes-1]
  • の場合softmax_cross_entropy_with_logits、ラベルの形状は [batch_size, num_classes] で、データ型は float32 または float64 である必要があります。

使用されるラベルsoftmax_cross_entropy_with_logitsホットバージョンで使用されるラベルsparse_softmax_cross_entropy_with_logits

もう 1 つの小さな違いは、 の場合sparse_softmax_cross_entropy_with_logits、ラベルとして -1 を指定して、0このラベルに損失を生じさせることができることです。

おすすめ記事