LoginSignup
47
49

More than 5 years have passed since last update.

Kerasの学習過程をスマホで見る

Last updated at Posted at 2017-10-25

2017/12/18追記
下のアイディアを、もっと扱いやすい形でHyperdash公式に取り込んでもらえました!(PullRequest
まだドキュメントは無いようですが、以下の仕組みが理解できれば使えるものだと思います。また今度記事書こうと思います。


「ネットワークのトレーニング時間かかるし一日置いとくか」と放置していたら、最初の方でつまづいていたりすることがよくあります。次の日に気づくと悲惨です!
そこで、スマホアプリでリアルタイムに学習経過を見ることのできる便利なサービスhyperdashを使いましょう。
インストールや基本的な動かし方は公式ページにあります。

この記事では少し応用してKerasのコールバックから、hyperdashのapiにつなげる方法を紹介します。
とは言っても、次の二つのファイルを用意するだけで終わりです。
実行は普段通りpython train.pyでOK!

hyperdash_callback.py
from keras.callbacks import Callback

class Hyperdash(Callback):
    def __init__(self, exp):
        super(Hyperdash, self).__init__()
        self.exp = exp

    def on_epoch_end(self, epoch, logs=None):
        val_acc = logs.get('val_acc')
        val_loss = logs.get('val_loss')

        if val_acc is not None:
            self.exp.metric("val_acc", val_acc)
        if val_loss is not None:
            self.exp.metric("val_loss", val_loss)
train.py
# 普段のimportに加えて以下の二つを追加
from hyperdash import Experiment
from hyperdash_callback import Hyperdash

def main():
    exp = Experiment("Experiment 1") # 宣言以降のログがスマホアプリに送られる

    # train dataやmodelを準備するコードをここに書く
    # ...

    hd_callback = Hyperdash(exp=exp)
    callbacks = [hd_callback] # Tensorboardなどのコールバックと併用できる
    history = model.fit(x_train, y_train, batch_size=32, verbose=1, epochs=50,
                        validation_split=0.1, shuffle=True,
                        callbacks=callbacks)

    exp.end() # 無事終了したことを示すためにコードの最後に置く

if __name__ == "__main__":
    main()


便利!!(もう少し学習してる感のある画像にすればよかった)

47
49
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
47
49