নোটবুকে টেনসরবোর্ড ব্যবহার করা

TensorFlow.org এ দেখুন Google Colab-এ চালান GitHub-এ উৎস দেখুন নোটবুক ডাউনলোড করুন

TensorBoard সরাসরি যেমন নোটবুক অভিজ্ঞতা মধ্যে ব্যবহার করা যেতে পারে Colab এবং Jupyter । এটি ফলাফল শেয়ার করা, বিদ্যমান ওয়ার্কফ্লোতে টেনসরবোর্ডকে একীভূত করা এবং স্থানীয়ভাবে কিছু ইনস্টল না করে টেনসরবোর্ড ব্যবহার করার জন্য সহায়ক হতে পারে।

সেটআপ

TF 2.0 ইনস্টল করে এবং TensorBoard নোটবুক এক্সটেনশন লোড করে শুরু করুন:

Jupyter ব্যবহারকারীদের জন্য: আপনি একই virtualenv মধ্যে Jupyter এবং TensorBoard ইনস্টল করে থাকেন তাহলে, তাহলে আপনি যেতে ভাল হওয়া উচিত। আপনি একটি আরো জটিল সেটআপ, একটি বিশ্বব্যাপী Jupyter ইনস্টলেশন ও বিভিন্ন Conda / virtualenv পরিবেশের জন্য কার্নেলের মত ব্যবহার করছেন, তাহলে আপনি অবশ্যই নিশ্চিত করতে হবে যে tensorboard বাইনারি আপনার উপর PATH Jupyter নোটবুক প্রসঙ্গ ভিতরে। ওয়ান ওয়ে এই কাজ করতে সংশোধন করতে হয় kernel_spec পরিবেশ এর পূর্বে লিখুন করার bin করার ডিরেক্টরির PATH , যেমন এখানে বর্ণিত

Docker ব্যবহারকারীদের জন্য: যদি আপনি একটি দৌড়াচ্ছে Docker ভাবমূর্তি ব্যবহার TensorFlow এর রাত্রিকালীন Jupyter নোটবুক সার্ভার , তাই না শুধুমাত্র নোটবুক এর পোর্ট, কিন্তু TensorBoard এর পোর্ট এক্সপোজ করা প্রয়োজন। সুতরাং, নিম্নলিখিত কমান্ড দিয়ে ধারক চালান:

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

যেখানে -p 6006 TensorBoard ডিফল্ট পোর্ট। এটি আপনাকে একটি টেনসরবোর্ড ইনস্ট্যান্স চালানোর জন্য একটি পোর্ট বরাদ্দ করবে। সমসাময়িক উদাহরণ পেতে, আরও পোর্ট বরাদ্দ করা প্রয়োজন। এছাড়াও, পাস --bind_all করতে %tensorboard ধারক বাইরে বন্দর এক্সপোজ করতে।

# Load the TensorBoard notebook extension
%load_ext tensorboard

টেনসরফ্লো, তারিখ সময় এবং ওএস আমদানি করুন:

import tensorflow as tf
import datetime, os

নোটবুকে টেনসরবোর্ড

ডাউনলোড 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 কমান্ড লাইন আবাহন যেমন ঠিক একই বিন্যাস রয়েছে, কিন্তু একটি সঙ্গে % এটা সামনে -sign।

আপনি প্রগতিতে নিরীক্ষণ করার জন্য প্রশিক্ষণের আগে TensorBoard শুরু করতে পারেন:

%tensorboard --logdir logs

একই কমান্ড জারি করে একই টেনসরবোর্ড ব্যাকএন্ড পুনরায় ব্যবহার করা হয়। একটি ভিন্ন লগ ডিরেক্টরি নির্বাচন করা হলে, টেনসরবোর্ডের একটি নতুন উদাহরণ খোলা হবে। পোর্ট স্বয়ংক্রিয়ভাবে পরিচালিত হয়.

একটি নতুন মডেলের প্রশিক্ষণ শুরু করুন এবং প্রতি 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

আপনি ব্যবহার করতে পারেন tensorboard.notebook একটি বিট আরো নিয়ন্ত্রণের জন্য API গুলি:

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)