TensorBoard

Page content

TensorBoard

We can easily visualize our neural networks written by TensorFlow in a graph format with TensorBoard (it can more actually).

https://www.tensorflow.org/tensorboard/get_started

Install

As of 2020/07/09, TensorBoard is installed when you install TensorFlow with pip.

pip install -U tensorboard <- it already installed when you install tensorflow with pip.

it coflict and cause problem

Simple sampl code

First, create a smiple model.

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

def create_model():
  return tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
  ])

Before training, set a callback tf.keras.callbacks.TensorBoard so that we can save the trained model.

# Tested at jupyter notebook
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

model.fit(x=x_train,
          y=y_train,
          epochs=5,
          validation_data=(x_test, y_test),
          callbacks=[tensorboard_callback])
%load_ext tensorboard
%tensorboard --logdir /path/to/logs

TensorBoard runs on port 6006. Don’t forget to open port like ufw allow 6006/tcp. If you write in jupyter notebook, %tensorboard --logdir /path/to/logs returns localhost:6006 on the cell output.

GRAPH tab is helpful.

Trouble shooting

When your TensorBoard doesn’t run because of process number issue, try follows (tensorboard-intro is your jupyter project name.)

rm -rf /tmp/.tensorboard-info