مشاهده در 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