Trang này được dịch bởi Cloud Translation API.
Switch to English

Kiểm tra đồ thị hàng chục

Xem trên TensorFlow.org Chạy trong Google Colab Xem nguồn trên GitHub

Tổng quat

Bảng điều khiển đồ thị của TensorBoard là một công cụ mạnh mẽ để kiểm tra mô hình TensorFlow của bạn. Bạn có thể nhanh chóng xem biểu đồ khái niệm về cấu trúc mô hình của bạn và đảm bảo nó phù hợp với thiết kế dự định của bạn. Bạn cũng có thể xem biểu đồ cấp op để hiểu cách thức TensorFlow hiểu chương trình của bạn. Kiểm tra biểu đồ cấp op có thể cho bạn cái nhìn sâu sắc về cách thay đổi mô hình của bạn. Ví dụ, bạn có thể thiết kế lại mô hình của mình nếu việc đào tạo tiến triển chậm hơn dự kiến.

Hướng dẫn này trình bày tổng quan nhanh về cách tạo dữ liệu chẩn đoán biểu đồ và trực quan hóa nó trong bảng điều khiển Biểu đồ của TensorBoard. Bạn sẽ xác định và huấn luyện một mô hình Keras Sequential đơn giản cho bộ dữ liệu Fashion-MNIST và tìm hiểu cách ghi nhật ký và kiểm tra biểu đồ mô hình của bạn. Bạn cũng sẽ sử dụng API theo dõi để tạo dữ liệu biểu đồ cho các chức năng được tạo bằng cách sử dụng chú thích tf.function mới.

Thiết lập

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

Xác định mô hình Keras

Trong ví dụ này, bộ phân loại là một mô hình tuần tự bốn lớp đơn giản.

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

Tải về và chuẩn bị dữ liệu đào tạo.

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

Đào tạo mô hình và dữ liệu nhật ký

Trước khi đào tạo, xác định cuộc gọi lại Keras TensorBoard , chỉ định thư mục nhật ký. Bằng cách chuyển cuộc gọi lại này đến Model.fit (), bạn đảm bảo rằng dữ liệu biểu đồ được ghi lại để hiển thị trực quan trong 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>

Đồ thị cấp độ

Khởi động TensorBoard và đợi vài giây để UI tải. Chọn bảng điều khiển Đồ thị bằng cách nhấn vào Đồ thị hình chữ nhật ở trên cùng.

 %tensorboard --logdir logs
 

Theo mặc định, TensorBoard hiển thị biểu đồ mức op . (Ở bên trái, bạn có thể thấy thẻ Mặc định của Viking được chọn.) Lưu ý rằng biểu đồ được đảo ngược; dữ liệu chảy từ dưới lên trên, do đó, nó lộn ngược so với mã. Tuy nhiên, bạn có thể thấy rằng biểu đồ phù hợp chặt chẽ với định nghĩa mô hình Keras, với các cạnh bổ sung cho các nút tính toán khác.

Đồ thị thường rất lớn, vì vậy bạn có thể thao tác trực quan hóa đồ thị:

  • Cuộn để phóng to và thu nhỏ
  • Kéo để xoay
  • Nhấp đúp vào mở rộng nút mở rộng (một nút có thể là vùng chứa cho các nút khác)

Bạn cũng có thể thấy siêu dữ liệu bằng cách nhấp vào một nút. Điều này cho phép bạn xem đầu vào, đầu ra, hình dạng và các chi tiết khác.

Đồ thị khái niệm

Ngoài biểu đồ thực thi, TensorBoard cũng hiển thị biểu đồ khái niệm . Đây là một cái nhìn của mô hình Keras. Điều này có thể hữu ích nếu bạn đang sử dụng lại một mô hình đã lưu và bạn muốn kiểm tra hoặc xác nhận cấu trúc của nó.

Để xem biểu đồ khái niệm, hãy chọn thẻ của máy ảnh. Trong ví dụ này, bạn sẽ thấy một nút Tuần tự bị sập. Bấm đúp vào nút để xem cấu trúc của mô hình:


Đồ thị của tf.fifts

Các ví dụ cho đến nay đã mô tả các biểu đồ của các mô hình Keras, trong đó các biểu đồ đã được tạo bằng cách xác định các lớp Keras và gọi Model.fit ().

Bạn có thể gặp một tình huống mà bạn cần sử dụng chú thích tf.function để "chữ ký" , nghĩa là biến đổi, hàm tính toán Python thành biểu đồ TensorFlow hiệu suất cao. Đối với những tình huống này, bạn sử dụng API Trace Summary Trace API để ghi nhật ký các chức năng có chữ ký để hiển thị trong TensorBoard.

Để sử dụng API Tóm tắt:

  • Xác định và chú thích một hàm với tf.function
  • Sử dụng tf.summary.trace_on() ngay trước trang web gọi chức năng của bạn.
  • Thêm thông tin hồ sơ (bộ nhớ, thời gian CPU) vào biểu đồ bằng cách chuyển profiler=True
  • Với trình ghi tệp Tóm tắt, hãy gọi tf.summary.trace_export() để lưu dữ liệu nhật ký

Sau đó, bạn có thể sử dụng TensorBoard để xem chức năng của bạn hoạt động như thế nào.

 # 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
 

Bây giờ bạn có thể thấy cấu trúc của chức năng của bạn theo cách hiểu của TensorBoard. Nhấp vào nút "Hồ sơ" để xem số liệu thống kê về CPU và bộ nhớ.