2017-10-27 24 views

答えて

2

average_losslossの違いは、他は同一の損失オーバーMEANを低減しながら一つは、バッチ損失上SUMを減少させることです。したがって、比率はinput_fnのちょうどbatch_size引数です。 batch_size=1に合格すると、それらは等しいと見なされます。

training_loss = losses.compute_weighted_loss(unweighted_loss, weights=weights, 
              reduction=losses.Reduction.SUM) 

mean_loss = metrics_lib.mean(unweighted_loss, weights=weights) 

あなたが見ることができるように、彼らはから計算されています

実際には、(tf.DNNRegressorに対応)回帰ヘッドのためのテンソルがtf.Estimatorの特定の種類に依存するが、彼らは非常に似ている、here's the source code報告しました同じunweighted_lossおよびweightsテンソル。同じ値がテンソルボードサマリーに報告されます。

1

実際の比率はちょうど4.0で、これはバッチサイズに相当します。

ネットワークをトレーニングするときは、通常、入力をバッチとしてフィードします。
exampleでは、バッチサイズは4であるため、ロスはバッチ全体の損失の合計ですが、平均損失はバッチ全体の損失の平均です。