im2txtソースコードをim2txtに読み込むと問題が発生します。テンソルフロー内のbatch_lossとtotal_loss = tf.get_total_loss()
batch_loss
とtotal_loss
がありますbatch_loss
は、すべてのバッチデータに対して計算され、そしてtf.add_loss(batch_loss)
呼び出しによってtf.Graphkeys.LOSSES
に追加されます。 total_loss
にはtf.losses.get_total_loss()
があり、すべての損失は平均でtf.Graphkeys.LOSSES
です。
質問:パラメータがtotal_lossによって更新されるのはなぜですか?私はこの問題によって何度も混乱しました。
私は何も理解しませんでした。損失報告はバックプロパゲーションとパラメータの更新にどのように影響しますか? – Maxim
私の意見では、各バッチデータによって計算されるべきbatch_lossによってパラメータが更新されます。これは[im2txt](https://github.com/tensorflow/models/blob/master/research/)の機械学習でよく起こります。 im2txt/im2txt/show_and_tell_model.py)、すべてのデータセットが多数のバッチに分割され、im2txtは各バッチデータの損失を計算し、損失をtf.Graphkeys.LOSSESに追加してからtotal_lossを計算し、最後にtotal_lossしたがって、パラメータはtotal_lossでは更新されますが、batch_lossでは更新されないのはなぜですか? – legend4917
バックプロップとパラメータの更新は、評価された損失*導関数*に依存します。生の損失額はちょうどヘルパー情報です。 – Maxim