इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

नोटबुक में 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 नोटबुक संदर्भ के अंदर। ऐसा करने का एक तरीका पर्यावरण के bin निर्देशिका को PATH में kernel_spec करने के लिए kernel_spec को संशोधित करना है, जैसा कि यहां वर्णित है

मामले में आप एक चल रहे हैं डोकर की छवि का उपयोग करते हुए TensorFlow की रात Jupyter नोटबुक सर्वर , यह न केवल नोटबुक के बंदरगाह, लेकिन TensorBoard के बंदरगाह का पर्दाफाश करने के लिए आवश्यक है।

इस प्रकार, निम्नलिखित कमांड के साथ कंटेनर चलाएं:

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

जहाँ -p 6006 TensorBoard का डिफ़ॉल्ट पोर्ट है। यह आपके लिए एक TensorBoard उदाहरण चलाने के लिए एक पोर्ट आवंटित करेगा। समवर्ती उदाहरणों के लिए, अधिक बंदरगाहों को आवंटित करना आवश्यक है।

 # Load the TensorBoard notebook extension
%load_ext tensorboard
 

TensorFlow, डेटाटाइम और ओएस आयात करें:

 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')
  ])
 

केरस और टेन्सरबोर्ड कॉलबैक का उपयोग करके मॉडल को प्रशिक्षित करें:

 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
 

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

%tensorboard जादू का TensorBoard कमांड लाइन आह्वान के समान ही प्रारूप है, लेकिन इसके सामने एक % -sign है।

आप 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

आप थोड़े और नियंत्रण के लिए 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)