LoginSignup
37
49

More than 5 years have passed since last update.

Jupyter-tensorboardの紹介とKerasから使ってみる

Posted at

Jupyter-tensorboardの紹介とKerasから使ってみる

Jupyter Notebookに統合されたTensorboardの紹介です。
https://github.com/lspvic/jupyter_tensorboard

ディープラーニングのモデル開発をする際、ひろく使われる開発インターフェイスがJupyter Notebookです。
加えてディープラーニングのフレームワークとして頻繁に使われる2強がTensorflowとKerasだと思います。
Keras自体がTheanoやTensorflowをカバーするハイレベル・ライブラリのため、実質Tensorflowが使われているのですが、TensorflowにはTensorboardという便利なウェブアプリケーションがあります。
Jupyter-tensorboardはJupyter上でTensorboardを起動することができるプラグインです。

101.PNG

インストール方法は簡単で、pip installで導入できます。

pip install tensorflow tensorboard keras jupyter-tensorboard

Kerasからでも使える

Kerasは従来からTensorboardで可視化することができますが、もちろんJupyter-tensorboardでも使えます。
簡単にMNISTのモデルをJupyter-tensorboardで表示したいと思います。
プログラムは以下ですが、"!!ここ追加!!"とある部分を追加するだけでTensorboardを使うことができるようになります。

import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.optimizers import RMSprop

batch_size = 128
num_classes = 10
epochs = 20

# the data, shuffled and split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()

x_train = x_train.reshape(60000, 784)
x_test = x_test.reshape(10000, 784)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print(x_train.shape[0], 'train samples')
print(x_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
y_train = keras.utils.to_categorical(y_train, num_classes)
y_test = keras.utils.to_categorical(y_test, num_classes)

model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_classes, activation='softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer=RMSprop(),
              metrics=['accuracy'])

# !!ここ追加!!
tb_cb = keras.callbacks.TensorBoard(log_dir="tflog/", histogram_freq=1)
cbks = [tb_cb]

history = model.fit(x_train, y_train,
                    batch_size=batch_size,
                    epochs=epochs,
                    verbose=1,
                    validation_data=(x_test, y_test),
                    callbacks=cbks) # !!ここ追加!!

score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

MNISTの学習を開始すると、"tflog/"ディレクトリにログが蓄積されていきます。
Jupyterの画面でこのディレクトリを選択し、Tensorboardを選択することでJupyter-tensorboardを起動することができます。

102.PNG

あとはTensorboardそのままに使うことができます。

103.PNG

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