Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Meneliti Grafik TensorFlow

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

Gambaran

Dasbor Grafik TensorBoard adalah alat yang ampuh untuk memeriksa model TensorFlow Anda. Anda dapat dengan cepat melihat grafik konseptual dari struktur model Anda dan memastikannya cocok dengan desain yang Anda inginkan. Anda juga dapat melihat grafik op-level untuk memahami bagaimana TensorFlow memahami program Anda. Memeriksa grafik op-level dapat memberi Anda wawasan tentang cara mengubah model Anda. Misalnya, Anda dapat mendesain ulang model Anda jika pelatihan berjalan lebih lambat dari yang diharapkan.

Tutorial ini menyajikan ikhtisar singkat tentang cara menghasilkan data diagnostik grafik dan memvisualisasikannya di dasbor Grafik TensorBoard. Anda akan mendefinisikan dan melatih model Keras Sequential sederhana untuk dataset Fashion-MNIST dan belajar cara login dan memeriksa grafik model Anda. Anda juga akan menggunakan tracing API untuk menghasilkan data grafik untuk fungsi-fungsi yang dibuat menggunakan anotasi tf.function baru.

Mempersiapkan

 # Load the TensorBoard notebook extension.
%load_ext tensorboard
 
 from datetime import datetime
from packaging import version

import tensorflow as tf
from tensorflow import keras

print("TensorFlow version: ", tf.__version__)
assert version.parse(tf.__version__).release[0] >= 2, \
    "This notebook requires TensorFlow 2.0 or above."
 
TensorFlow version:  2.2.0

 import tensorboard
tensorboard.__version__
 
'2.2.1'
 # Clear any logs from previous runs
!rm -rf ./logs/ 
 

Tentukan model Keras

Dalam contoh ini, classifier adalah model Sequential empat lapisan sederhana.

 # Define the model.
model = keras.models.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(32, activation='relu'),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10, activation='softmax')
])

model.compile(
    optimizer='adam',
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy'])
 

Unduh dan siapkan data pelatihan.

 (train_images, train_labels), _ = keras.datasets.fashion_mnist.load_data()
train_images = train_images / 255.0
 

Latih model dan catat data

Sebelum pelatihan, tentukan callback Keras TensorBoard , tentukan direktori log. Dengan meneruskan panggilan balik ini ke Model.fit (), Anda memastikan bahwa data grafik dicatat untuk visualisasi di TensorBoard.

 # Define the Keras TensorBoard callback.
logdir="logs/fit/" + datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = keras.callbacks.TensorBoard(log_dir=logdir)

# Train the model.
model.fit(
    train_images,
    train_labels, 
    batch_size=64,
    epochs=5, 
    callbacks=[tensorboard_callback])
 
Epoch 1/5
938/938 [==============================] - 2s 2ms/step - loss: 0.6955 - accuracy: 0.7618
Epoch 2/5
938/938 [==============================] - 2s 2ms/step - loss: 0.4877 - accuracy: 0.8296
Epoch 3/5
938/938 [==============================] - 2s 2ms/step - loss: 0.4458 - accuracy: 0.8414
Epoch 4/5
938/938 [==============================] - 2s 2ms/step - loss: 0.4246 - accuracy: 0.8476
Epoch 5/5
938/938 [==============================] - 2s 2ms/step - loss: 0.4117 - accuracy: 0.8508

<tensorflow.python.keras.callbacks.History at 0x7f656ecc3fd0>

Grafik tingkat-op

Mulai TensorBoard dan tunggu beberapa detik hingga UI memuat. Pilih dasbor Grafik dengan mengetuk "Grafik" di bagian atas.

 %tensorboard --logdir logs
 

Secara default, TensorBoard menampilkan grafik op-level . (Di sebelah kiri, Anda dapat melihat tag "Default" dipilih.) Perhatikan bahwa grafik terbalik; data mengalir dari bawah ke atas, jadi terbalik dibandingkan dengan kode. Namun, Anda dapat melihat bahwa grafik sangat cocok dengan definisi model Keras, dengan tepi tambahan ke node komputasi lainnya.

Grafik seringkali sangat besar, sehingga Anda dapat memanipulasi visualisasi grafik:

  • Gulir untuk memperbesar dan memperkecil
  • Seret untuk menggeser
  • Mengklik ganda matikan ekspansi node (sebuah node dapat menjadi wadah untuk node lain)

Anda juga dapat melihat metadata dengan mengklik sebuah simpul. Ini memungkinkan Anda melihat input, output, bentuk, dan detail lainnya.

Grafik konseptual

Selain grafik eksekusi, TensorBoard juga menampilkan grafik konseptual . Ini hanya tampilan model Keras. Ini mungkin berguna jika Anda menggunakan kembali model yang disimpan dan Anda ingin memeriksa atau memvalidasi strukturnya.

Untuk melihat grafik konseptual, pilih tag "keras". Untuk contoh ini, Anda akan melihat simpul Sequential yang diciutkan. Klik dua kali node untuk melihat struktur model:


Grafik fungsi tf.

Contoh-contoh sejauh ini telah menggambarkan grafik dari model Keras, di mana grafik telah dibuat dengan mendefinisikan lapisan Keras dan memanggil Model.fit ().

Anda mungkin menghadapi situasi di mana Anda perlu menggunakan anotasi tf.function untuk "tanda tangan" , yaitu, mentransformasikan, fungsi perhitungan Python menjadi grafik TensorFlow berkinerja tinggi. Untuk situasi ini, Anda menggunakan TensorFlow Summary Trace API untuk mencatat fungsi-fungsi yang ditandatangani untuk visualisasi di TensorBoard.

Untuk menggunakan API Jejak Ringkasan:

Anda kemudian dapat menggunakan TensorBoard untuk melihat bagaimana fungsi Anda berperilaku.

 # The function to be traced.
@tf.function
def my_func(x, y):
  # A simple hand-rolled layer.
  return tf.nn.relu(tf.matmul(x, y))

# Set up logging.
stamp = datetime.now().strftime("%Y%m%d-%H%M%S")
logdir = 'logs/func/%s' % stamp
writer = tf.summary.create_file_writer(logdir)

# Sample data for your function.
x = tf.random.uniform((3, 3))
y = tf.random.uniform((3, 3))

# Bracket the function call with
# tf.summary.trace_on() and tf.summary.trace_export().
tf.summary.trace_on(graph=True, profiler=True)
# Call only one tf.function when tracing.
z = my_func(x, y)
with writer.as_default():
  tf.summary.trace_export(
      name="my_func_trace",
      step=0,
      profiler_outdir=logdir)
 
 %tensorboard --logdir logs/func
 

Anda sekarang dapat melihat struktur fungsi Anda sebagaimana dipahami oleh TensorBoard. Klik pada radiobutton "Profil" untuk melihat statistik CPU dan memori.