Kerasのログを可視化するスクリプト

KerasのバックエンドがTensorFlowだとTensorBoardを使ってLossやAccurayを可視化できますがバックエンドTheanoだとTensorBoardに相当するツールがありません..。そこでログからグラフを作成するスクリプトを作りました。

github.com

使い方

  1. Cmd + C でログをクリップボードにコピー

    例えば、

     Train on 50000 samples, validate on 10000 samples
     Epoch 1/10
     50000/50000 [==============================] - 4s - loss: 1.1514 - acc: 0.5976 - val_loss: 0.9149 - val_acc: 0.6829
     Epoch 2/10
     50000/50000 [==============================] - 4s - loss: 1.0144 - acc: 0.6488 - val_loss: 0.9346 - val_acc: 0.6722
     Epoch 3/10
     50000/50000 [==============================] - 4s - loss: 0.9641 - acc: 0.6665 - val_loss: 0.9359 - val_acc: 0.6847
     Epoch 4/10
     50000/50000 [==============================] - 4s - loss: 0.9388 - acc: 0.6775 - val_loss: 0.9194 - val_acc: 0.6845
     Epoch 5/10
     50000/50000 [==============================] - 4s - loss: 0.9073 - acc: 0.6849 - val_loss: 0.9186 - val_acc: 0.6955
     Epoch 6/10
     50000/50000 [==============================] - 4s - loss: 0.8893 - acc: 0.6953 - val_loss: 0.9356 - val_acc: 0.6851
     Epoch 7/10
     50000/50000 [==============================] - 4s - loss: 0.8660 - acc: 0.7039 - val_loss: 0.9151 - val_acc: 0.7018
     Epoch 8/10
     50000/50000 [==============================] - 4s - loss: 0.8497 - acc: 0.7074 - val_loss: 0.9022 - val_acc: 0.6981
     Epoch 9/10
     50000/50000 [==============================] - 4s - loss: 0.8419 - acc: 0.7096 - val_loss: 0.8970 - val_acc: 0.6927
     Epoch 10/10
     50000/50000 [==============================] - 4s - loss: 0.8261 - acc: 0.7157 - val_loss: 0.9318 - val_acc: 0.7027
    

    クリップボードへコピー

  2. $ python generate_graph_from_log.py を実行

    次のようなグラフが表示される

    f:id:sanshonoki:20171229193641p:plain

    -o output_filename をつけて実行すればファイルに出力されます

内部で pbpasteコマンドを使っているのでクリップボードからの読み込みはMacだけですがファイルに保存しておけば他のOSでも使えます(引数で入力ファイル名を渡す)。

とりあえず自分用としてはこれで用を足しそうですが暇があったらグラフ出力をカスタマイズできるようにしたいと思います。