TensorBoard ट्यूटोरियल: TensorFlow ग्राफ विज़ुअलाइज़ेशन [उदाहरण]
टेंसरबोर्ड क्या है?
टेंसरबोर्ड यह इंटरफ़ेस ग्राफ़ को विज़ुअलाइज़ करने और मॉडल को समझने, डीबग करने और ऑप्टिमाइज़ करने के लिए अन्य टूल का उपयोग करता है। यह एक ऐसा टूल है जो मशीन लर्निंग वर्कफ़्लो के लिए माप और विज़ुअलाइज़ेशन प्रदान करता है। यह नुकसान और सटीकता, मॉडल ग्राफ़ विज़ुअलाइज़ेशन, कम-आयामी स्थानों पर प्रोजेक्ट एम्बेडिंग आदि जैसे मेट्रिक्स को ट्रैक करने में मदद करता है।
Tensorboard उदाहरण का उपयोग करके TensorFlow ग्राफ़ विज़ुअलाइज़ेशन
नीचे दी गई छवि TensorBoard ग्राफ़ से ली गई है जिसे आप इस TensorBoard ट्यूटोरियल में जेनरेट करेंगे। यह मुख्य पैनल है:

नीचे दी गई तस्वीर से, आप TensorBoard ग्राफ़ विज़ुअलाइज़ेशन का पैनल देख सकते हैं। पैनल में अलग-अलग टैब होते हैं, जो मॉडल चलाते समय आपके द्वारा जोड़ी गई जानकारी के स्तर से जुड़े होते हैं।
- अदिश: मॉडल प्रशिक्षण के दौरान विभिन्न उपयोगी जानकारी दिखाएं
- रेखाचित्र: मॉडल दिखाएं
- हिस्टोग्राम: हिस्टोग्राम के साथ भार प्रदर्शित करें
- वितरण: भार का वितरण प्रदर्शित करें
- प्रोजेक्टर: मुख्य घटक विश्लेषण और T-SNE एल्गोरिथ्म दिखाएँ। आयाम घटाने के लिए इस्तेमाल की जाने वाली तकनीक
इस TensorBoard ट्यूटोरियल के दौरान, आप एक सरल डीप लर्निंग मॉडल को प्रशिक्षित करेंगे। आप भविष्य के ट्यूटोरियल में सीखेंगे कि यह कैसे काम करता है।
यदि आप ग्राफ को देखें तो आप समझ सकते हैं कि मॉडल कैसे काम करता है।
- मॉडल में डेटा को पंक्तिबद्ध करें: बैच आकार के बराबर डेटा की मात्रा को मॉडल में पुश करें, अर्थात, प्रत्येक पुनरावृत्ति के बाद डेटा फ़ीड की संख्या
- डेटा को टेंसर में फीड करें
- मॉडल को प्रशिक्षित करें
- प्रशिक्षण के दौरान बैचों की संख्या प्रदर्शित करें। मॉडल को डिस्क पर सहेजें।
टेंसरबोर्ड के पीछे मूल विचार यह है कि न्यूरल नेटवर्क को ब्लैक बॉक्स के रूप में जाना जा सकता है और हमें इस बॉक्स के अंदर क्या है, इसका निरीक्षण करने के लिए एक उपकरण की आवश्यकता होती है। आप टेंसरबोर्ड को न्यूरल नेटवर्क में गोता लगाने के लिए एक टॉर्च के रूप में कल्पना कर सकते हैं।
यह संचालनों के बीच निर्भरता को समझने में मदद करता है, भार की गणना कैसे की जाती है, हानि फ़ंक्शन और बहुत सी अन्य उपयोगी जानकारी प्रदर्शित करता है। जब आप इन सभी सूचनाओं को एक साथ लाते हैं, तो आपके पास डीबग करने और मॉडल को बेहतर बनाने के तरीके खोजने के लिए एक बढ़िया टूल होता है।
टेंसरबोर्ड ग्राफ कितना उपयोगी हो सकता है, इसका अंदाजा लगाने के लिए नीचे दी गई तस्वीर देखें:
एक न्यूरल नेटवर्क यह तय करता है कि विभिन्न "न्यूरॉन्स" को कैसे जोड़ा जाए और मॉडल द्वारा परिणाम की भविष्यवाणी करने से पहले कितनी परतें होनी चाहिए। एक बार जब आप आर्किटेक्चर को परिभाषित कर लेते हैं, तो आपको न केवल मॉडल को प्रशिक्षित करने की आवश्यकता होती है, बल्कि भविष्यवाणी की सटीकता की गणना करने के लिए एक मीट्रिक भी चाहिए। इस मीट्रिक को एक के रूप में संदर्भित किया जाता है लॉस फंकशन। इसका उद्देश्य हानि फ़ंक्शन को कम करना है। दूसरे शब्दों में, इसका मतलब है कि मॉडल कम त्रुटियाँ कर रहा है। सभी मशीन लर्निंग एल्गोरिदम तब तक गणनाओं को कई बार दोहराएंगे जब तक कि हानि एक समतल रेखा तक नहीं पहुंच जाती। इस हानि फ़ंक्शन को कम करने के लिए, आपको एक परिभाषित करने की आवश्यकता है सीखने की दर. यह वह गति है जिस पर आप मॉडल को सीखना चाहते हैं। यदि आप सीखने की दर बहुत अधिक निर्धारित करते हैं, तो मॉडल के पास कुछ भी सीखने का समय नहीं होता है। बाईं तस्वीर में यही स्थिति है। रेखा ऊपर-नीचे जा रही है, जिसका अर्थ है कि मॉडल शुद्ध अनुमान के साथ परिणाम की भविष्यवाणी करता है। दाईं ओर की तस्वीर दिखाती है कि वक्र के समतल होने तक पुनरावृत्ति पर हानि कम हो रही है, जिसका अर्थ है कि मॉडल ने समाधान पा लिया है।
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 उपयोगकर्ता के लिए
के लिए 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
यह निम्नलिखित स्थान पर भी स्थित हो सकता है।
URL को कॉपी करके अपने पसंदीदा ब्राउज़र में पेस्ट करें। आपको यह दिखना चाहिए:
ध्यान दें कि, हम इस ट्यूटोरियल में सीखेंगे कि ग्राफ को कैसे पढ़ा जाए। ध्यान लगा के पढ़ना या सीखना.
यदि आपको ऐसा कुछ दिखाई दे:
इसका मतलब है कि Tensorboard लॉग फ़ाइल नहीं ढूँढ़ सकता। सुनिश्चित करें कि आप cd को सही पथ पर इंगित करें या दोबारा जाँच लें कि लॉग इवेंट बनाया गया है या नहीं। यदि नहीं, तो कोड को फिर से चलाएँ।
यदि आप TensorBoard को बंद करना चाहते हैं तो CTRL+C दबाएँ
हैट टिप: वर्तमान कार्यशील निर्देशिका के लिए अपने एनाकोंडा प्रॉम्प्ट की जांच करें,
लॉग फ़ाइल C:\Users\Admin पर बनाई जानी चाहिए
सारांश
TensorBoard आपके मॉडल को विज़ुअलाइज़ करने के लिए एक बेहतरीन टूल है। इसके अलावा, प्रशिक्षण के दौरान कई मेट्रिक्स प्रदर्शित किए जाते हैं, जैसे कि हानि, सटीकता या भार।
टेन्सरबोर्ड को सक्रिय करने के लिए, आपको अपनी फ़ाइल का पथ सेट करना होगा:
cd /Users/Guru99/tuto_TF
Tensorflow का वातावरण सक्रिय करें
activate hello-tf
टेंसरबोर्ड लॉन्च करें
tensorboard --logdir=.+ PATH