35
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

W&Bを使ってみる

Last updated at Posted at 2020-02-01

#W&Bとは
W&B
tensor boardのweb版です。
違いは、オンラインのページで確認できるほか、昔の実験結果などを保管しておくこともできます。
機械学習のログの記録や結果をみるのに便利なサイトです。

以下のページを参考に記事をかきます。
wandb Quickstart

#セットアップ

pipを使って、wandbのライブラリをインストールします。

pip install wandb

webのアプリなので会員登録が必要です。容量に制限はありますが、学生やアカデミック用途では無料です。
以下のページから登録できます。githubのアカウントでできるので、自分はすぐできてしまいました。

会員登録ページ

次に使用する環境のターミナルで

wandb login

とすると、以下のページがでてきます。

wandb: You can find your API key in your browser here: https://app.wandb.ai/authorize
wandb: Paste an API key from your profile and hit enter:

https://app.wandb.ai/authorizeのページにアカウントを登録したPCからアクセスすると
40桁くらいのAPIkeyがあるので、これをコピーして上のenter:のところに貼り付けます。
これでサーバーなどとwebのアカウントが紐付けされます。

#コードの書き換え
まず冒頭に以下のコードを足します。

# Inside my model training code
import wandb
wandb.init(project="my-project")

プロジェクト名ごとで結果をまとめておくことができます。

保存したい引数がある場合はconfigメソッドで保存できます。

wandb.config.dropout = 0.2
wandb.config.hidden_layer_size = 128

次に訓練データ内で記録用のコードをいれます。

def my_train_loop():
    for epoch in range(10):
        loss = 0 # change as appropriate :)
        wandb.log({'epoch': epoch, 'loss': loss})

通常ならprint(loss)を行う部分にwandb.log({dict})をいれます。
dictで渡した引数の分だけグラフが作成されます。

末尾に以下のコードをいれると、学習ログを保存することができます。

wandb.save("mymodel.h5")

#動かしてみる

test.py
import wandb
wandb.init(project="test-project")

lr = 0.1
wandb.config.lr = lr

def my_train_loop():
    loss = 10

    for epoch in range(10):
        loss = loss * lr  # change as appropriate :)
        wandb.log({'epoch': epoch, 'loss': loss})
    wandb.save("mymodel.h5")


def main():
    my_train_loop()

if __name__ == "__main__":
    main()

上記のコードを実行し、
W&Bのページにアクセするすると、

スクリーンショット 2020-01-30 15.24.14.png

このようなlossの推移が得られます。
なぜepochがあるかというと、基本的には横軸はstep数となります。
そのため、グラフを作成する際に横軸としてepochを記録しておくことで、
スクリーンショット 2020-01-30 15.27.21.png
このようにepoch vs lossなどのグラフを作ることができます。

configに追加したlrも記録されるため、再現する際にも役に立ちます。
スクリーンショット 2020-01-30 15.30.01.png

#簡単です。
実は触って2日目なのですが、追加するコードは少なく、グラフを出すのもさくっとでてきます。
また、webに記録することで様々なサーバーでの結果を1つに集めて保管できます。
ぜひ触ってみてください!

35
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?