Help us understand the problem. What is going on with this article?

PyTorchで学習の過程を確認したいときはtensorboardXを使うのが良かったです

More than 1 year has passed since last update.

何かしらのモデルを学習する際に、ロスは順調に下がっているのか等、その経過を逐次確認したいと思うことがよくあります。色々選択肢がありますが、僕が試してきた方法と、その中で良いと思った方法を紹介します。結論はタイトルの通りです。

tensorboardX: https://github.com/lanpa/tensorboard-pytorch

選択肢

まずはじめに、これまで僕がしてきたことは、

  1. 学習中には確認しない(学習終了後に、ロス、正解率の推移をmatplotlibなどでプロットする)
  2. print(loss) のようなログをイテレーションごとに吐いて、目で推移を確認する
  3. (jupyter notebookの場合)bokehのNotebook Handles機能を使って、イテレーション毎にロスのグラフをアップロードしていく
  4. 適当なステップ毎に、例えば画像の生成例等を保存していく
  5. tensorboard_logger を使って、tensorboardようにログを吐いて、tensorboardをつかって確認する
  6. tensorboardX を使って、tensorboardようにログを吐いて、tensorboardをつかって確認する

それぞれ実際に試してみた感想を書いていきます。

  1. 学習に何日もかかる場合にはとても非効率なのでダメです。数分から十分くらいで終わる場合は、これでもよいでしょう。
  2. グラフのほうがわかりやすいので、グラフにしましょう
  3. Notebookを使っている場合、かつ学習に何日も時間がかからない場合は、これでもよいでしょう。ただし、グラフの要素毎にアップデート処理を書かないといけないので、グラフが増えてくると大変だと個人的には思いました。
  4. 便利です。あとで複数の画像をまとめてgifにしたりすることもできます。しかし、ロスのようなストリーミングデータの保存には向きません
  5. とてもよく、数カ月とくに不満なく使っていました。しかし、tensorboardの機能の一部しか使えません。例えば、画像や音声をログに吐くことができません
  6. 5の問題点を解決してくれるもので、ロスはもちろん、画像や音声、embedding、グラフを出力することもできます。最高でした。

まとめ

https://github.com/lanpa/tensorboard-pytorch がとてもよかったので、PyTorchユーザーの方は学習の過程をモニタリングするのに使ってみてはどうでしょうか

おまけ

実際に試していないので確証はないのですが、コードを読んでいたら chainerの名前があった ので、chainerでも使えるのかもしれません

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした