TensorBoard ट्यूटोरियल: TensorFlow ग्राफ विज़ुअलाइज़ेशन [उदाहरण]

टेंसरबोर्ड क्या है?

टेंसरबोर्ड यह इंटरफ़ेस ग्राफ़ को विज़ुअलाइज़ करने और मॉडल को समझने, डीबग करने और ऑप्टिमाइज़ करने के लिए अन्य टूल का उपयोग करता है। यह एक ऐसा टूल है जो मशीन लर्निंग वर्कफ़्लो के लिए माप और विज़ुअलाइज़ेशन प्रदान करता है। यह नुकसान और सटीकता, मॉडल ग्राफ़ विज़ुअलाइज़ेशन, कम-आयामी स्थानों पर प्रोजेक्ट एम्बेडिंग आदि जैसे मेट्रिक्स को ट्रैक करने में मदद करता है।

Tensorboard उदाहरण का उपयोग करके TensorFlow ग्राफ़ विज़ुअलाइज़ेशन

नीचे दी गई छवि TensorBoard ग्राफ़ से ली गई है जिसे आप इस TensorBoard ट्यूटोरियल में जेनरेट करेंगे। यह मुख्य पैनल है:

TensorFlow ग्राफ विज़ुअलाइज़ेशन
TensorFlow ग्राफ विज़ुअलाइज़ेशन

नीचे दी गई तस्वीर से, आप TensorBoard ग्राफ़ विज़ुअलाइज़ेशन का पैनल देख सकते हैं। पैनल में अलग-अलग टैब होते हैं, जो मॉडल चलाते समय आपके द्वारा जोड़ी गई जानकारी के स्तर से जुड़े होते हैं।

टेंसरबोर्ड ग्राफ़

टेंसरबोर्ड ग्राफ़
  • अदिश: मॉडल प्रशिक्षण के दौरान विभिन्न उपयोगी जानकारी दिखाएं
  • रेखाचित्र: मॉडल दिखाएं
  • हिस्टोग्राम: हिस्टोग्राम के साथ भार प्रदर्शित करें
  • वितरण: भार का वितरण प्रदर्शित करें
  • प्रोजेक्टर: मुख्य घटक विश्लेषण और T-SNE एल्गोरिथ्म दिखाएँ। आयाम घटाने के लिए इस्तेमाल की जाने वाली तकनीक

इस TensorBoard ट्यूटोरियल के दौरान, आप एक सरल डीप लर्निंग मॉडल को प्रशिक्षित करेंगे। आप भविष्य के ट्यूटोरियल में सीखेंगे कि यह कैसे काम करता है।

यदि आप ग्राफ को देखें तो आप समझ सकते हैं कि मॉडल कैसे काम करता है।

  1. मॉडल में डेटा को पंक्तिबद्ध करें: बैच आकार के बराबर डेटा की मात्रा को मॉडल में पुश करें, अर्थात, प्रत्येक पुनरावृत्ति के बाद डेटा फ़ीड की संख्या
  2. डेटा को टेंसर में फीड करें
  3. मॉडल को प्रशिक्षित करें
  4. प्रशिक्षण के दौरान बैचों की संख्या प्रदर्शित करें। मॉडल को डिस्क पर सहेजें।

Tensorboard उदाहरण का उपयोग करके TensorFlow ग्राफ़ विज़ुअलाइज़ेशन

टेंसरबोर्ड के पीछे मूल विचार यह है कि न्यूरल नेटवर्क को ब्लैक बॉक्स के रूप में जाना जा सकता है और हमें इस बॉक्स के अंदर क्या है, इसका निरीक्षण करने के लिए एक उपकरण की आवश्यकता होती है। आप टेंसरबोर्ड को न्यूरल नेटवर्क में गोता लगाने के लिए एक टॉर्च के रूप में कल्पना कर सकते हैं।

यह संचालनों के बीच निर्भरता को समझने में मदद करता है, भार की गणना कैसे की जाती है, हानि फ़ंक्शन और बहुत सी अन्य उपयोगी जानकारी प्रदर्शित करता है। जब आप इन सभी सूचनाओं को एक साथ लाते हैं, तो आपके पास डीबग करने और मॉडल को बेहतर बनाने के तरीके खोजने के लिए एक बढ़िया टूल होता है।

टेंसरबोर्ड ग्राफ कितना उपयोगी हो सकता है, इसका अंदाजा लगाने के लिए नीचे दी गई तस्वीर देखें:

टेंसरबोर्ड ग्राफ़
टेंसरबोर्ड ग्राफ

