سخنرانی ها ، جلسات محصول ، کارگاه ها و موارد دیگر را از لیست پخش Google I / O مشاهده کنید

استفاده از TensorBoard در نوت بوک ها

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

TensorBoard می توان به طور مستقیم در تجارب نوت بوک از قبیل استفاده می COLAB و Jupyter . این می تواند برای به اشتراک گذاشتن نتایج ، ادغام TensorBoard در گردش کار موجود و استفاده از TensorBoard بدون نصب هر مورد به صورت محلی مفید باشد.

برپایی

با نصب TF 2.0 و بارگیری پسوند نوت بوک TensorBoard شروع کنید:

برای کاربران Jupyter: اگر Jupyter و TensorBoard را در همان virtualenv نصب کرده اید ، پس باید خوب باشید. اگر از تنظیمات پیچیده تری مانند نصب جهانی Jupyter و هسته برای محیط های مختلف Conda / virtualenv استفاده می کنید ، باید اطمینان حاصل کنید که باینری tensorboard در PATH شما در داخل نوت بوک Jupyter قرار دارد. یکی از روشهای انجام این کار تغییر kernel_spec برای پیش فرض فهرست bin محیط در PATH ، همانطور که در اینجا توضیح داده شده است .

برای کاربران Docker: درصورتی که با استفاده از TensorFlow شبانه یک تصویر Docker از سرور Jupyter Notebook اجرا می کنید ، لازم است که نه تنها پورت نوت بوک ، بلکه پورت TensorBoard نیز آشکار شود. بنابراین ، ظرف را با دستور زیر اجرا کنید:

docker run -it -p 8888:8888 -p 6006:6006 \
tensorflow/tensorflow:nightly-py3-jupyter 

جایی که -p 6006 درگاه پیش فرض TensorBoard است. این یک پورت را برای شما اختصاص می دهد تا یک نمونه از TensorBoard را اجرا کنید. برای داشتن نمونه های همزمان ، اختصاص پورت های بیشتر ضروری است. همچنین ، --bind_all به %tensorboard تا درگاه خارج از ظرف نشان داده شود.

# Load the TensorBoard notebook extension
%load_ext tensorboard

وارد کردن TensorFlow ، زمان داده و سیستم عامل:

import tensorflow as tf
import datetime, os

TensorBoard در دفترها

مجموعه داده FashionMNIST را بارگیری کرده و مقیاس بندی کنید:

fashion_mnist = tf.keras.datasets.fashion_mnist

(x_train, y_train),(x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step

یک مدل بسیار ساده ایجاد کنید:

def create_model():
  return tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
  ])

با استفاده از Keras و TensorBoard پاسخ به مدل دهید:

def train_model():

  model = create_model()
  model.compile(optimizer='adam',
                loss='sparse_categorical_crossentropy',
                metrics=['accuracy'])

  logdir = os.path.join("logs", datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
  tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1)

  model.fit(x=x_train, 
            y=y_train, 
            epochs=5, 
            validation_data=(x_test, y_test), 
            callbacks=[tensorboard_callback])

train_model()
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 182us/sample - loss: 0.4976 - accuracy: 0.8204 - val_loss: 0.4143 - val_accuracy: 0.8538
Epoch 2/5
60000/60000 [==============================] - 10s 174us/sample - loss: 0.3845 - accuracy: 0.8588 - val_loss: 0.3855 - val_accuracy: 0.8626
Epoch 3/5
60000/60000 [==============================] - 10s 175us/sample - loss: 0.3513 - accuracy: 0.8705 - val_loss: 0.3740 - val_accuracy: 0.8607
Epoch 4/5
60000/60000 [==============================] - 11s 177us/sample - loss: 0.3287 - accuracy: 0.8793 - val_loss: 0.3596 - val_accuracy: 0.8719
Epoch 5/5
60000/60000 [==============================] - 11s 178us/sample - loss: 0.3153 - accuracy: 0.8825 - val_loss: 0.3360 - val_accuracy: 0.8782

شروع TensorBoard در نوت بوک با استفاده از جادوهای :

%tensorboard --logdir logs

اکنون می توانید داشبوردهایی مانند مقیاس کش ها ، نمودارها ، هیستوگرام ها و سایر موارد را مشاهده کنید برخی داشبوردها هنوز در Colab در دسترس نیستند (مانند پلاگین نمایه).

جادوی %tensorboard دقیقاً همان فرمت فراخوانی خط فرمان TensorBoard را دارد ، اما در مقابل آن علامت % وجود دارد.

همچنین می توانید TensorBoard را قبل از آموزش برای نظارت بر انجام آن شروع کنید:

%tensorboard --logdir logs

با صدور همان دستور باطن TensorBoard مجدداً مورد استفاده قرار می گیرد. اگر فهرست دیگری از سیاهههای مربوط انتخاب شود ، نمونه جدیدی از TensorBoard باز می شود. بنادر به طور خودکار مدیریت می شوند.

آموزش یک مدل جدید را شروع کنید و هر 30 ثانیه به طور خودکار به روزرسانی TensorBoard را تماشا کنید یا با دکمه بالا سمت راست آن را تازه کنید:

train_model()
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 184us/sample - loss: 0.4968 - accuracy: 0.8223 - val_loss: 0.4216 - val_accuracy: 0.8481
Epoch 2/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3847 - accuracy: 0.8587 - val_loss: 0.4056 - val_accuracy: 0.8545
Epoch 3/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3495 - accuracy: 0.8727 - val_loss: 0.3600 - val_accuracy: 0.8700
Epoch 4/5
60000/60000 [==============================] - 11s 179us/sample - loss: 0.3282 - accuracy: 0.8795 - val_loss: 0.3636 - val_accuracy: 0.8694
Epoch 5/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3115 - accuracy: 0.8839 - val_loss: 0.3438 - val_accuracy: 0.8764

برای کنترل بیشتر می توانید از API های tensorboard.notebook استفاده کنید:

from tensorboard import notebook
notebook.list() # View open TensorBoard instances
Known TensorBoard instances:

  - port 6006: logdir logs (started 0:00:54 ago; pid 265)
# Control TensorBoard display. If no port is provided, 
# the most recently launched TensorBoard is used
notebook.display(port=6006, height=1000)