TensorBoard'da metin verilerini görüntüleme

TensorFlow.org'da görüntüleyin Google Colab'da çalıştırın Kaynağı GitHub'da görüntüleyin Not defterini indir

genel bakış

TensorFlow Summary API kullanarak, kolayca rasgele bir metin giriş ve TensorBoard içinde görebilirsiniz. Bu, giriş verilerinizi örneklemek ve incelemek veya yürütme meta verilerini veya oluşturulan metni kaydetmek için son derece yararlı olabilir. Ayrıca, model geliştirme sürecinde yardımcı olabilecek metin olarak tanılama verilerini kaydedebilirsiniz.

Bu öğreticide, Metin Özeti API'sinin bazı temel kullanım örneklerini deneyeceksiniz.

Kurmak

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

Tek bir metin parçasının günlüğe kaydedilmesi

Metin Özeti API'sinin nasıl çalıştığını anlamak için, sadece bir miktar metin kaydedecek ve bunun TensorBoard'da nasıl sunulduğunu göreceksiniz.

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)

Şimdi metni incelemek için TensorBoard'u kullanın. Kullanıcı arayüzünün dönmesi için birkaç saniye bekleyin.

%tensorboard --logdir logs

Birden çok metin akışını düzenleme

Birden çok metin akışınız varsa, skalerler veya diğer veriler gibi, bunları düzenlemeye yardımcı olması için ayrı ad alanlarında tutabilirsiniz.

Metni birçok adımda günlüğe kaydederseniz, TensorBoard'un sunumu yönetilebilir hale getirmek için görüntülenecek adımları alt örnekleyeceğini unutmayın. Sen kullanarak örnekleme oranını kontrol edebilirsiniz --samples_per_plugin bayrağı.

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

Markdown yorumu

TensorBoard, metin özetlerini Markdown olarak yorumlar, çünkü zengin biçimlendirme, günlüğe kaydettiğiniz verilerin aşağıda gösterildiği gibi okunmasını ve anlaşılmasını kolaylaştırabilir. (Eğer Markdown yorumunu istemiyorsanız, bkz bu sorunu bastırmak yorumlanması için çözümlere ilişkin.)

# 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