Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
22
Help us understand the problem. What is going on with this article?
@r9y9

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

More than 3 years have 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でも使えるのかもしれません

22
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
22
Help us understand the problem. What is going on with this article?