Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

TensorFlow Grafiğini İnceleme

TensorFlow.org üzerinde görüntüle Google Colab'da yayınla Kaynağı GitHub'da görüntüle

genel bakış

TensorBoard'un Grafikler gösterge tablosu , TensorFlow modelinizi incelemek için güçlü bir araçtır. Modelinizin yapısının kavramsal bir grafiğini hızlı bir şekilde görüntüleyebilir ve tasarladığınız tasarıma uygun olmasını sağlayabilirsiniz. Ayrıca, TensorFlow'un programınızı nasıl anladığını anlamak için op düzeyinde bir grafik de görüntüleyebilirsiniz. İşletim düzeyi grafiğini incelemek, modelinizi nasıl değiştireceğiniz konusunda size fikir verebilir. Örneğin, eğitim beklenenden yavaş ilerliyorsa modelinizi yeniden tasarlayabilirsiniz.

Bu eğitimde, grafik tanılama verilerinin nasıl oluşturulacağı ve TensorBoard'un Grafikler gösterge tablosunda nasıl görselleştirileceği hakkında hızlı bir genel bakış sunulmaktadır. Fashion-MNIST veri kümesi için basit bir Keras Sıralı modeli tanımlayacak ve eğitecek ve model grafiklerinizi nasıl kaydedeceğinizi ve inceleyeceğinizi öğreneceksiniz. Yeni tf.function ek açıklaması kullanılarak oluşturulan işlevler için grafik verileri oluşturmak amacıyla bir izleme API'sı da kullanırsınız.

Kurmak

 # 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/ 
 

Bir Keras modeli tanımlayın

Bu örnekte, sınıflandırıcı basit bir dört katmanlı Sıralı modeldir.

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

Eğitim verilerini indirin ve hazırlayın.

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

Model ve günlük verilerini eğitme

Eğitimden önce, günlük dizinini belirterek Keras TensorBoard geri aramasını tanımlayın. Bu geri aramayı Model.fit () öğesine ileterek, grafik verilerinin TensorBoard'da görselleştirme için günlüğe kaydedildiğinden emin olursunuz.

 # 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>

Op seviyesi grafiği

TensorBoard'u başlatın ve kullanıcı arayüzünün yüklenmesi için birkaç saniye bekleyin. Üst taraftaki “Grafikler” e dokunarak Grafikler kontrol panelini seçin.

 %tensorboard --logdir logs
 

Varsayılan olarak, TensorBoard op-level grafiğini görüntüler . (Solda, “Varsayılan” etiketinin seçili olduğunu görebilirsiniz.) Grafiğin ters çevrildiğini unutmayın; veriler aşağıdan yukarıya doğru akar, bu nedenle koda göre baş aşağıdır. Bununla birlikte, grafiğin Keras model tanımıyla, diğer hesaplama düğümlerine ekstra kenarlarla yakından eşleştiğini görebilirsiniz.

Grafikler genellikle çok büyük olduğundan grafik görselleştirmeyi değiştirebilirsiniz:

  • Yakınlaştırmak ve uzaklaştırmak için kaydırın
  • Tavaya sürükleyin
  • Çift tıklama düğüm genişlemesini değiştirir (bir düğüm diğer düğümler için bir kap olabilir)

Bir düğüme tıklayarak meta verileri de görebilirsiniz. Bu, girdileri, çıktıları, şekilleri ve diğer ayrıntıları görmenizi sağlar.

Kavramsal grafik

Yürütme grafiğine ek olarak, TensorBoard kavramsal bir grafik de görüntüler. Bu sadece Keras modelinin bir görüntüsü. Kaydedilmiş bir modeli tekrar kullanıyorsanız ve yapısını incelemek veya doğrulamak istiyorsanız bu yararlı olabilir.

Kavramsal grafiği görmek için “keras” etiketini seçin. Bu örnek için, daraltılmış bir Sıralı düğüm göreceksiniz. Modelin yapısını görmek için düğüme çift tıklayın:


Tf fonksiyonlarının grafikleri

Şimdiye kadar örnekler, Keras katmanlarını tanımlayıp Model.fit () çağırarak grafiklerin yaratıldığı Keras modellerinin grafiklerini tanımladı.

Python hesaplama işlevini " tf.function " , yani yüksek performanslı TensorFlow grafiğine dönüştürmek için tf.function ek açıklamasını kullanmanız gereken bir durumla karşılaşabilirsiniz. Bu durumlarda, TensorBoard'da görselleştirme için imzalı işlevleri günlüğe kaydetmek için TensorFlow Özet İzleme API'sini kullanırsınız.

Özet İzleme API'sını kullanmak için:

Ardından, işlevinizin nasıl davrandığını görmek için TensorBoard'u kullanabilirsiniz.

 # 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
 

Artık fonksiyonunuzun yapısını TensorBoard tarafından anlaşıldığı gibi görebilirsiniz. CPU ve bellek istatistiklerini görmek için "Profil" radyo düğmesine tıklayın.