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 secara langsung dalam pengalaman notebook seperti Colab dan Jupyter . Ini dapat membantu untuk berbagi hasil, mengintegrasikan TensorBoard ke dalam alur kerja yang ada, dan menggunakan TensorBoard tanpa menginstal apa pun secara lokal.

Mempersiapkan

Mulailah dengan menginstal TF 2.0 dan memuat ekstensi notebook TensorBoard:

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

Jika Anda menjalankan gambar Docker dari server Notebook Jupyter menggunakan TensorFlow setiap malam , perlu untuk mengekspos tidak hanya port notebook, tetapi port TensorBoard.

Dengan demikian, jalankan wadah dengan perintah berikut:

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

di mana -p 6006 adalah port default TensorBoard. Ini akan mengalokasikan port bagi Anda untuk menjalankan satu instance TensorBoard. Untuk mendapatkan instance bersamaan, perlu mengalokasikan lebih banyak port.

 # Load the TensorBoard notebook extension
%load_ext tensorboard
 

Impor TensorFlow, datetime, dan os:

 import tensorflow as tf
import datetime, os
 

TensorBoard di notebook

Unduh dataset FashionMNIST dan diskalakan :

 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 panggilan balik 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 sihir :

 %tensorboard --logdir logs
 

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

%tensorboard magic memiliki format yang persis sama dengan permintaan baris perintah TensorBoard, tetapi dengan tanda % -s di depannya.

Anda juga dapat memulai TensorBoard sebelum pelatihan untuk memantaunya dalam proses:

 %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 tonton pembaruan 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 kontrol sedikit lebih:

 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)