Menampilkan data teks di TensorBoard

Lihat di TensorFlow.org Jalankan di Google Colab Lihat sumber di GitHub Unduh buku catatan

Ringkasan

Menggunakan TensorFlow Teks Ringkasan API, Anda dapat dengan mudah login teks sewenang-wenang dan melihatnya di TensorBoard. Ini bisa sangat membantu untuk mengambil sampel dan memeriksa data input Anda, atau untuk merekam metadata eksekusi atau teks yang dihasilkan. Anda juga dapat mencatat data diagnostik sebagai teks yang dapat membantu dalam pengembangan model Anda.

Dalam tutorial ini, Anda akan mencoba beberapa kasus penggunaan dasar dari Text Summary API.

Mempersiapkan

try:
  # %tensorflow_version only exists in Colab.
  %tensorflow_version 2.x
except Exception:
  pass

# Load the TensorBoard notebook extension.
%load_ext tensorboard
import tensorflow as tf

from datetime import datetime
import json
from packaging import version
import tempfile

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

Mencatat satu bagian teks

Untuk memahami cara kerja API Ringkasan Teks, Anda cukup mencatat sedikit teks dan melihat bagaimana teks itu disajikan di TensorBoard.

my_text = "Hello world! 😃"
# Clear out any prior log data.
!rm -rf logs

# Sets up a timestamped log directory.
logdir = "logs/text_basics/" + datetime.now().strftime("%Y%m%d-%H%M%S")
# Creates a file writer for the log directory.
file_writer = tf.summary.create_file_writer(logdir)

# Using the file writer, log the text.
with file_writer.as_default():
  tf.summary.text("first_text", my_text, step=0)

Sekarang, gunakan TensorBoard untuk memeriksa teks. Tunggu beberapa detik hingga UI berputar.

%tensorboard --logdir logs

Mengatur beberapa aliran teks

Jika Anda memiliki beberapa aliran teks, Anda dapat menyimpannya di ruang nama terpisah untuk membantu mengaturnya, seperti skalar atau data lainnya.

Perhatikan bahwa jika Anda mencatat teks di banyak langkah, TensorBoard akan membuat subsampel langkah-langkah untuk ditampilkan agar presentasi dapat dikelola. Anda dapat mengontrol sampling rate menggunakan --samples_per_plugin bendera.

# Sets up a second directory to not overwrite the first one.
logdir = "logs/multiple_texts/" + datetime.now().strftime("%Y%m%d-%H%M%S")
# Creates a file writer for the log directory.
file_writer = tf.summary.create_file_writer(logdir)

# Using the file writer, log the text.
with file_writer.as_default():
  with tf.name_scope("name_scope_1"):
    for step in range(20):
      tf.summary.text("a_stream_of_text", f"Hello from step {step}", step=step)
      tf.summary.text("another_stream_of_text", f"This can be kept separate {step}", step=step)
  with tf.name_scope("name_scope_2"):
    tf.summary.text("just_from_step_0", "This is an important announcement from step 0", step=0)
%tensorboard --logdir logs/multiple_texts --samples_per_plugin 'text=5'

Interpretasi penurunan harga

TensorBoard menafsirkan ringkasan teks sebagai Penurunan harga, karena pemformatan kaya dapat membuat data yang Anda log lebih mudah dibaca dan dipahami, seperti yang ditunjukkan di bawah ini. (Jika Anda tidak ingin penurunan harga interpretasi, melihat masalah ini untuk workarounds untuk interpretasi menekan.)

# Sets up a third timestamped log directory under "logs"
logdir = "logs/markdown/" + datetime.now().strftime("%Y%m%d-%H%M%S")
# Creates a file writer for the log directory.
file_writer = tf.summary.create_file_writer(logdir)

some_obj_worth_noting = {
  "tfds_training_data": {
      "name": "mnist",
      "split": "train",
      "shuffle_files": "True",
  },
  "keras_optimizer": {
      "name": "Adagrad",
      "learning_rate": "0.001",
      "epsilon": 1e-07,
  },
  "hardware": "Cloud TPU",
}


# TODO: Update this example when TensorBoard is released with
# https://github.com/tensorflow/tensorboard/pull/4585
# which supports fenced codeblocks in Markdown.
def pretty_json(hp):
  json_hp = json.dumps(hp, indent=2)
  return "".join("\t" + line for line in json_hp.splitlines(True))

markdown_text = """
### Markdown Text

TensorBoard supports basic markdown syntax, including:

    preformatted code

**bold text**

| and | tables |
| ---- | ---------- |
| among | others |
"""

with file_writer.as_default():
  tf.summary.text("run_params", pretty_json(some_obj_worth_noting), step=0)
  tf.summary.text("markdown_jubiliee", markdown_text, step=0)
%tensorboard --logdir logs/markdown