In [1]:
import tensorflow as tf
import datetime, os
import tensorboard
In [2]:
tf.version.VERSION
Out[2]:
'2.2.0'
In [3]:
fashion_mnist = tf.keras.datasets.fashion_mnist

(x_train, y_train),(x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
In [4]:
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')
    ])
In [5]:
def train_model():
    model = create_model()
    model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])

    logdir = os.path.join("logs", datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
    tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1)

    model.fit(x=x_train, 
              y=y_train, 
              epochs=10, 
              validation_data=(x_test, y_test), 
              callbacks=[tensorboard_callback])

train_model()
Epoch 1/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.4955 - accuracy: 0.8220 - val_loss: 0.4341 - val_accuracy: 0.8425
Epoch 2/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3794 - accuracy: 0.8617 - val_loss: 0.3984 - val_accuracy: 0.8560
Epoch 3/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3470 - accuracy: 0.8731 - val_loss: 0.3615 - val_accuracy: 0.8683
Epoch 4/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3291 - accuracy: 0.8777 - val_loss: 0.3845 - val_accuracy: 0.8598
Epoch 5/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3127 - accuracy: 0.8835 - val_loss: 0.3502 - val_accuracy: 0.8756
Epoch 6/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.3009 - accuracy: 0.8881 - val_loss: 0.3407 - val_accuracy: 0.8757
Epoch 7/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2892 - accuracy: 0.8927 - val_loss: 0.3336 - val_accuracy: 0.8803
Epoch 8/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2782 - accuracy: 0.8963 - val_loss: 0.3443 - val_accuracy: 0.8738
Epoch 9/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2711 - accuracy: 0.8979 - val_loss: 0.3463 - val_accuracy: 0.8740
Epoch 10/10
1875/1875 [==============================] - 4s 2ms/step - loss: 0.2637 - accuracy: 0.9016 - val_loss: 0.3345 - val_accuracy: 0.8834
In [9]:
tensorboard.notebook.list()
Known TensorBoard instances:
  - port 6006: logdir logs (started 0:00:03 ago; pid 32282)
In [10]:
%reload_ext tensorboard
%tensorboard --logdir logs --host localhost
Reusing TensorBoard on port 6006 (pid 32282), started 0:00:29 ago. (Use '!kill 32282' to kill it.)