एक न्यूरल नेटवर्क यह तय करता है कि विभिन्न "न्यूरॉन्स" को कैसे जोड़ा जाए और मॉडल द्वारा परिणाम की भविष्यवाणी करने से पहले कितनी परतें होनी चाहिए। एक बार जब आप आर्किटेक्चर को परिभाषित कर लेते हैं, तो आपको न केवल मॉडल को प्रशिक्षित करने की आवश्यकता होती है, बल्कि भविष्यवाणी की सटीकता की गणना करने के लिए एक मीट्रिक भी चाहिए। इस मीट्रिक को एक के रूप में संदर्भित किया जाता है लॉस फंकशन। इसका उद्देश्य हानि फ़ंक्शन को कम करना है। दूसरे शब्दों में, इसका मतलब है कि मॉडल कम त्रुटियाँ कर रहा है। सभी मशीन लर्निंग एल्गोरिदम तब तक गणनाओं को कई बार दोहराएंगे जब तक कि हानि एक समतल रेखा तक नहीं पहुंच जाती। इस हानि फ़ंक्शन को कम करने के लिए, आपको एक परिभाषित करने की आवश्यकता है सीखने की दर. यह वह गति है जिस पर आप मॉडल को सीखना चाहते हैं। यदि आप सीखने की दर बहुत अधिक निर्धारित करते हैं, तो मॉडल के पास कुछ भी सीखने का समय नहीं होता है। बाईं तस्वीर में यही स्थिति है। रेखा ऊपर-नीचे जा रही है, जिसका अर्थ है कि मॉडल शुद्ध अनुमान के साथ परिणाम की भविष्यवाणी करता है। दाईं ओर की तस्वीर दिखाती है कि वक्र के समतल होने तक पुनरावृत्ति पर हानि कम हो रही है, जिसका अर्थ है कि मॉडल ने समाधान पा लिया है।

TensorBoard ऐसे मेट्रिक्स को विज़ुअलाइज़ करने और संभावित समस्याओं को हाइलाइट करने के लिए एक बेहतरीन टूल है। न्यूरल नेटवर्क को समाधान खोजने में घंटों से लेकर हफ़्ते तक का समय लग सकता है। TensorBoard मेट्रिक्स को अक्सर अपडेट करता है। इस मामले में, आपको यह देखने के लिए अंत तक इंतज़ार करने की ज़रूरत नहीं है कि मॉडल सही तरीके से ट्रेन हुआ है या नहीं। आप TensorBoard खोलकर जाँच सकते हैं कि ट्रेनिंग कैसी चल रही है और ज़रूरत पड़ने पर उचित बदलाव कर सकते हैं।

टेंसरबोर्ड का उपयोग कैसे करें?

इस ट्यूटोरियल में, आप सीखेंगे कि MacOS के लिए टर्मिनल से TensorBoard कैसे खोलें और MacOS के लिए कमांड लाइन TensorBoard कैसे खोलें। Windows.

कोड को भविष्य के ट्यूटोरियल में समझाया जाएगा, यहां ध्यान TensorBoard पर है।

सबसे पहले, आपको उन लाइब्रेरीज़ को आयात करना होगा जिनका उपयोग आप प्रशिक्षण के दौरान करेंगे

## Import the library
import tensorflow as tf
import numpy as np

आप डेटा बनाते हैं। यह 10000 पंक्तियों और 5 स्तंभों की एक सरणी है

X_train = (np.random.sample((10000,5)))
y_train =  (np.random.sample((10000,1)))
X_train.shape

उत्पादन

(10000, 5)

नीचे दिए गए कोड डेटा को रूपांतरित करते हैं और मॉडल बनाते हैं।

ध्यान दें कि सीखने की दर 0.1 के बराबर है। यदि आप इस दर को उच्च मान में बदलते हैं, तो मॉडल कोई समाधान नहीं खोज पाएगा। ऊपर दी गई तस्वीर के बाईं ओर यही हुआ है।

अधिकांश समय टेन्सरफ़्लो ट्यूटोरियल, आप TensorFlow अनुमानक का उपयोग करेंगे। यह TensorFlow API है जिसमें सभी गणितीय गणनाएँ शामिल हैं।

लॉग फ़ाइलें बनाने के लिए, आपको पथ निर्दिष्ट करना होगा। यह तर्क model_dir के साथ किया जाता है।

नीचे दिए गए TensorBoard उदाहरण में, आप मॉडल को वर्किंग डायरेक्टरी के अंदर स्टोर करते हैं, यानी, जहाँ आप नोटबुक या पायथन फ़ाइल स्टोर करते हैं। इस पथ के अंदर, TensorFlow एक चाइल्ड फ़ोल्डर नाम linreg के साथ train नामक एक फ़ोल्डर बनाएगा।

