Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Menggunakan TensorBoard di Notebook

Lihat di TensorFlow.org Jalankan di Google Colab Lihat sumber di GitHub

TensorBoard dapat digunakan langsung dalam pengalaman notebook seperti Colab dan Jupyter . Ini dapat berguna untuk membagikan hasil, mengintegrasikan TensorBoard ke dalam alur kerja yang ada, dan menggunakan TensorBoard tanpa menginstal apa pun secara lokal.

Mendirikan

Mulailah dengan menginstal TF 2.0 dan memuat ekstensi notebook TensorBoard:

Untuk pengguna Jupyter: Jika Anda telah menginstal Jupyter dan TensorBoard ke virtualenv yang sama, maka Anda harus melakukannya. Jika Anda menggunakan penyiapan yang lebih rumit, seperti instalasi Jupyter global dan kernel untuk lingkungan Conda / virtualenv yang berbeda, Anda harus memastikan bahwa biner tensorboard ada di PATH Anda di dalam konteks notebook Jupyter. Salah satu cara untuk melakukannya adalah dengan memodifikasi kernel_spec untuk menambahkan direktori bin lingkungan ke PATH , seperti yang dijelaskan di sini .

Untuk pengguna Docker: Jika Anda menjalankan image Docker dari server Notebook Jupyter menggunakan TensorFlow setiap malam , Anda tidak hanya perlu mengekspos port notebook, tetapi juga port TensorBoard. Jadi, jalankan container dengan perintah berikut:

docker run -it -p 8888:8888 -p 6006:6006 \
tensorflow/tensorflow:nightly-py3-jupyter 
.dll

dengan -p 6006 adalah port default TensorBoard. Ini akan mengalokasikan port untuk Anda menjalankan satu instance TensorBoard. Untuk memiliki instance serentak, perlu mengalokasikan lebih banyak port. Juga, teruskan --bind_all ke %tensorboard untuk mengekspos port di luar container.

# Load the TensorBoard notebook extension
%load_ext tensorboard

Impor TensorFlow, datetime, dan os:

import tensorflow as tf
import datetime, os

TensorBoard di notebook

Unduh set data FashionMNIST dan skalakan :

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
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step

Buat model yang sangat sederhana:

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')
  ])

Latih model menggunakan Keras dan callback TensorBoard:

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=5, 
            validation_data=(x_test, y_test), 
            callbacks=[tensorboard_callback])

train_model()
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 182us/sample - loss: 0.4976 - accuracy: 0.8204 - val_loss: 0.4143 - val_accuracy: 0.8538
Epoch 2/5
60000/60000 [==============================] - 10s 174us/sample - loss: 0.3845 - accuracy: 0.8588 - val_loss: 0.3855 - val_accuracy: 0.8626
Epoch 3/5
60000/60000 [==============================] - 10s 175us/sample - loss: 0.3513 - accuracy: 0.8705 - val_loss: 0.3740 - val_accuracy: 0.8607
Epoch 4/5
60000/60000 [==============================] - 11s 177us/sample - loss: 0.3287 - accuracy: 0.8793 - val_loss: 0.3596 - val_accuracy: 0.8719
Epoch 5/5
60000/60000 [==============================] - 11s 178us/sample - loss: 0.3153 - accuracy: 0.8825 - val_loss: 0.3360 - val_accuracy: 0.8782

Mulai TensorBoard di dalam notebook menggunakan magics :

%tensorboard --logdir logs

Anda sekarang dapat melihat dashboard seperti skalar, grafik, histogram, dan lainnya. Beberapa dasbor belum tersedia di Colab (seperti plugin profil).

%tensorboard memiliki format yang persis sama dengan pemanggilan baris perintah TensorBoard, tetapi dengan % -sign di depannya.

Anda juga dapat memulai TensorBoard sebelum pelatihan untuk memantau kemajuannya:

%tensorboard --logdir logs

Backend TensorBoard yang sama digunakan kembali dengan mengeluarkan perintah yang sama. Jika direktori log yang berbeda dipilih, instance baru TensorBoard akan dibuka. Port dikelola secara otomatis.

Mulai latih model baru dan lihat update TensorBoard secara otomatis setiap 30 detik atau segarkan dengan tombol di kanan atas:

train_model()
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 184us/sample - loss: 0.4968 - accuracy: 0.8223 - val_loss: 0.4216 - val_accuracy: 0.8481
Epoch 2/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3847 - accuracy: 0.8587 - val_loss: 0.4056 - val_accuracy: 0.8545
Epoch 3/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3495 - accuracy: 0.8727 - val_loss: 0.3600 - val_accuracy: 0.8700
Epoch 4/5
60000/60000 [==============================] - 11s 179us/sample - loss: 0.3282 - accuracy: 0.8795 - val_loss: 0.3636 - val_accuracy: 0.8694
Epoch 5/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3115 - accuracy: 0.8839 - val_loss: 0.3438 - val_accuracy: 0.8764

Anda dapat menggunakan API tensorboard.notebook untuk sedikit lebih mengontrol:

from tensorboard import notebook
notebook.list() # View open TensorBoard instances
Known TensorBoard instances:

  - port 6006: logdir logs (started 0:00:54 ago; pid 265)

# Control TensorBoard display. If no port is provided, 
# the most recently launched TensorBoard is used
notebook.display(port=6006, height=1000)