نمایش داده های متنی در TensorBoard

مشاهده در TensorFlow.org در Google Colab اجرا شود مشاهده منبع در GitHub دانلود دفترچه یادداشت

بررسی اجمالی

با استفاده از TensorFlow متن خلاصه API، شما به راحتی می توانید خودسرانه متن ورود و مشاهده آن در TensorBoard. این می‌تواند برای نمونه‌برداری و بررسی داده‌های ورودی شما، یا ثبت ابرداده‌های اجرایی یا متن تولید شده بسیار مفید باشد. همچنین می‌توانید داده‌های تشخیصی را به‌عنوان متن ثبت کنید که می‌تواند در مسیر توسعه مدل شما مفید باشد.

در این آموزش، چند مورد استفاده اساسی از Text Summary API را امتحان خواهید کرد.

برپایی

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

ثبت یک تکه متن

برای اینکه بفهمید Text Summary API چگونه کار می کند، به سادگی می خواهید کمی از متن را وارد کنید و ببینید که چگونه در 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)

اکنون از TensorBoard برای بررسی متن استفاده کنید. چند ثانیه صبر کنید تا رابط کاربری به بالا بچرخد.

%tensorboard --logdir logs

سازماندهی جریان های متنی متعدد

اگر چندین جریان متن دارید، می‌توانید آنها را در فضاهای نام جداگانه نگه دارید تا به سازماندهی آنها کمک کنید، درست مانند اسکالرها یا داده‌های دیگر.

توجه داشته باشید که اگر متن را در چندین مرحله ثبت کنید، TensorBoard مراحل را برای نمایش زیر نمونه‌برداری می‌کند تا ارائه قابل مدیریت باشد. شما می توانید نرخ نمونه برداری با استفاده از کنترل --samples_per_plugin پرچم.

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

تفسیر مارک داون

TensorBoard خلاصه‌های متن را به‌عنوان Markdown تفسیر می‌کند، زیرا قالب‌بندی غنی می‌تواند خواندن و درک داده‌هایی را که ثبت می‌کنید آسان‌تر کند، همانطور که در زیر نشان داده شده است. (اگر شما تفسیر نشانه دار را نمی خواهم، و این موضوع برای راه حل برای تفسیر سرکوب می کنند.)

# 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