नोटबुक में TensorBoard का उपयोग करना

TensorFlow.org पर देखें Google Colab में चलाएं GitHub पर स्रोत देखें नोटबुक डाउनलोड करें

TensorBoard सीधे जैसे नोटबुक अनुभवों के भीतर इस्तेमाल किया जा सकता Colab और Jupyter । यह परिणाम साझा करने, TensorBoard को मौजूदा वर्कफ़्लो में एकीकृत करने और स्थानीय रूप से कुछ भी स्थापित किए बिना TensorBoard का उपयोग करने में मददगार हो सकता है।

सेट अप

TF 2.0 स्थापित करके और TensorBoard नोटबुक एक्सटेंशन लोड करके प्रारंभ करें:

Jupyter उपयोगकर्ताओं के लिए: यदि आप एक ही virtualenv में Jupyter और TensorBoard स्थापित किया है, तो आप जाने के लिए अच्छा होना चाहिए। आप एक अधिक जटिल सेटअप, एक वैश्विक Jupyter स्थापना और विभिन्न Conda / virtualenv वातावरण के लिए कर्नेल की तरह उपयोग कर रहे हैं, तो आप यह सुनिश्चित करना चाहिए कि tensorboard द्विआधारी अपने पर है PATH Jupyter नोटबुक संदर्भ के अंदर। एक तरह से यह करने के लिए संशोधित करने के लिए है kernel_spec पर्यावरण के पहले जोड़ें करने के लिए bin करने के लिए निर्देशिका PATH , के रूप में यहाँ वर्णित

डोकर उपयोगकर्ताओं के लिए: मामले में आप एक चल रहे हैं डोकर की छवि का उपयोग करते हुए TensorFlow की रात Jupyter नोटबुक सर्वर , यह न केवल नोटबुक के बंदरगाह, लेकिन 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, डेटाटाइम और os आयात करें:

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 शुरू magics :

%tensorboard --logdir logs

अब आप स्केलर, ग्राफ़, हिस्टोग्राम और अन्य जैसे डैशबोर्ड देख सकते हैं। कुछ डैशबोर्ड अभी तक Colab में उपलब्ध नहीं हैं (जैसे कि प्रोफ़ाइल प्लग इन)।

%tensorboard जादू TensorBoard कमांड लाइन मंगलाचरण के रूप में बिल्कुल एक ही प्रारूप है, लेकिन एक साथ % के सामने रखी गई -sign।

आप TensorBoard की प्रगति पर निगरानी रखने के लिए प्रशिक्षण से पहले उसे प्रारंभ भी कर सकते हैं:

%tensorboard --logdir logs

उसी टेंसरबोर्ड बैकएंड को एक ही कमांड जारी करके पुन: उपयोग किया जाता है। यदि कोई भिन्न लॉग निर्देशिका चुनी जाती है, तो 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

आप उपयोग कर सकते हैं 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)