feature_columns = [
      tf.feature_column.numeric_column('x', shape=X_train.shape[1:])]
DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns,
# Indicate where to store the log file    
     model_dir='train/linreg',    
     hidden_units=[500, 300],    
     optimizer=tf.train.ProximalAdagradOptimizer(      
          learning_rate=0.1,      
          l1_regularization_strength=0.001    
      )
)

उत्पादन

INFO:tensorflow:Using default config.
INFO:tensorflow:Using config: {'_model_dir': 'train/linreg', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_service': None, '_cluster_spec': <tensorflow.python.training.server_lib.ClusterSpec object at 0x1818e63828>, '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}

इस TensorFlow विज़ुअलाइज़ ग्राफ़ उदाहरण का अंतिम चरण मॉडल को प्रशिक्षित करना है। प्रशिक्षण के दौरान, TensorFlow मॉडल निर्देशिका में जानकारी लिखता है।

# Train the estimator
train_input = tf.estimator.inputs.numpy_input_fn(    
     x={"x": X_train},    
     y=y_train, shuffle=False,num_epochs=None)
DNN_reg.train(train_input,steps=3000)

उत्पादन

INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Create CheckpointSaverHook.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Saving checkpoints for 1 into train/linreg/model.ckpt.
INFO:tensorflow:loss = 40.060104, step = 1
INFO:tensorflow:global_step/sec: 197.061
INFO:tensorflow:loss = 10.62989, step = 101 (0.508 sec)
INFO:tensorflow:global_step/sec: 172.487
INFO:tensorflow:loss = 11.255318, step = 201 (0.584 sec)
INFO:tensorflow:global_step/sec: 193.295
INFO:tensorflow:loss = 10.604872, step = 301 (0.513 sec)
INFO:tensorflow:global_step/sec: 175.378
INFO:tensorflow:loss = 10.090343, step = 401 (0.572 sec)
INFO:tensorflow:global_step/sec: 209.737
INFO:tensorflow:loss = 10.057928, step = 501 (0.476 sec)
INFO:tensorflow:global_step/sec: 171.646
INFO:tensorflow:loss = 10.460144, step = 601 (0.583 sec)
INFO:tensorflow:global_step/sec: 192.269
INFO:tensorflow:loss = 10.529617, step = 701 (0.519 sec)
INFO:tensorflow:global_step/sec: 198.264
INFO:tensorflow:loss = 9.100082, step = 801 (0.504 sec)
INFO:tensorflow:global_step/sec: 226.842
INFO:tensorflow:loss = 10.485607, step = 901 (0.441 sec)
INFO:tensorflow:global_step/sec: 152.929
INFO:tensorflow:loss = 10.052481, step = 1001 (0.655 sec)
INFO:tensorflow:global_step/sec: 166.745
INFO:tensorflow:loss = 11.320213, step = 1101 (0.600 sec)
INFO:tensorflow:global_step/sec: 161.854
INFO:tensorflow:loss = 9.603306, step = 1201 (0.619 sec)
INFO:tensorflow:global_step/sec: 179.074
INFO:tensorflow:loss = 11.110269, step = 1301 (0.556 sec)
INFO:tensorflow:global_step/sec: 202.776
INFO:tensorflow:loss = 11.929443, step = 1401 (0.494 sec)
INFO:tensorflow:global_step/sec: 144.161
INFO:tensorflow:loss = 11.951693, step = 1501 (0.694 sec)
INFO:tensorflow:global_step/sec: 154.144
INFO:tensorflow:loss = 8.620987, step = 1601 (0.649 sec)
INFO:tensorflow:global_step/sec: 151.094
INFO:tensorflow:loss = 10.666125, step = 1701 (0.663 sec)
INFO:tensorflow:global_step/sec: 193.644
INFO:tensorflow:loss = 11.0349865, step = 1801 (0.516 sec)
INFO:tensorflow:global_step/sec: 189.707
INFO:tensorflow:loss = 9.860596, step = 1901 (0.526 sec)
INFO:tensorflow:global_step/sec: 176.423
INFO:tensorflow:loss = 10.695, step = 2001 (0.567 sec)
INFO:tensorflow:global_step/sec: 213.066
INFO:tensorflow:loss = 10.426752, step = 2101 (0.471 sec)
INFO:tensorflow:global_step/sec: 220.975
INFO:tensorflow:loss = 10.594796, step = 2201 (0.452 sec)
INFO:tensorflow:global_step/sec: 219.289
INFO:tensorflow:loss = 10.4212265, step = 2301 (0.456 sec)
INFO:tensorflow:global_step/sec: 215.123
INFO:tensorflow:loss = 9.668612, step = 2401 (0.465 sec)
INFO:tensorflow:global_step/sec: 175.65
INFO:tensorflow:loss = 10.009649, step = 2501 (0.569 sec)
INFO:tensorflow:global_step/sec: 206.962
INFO:tensorflow:loss = 10.477722, step = 2601 (0.483 sec)
INFO:tensorflow:global_step/sec: 229.627
INFO:tensorflow:loss = 9.877638, step = 2701 (0.435 sec)
INFO:tensorflow:global_step/sec: 195.792
INFO:tensorflow:loss = 10.274586, step = 2801 (0.512 sec)
INFO:tensorflow:global_step/sec: 176.803
INFO:tensorflow:loss = 10.061047, step = 2901 (0.566 sec)
INFO:tensorflow:Saving checkpoints for 3000 into train/linreg/model.ckpt.
INFO:tensorflow:Loss for final step: 10.73032.

<tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1818e63630>

MacOS उपयोगकर्ता के लिए

MacOS उपयोगकर्ता के लिए TensorBoard ट्यूटोरियल

के लिए Windows उपयोगकर्ता

TensorBoard ट्यूटोरियल के लिए Windows उपयोगकर्ता

आप यह जानकारी यहाँ देख सकते हैंपायटॉर्च टेंसरबोर्ड.

अब जब आपने लॉग इवेंट लिख लिए हैं, तो आप Tensorboard खोल सकते हैं। Tensorboard Keras पोर्ट 6006 पर चलता है (Jupyter पोर्ट 8888 पर चलता है)। आप MacOs उपयोगकर्ताओं के लिए टर्मिनल या एनाकोंडा प्रॉम्प्ट का उपयोग कर सकते हैं Windows उपयोगकर्ता.

MacOS उपयोगकर्ता के लिए

# Different for you
cd /Users/Guru99/tuto_TF
source activate hello-tf!

नोटबुक /Users/Guru99/tuto_TF पथ में संग्रहीत है

के लिए Windows उपयोगकर्ताओं

cd C:\Users\Admin\Anaconda3
activate hello-tf

नोटबुक पथ C:\Users\Admin\Anaconda3 में संग्रहीत है

Tensorboard लॉन्च करने के लिए, आप इस कोड का उपयोग कर सकते हैं

MacOS उपयोगकर्ता के लिए

tensorboard --logdir=./train/linreg

के लिए Windows उपयोगकर्ताओं

tensorboard --logdir=.\train\linreg

टेंसरबोर्ड इस URL पर स्थित है: http://localhost:6006

यह निम्नलिखित स्थान पर भी स्थित हो सकता है।

TensorBoard का उपयोग करें

URL को कॉपी करके अपने पसंदीदा ब्राउज़र में पेस्ट करें। आपको यह दिखना चाहिए:

ध्यान दें कि, हम इस ट्यूटोरियल में सीखेंगे कि ग्राफ को कैसे पढ़ा जाए। ध्यान लगा के पढ़ना या सीखना.

TensorBoard का उपयोग करें

यदि आपको ऐसा कुछ दिखाई दे:

TensorBoard का उपयोग करें

इसका मतलब है कि Tensorboard लॉग फ़ाइल नहीं ढूँढ़ सकता। सुनिश्चित करें कि आप cd को सही पथ पर इंगित करें या दोबारा जाँच लें कि लॉग इवेंट बनाया गया है या नहीं। यदि नहीं, तो कोड को फिर से चलाएँ।

यदि आप TensorBoard को बंद करना चाहते हैं तो CTRL+C दबाएँ

हैट टिप: वर्तमान कार्यशील निर्देशिका के लिए अपने एनाकोंडा प्रॉम्प्ट की जांच करें,

TensorBoard का उपयोग करें

लॉग फ़ाइल C:\Users\Admin पर बनाई जानी चाहिए

सारांश

TensorBoard आपके मॉडल को विज़ुअलाइज़ करने के लिए एक बेहतरीन टूल है। इसके अलावा, प्रशिक्षण के दौरान कई मेट्रिक्स प्रदर्शित किए जाते हैं, जैसे कि हानि, सटीकता या भार।

टेन्सरबोर्ड को सक्रिय करने के लिए, आपको अपनी फ़ाइल का पथ सेट करना होगा:

cd /Users/Guru99/tuto_TF

Tensorflow का वातावरण सक्रिय करें

activate hello-tf

टेंसरबोर्ड लॉन्च करें

tensorboard --logdir=.+ PATH