2015-11-26 10 views
62

मैं Tensorflow में मौजूद कुछ उदाहरण कोड पढ़ रहा हूँ, मैं tensorflow/tensorflow/g3doc/tutorials/mnist/fully_connected_feed.pyTensorFlow में tf.app.flags का उद्देश्य क्या है?

में निम्नलिखित कोड पाया

flags = tf.app.flags 
FLAGS = flags.FLAGS 
flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.') 
flags.DEFINE_integer('max_steps', 2000, 'Number of steps to run trainer.') 
flags.DEFINE_integer('hidden1', 128, 'Number of units in hidden layer 1.') 
flags.DEFINE_integer('hidden2', 32, 'Number of units in hidden layer 2.') 
flags.DEFINE_integer('batch_size', 100, 'Batch size. ' 
       'Must divide evenly into the dataset sizes.') 
flags.DEFINE_string('train_dir', 'data', 'Directory to put the training data.') 
flags.DEFINE_boolean('fake_data', False, 'If true, uses fake data ' 
       'for unit testing.') 

लेकिन मैं tf.app.flags के इस उपयोग के बारे में कोई भी दस्तावेज़ नहीं मिल रहा।

और मैंने पाया इस झंडे के कार्यान्वयन tensorflow/tensorflow/python/platform/default/_flags.py

जाहिर है, इस tf.app.flags किसी तरह एक नेटवर्क कॉन्फ़िगर करने के लिए इस्तेमाल किया जाता है, तो क्यों यह एपीआई डॉक्स में नहीं है? क्या कोई यहां समझा सकता है कि क्या हो रहा है?

उत्तर

72

tf.app.flags मॉड्यूल वर्तमान में चारों ओर अजगर-gflags एक पतली आवरण है, इसलिए documentation for that project यह कैसे argparse, जो python-gflags में कार्यक्षमता के एक सबसेट को लागू करता है का उपयोग करने के लिए सबसे अच्छा स्रोत है।

ध्यान दें कि यह मॉड्यूल वर्तमान में डेमो ऐप्स लिखने की सुविधा के रूप में पैक किया गया है, और तकनीकी रूप से सार्वजनिक एपीआई का हिस्सा नहीं है, इसलिए यह भविष्य में बदल सकता है।

हम अनुशंसा करते हैं कि आप argparse या जो भी लाइब्रेरी आप पसंद करते हैं, उसका उपयोग करके अपना खुद का ध्वज पार्सिंग लागू करें।

संपादित करें:tf.app.flags मॉड्यूल तथ्य का उपयोग कर लागू किया python-gflags में नहीं है, लेकिन यह एक समान API का उपयोग करता।

+45

"डेमो ऐप्स लिखने की सुविधा के रूप में पैक किया गया है, और तकनीकी रूप से सार्वजनिक एपी का हिस्सा नहीं है" ... इस तरह का अजीब बात है कि इसका उपयोग लगभग हर ट्यूटोरियल में किया जाता है, लेकिन इसमें कोई दस्तावेज नहीं है। बहुत भ्रम की ओर ले जाता है। – speedplane

+1

एक टेंसरफ्लो मॉडल के लिए तर्क पारित करने के लिए argparse का उपयोग करने के तरीके और क्लाउड के लिए इसे एक पायथन मॉड्यूल में कैसे बंडल करने का एक अच्छा उदाहरण के लिए, [task.py] (https://github.com/GoogleCloudPlatform/training- [करदाता] में डेटा-विश्लेषक/ब्लॉब/मास्टर/पाठ्यक्रम/मशीन_लेर्निंग/क्लाउडमेले/टैक्सिफायर/ट्रेनर/task.py) (https://github.com/GoogleCloudPlatform/training-data-analyst/tree/master/courses/ machine_learning/cloudmle/taxifare) मॉड्यूल, [प्रशिक्षण-डेटा-विश्लेषक पाठ्यक्रम सामग्री] का हिस्सा (https://github.com/GoogleCloudPlatform/training-data-analyst/tree/master/courses/machine_learning/cloudmle/)। – charlesreid1

+0

क्या 'tf.app.run' भी सार्वजनिक एपीआई का हिस्सा नहीं है? क्योंकि यह 'tf.app.flags' पर निर्भर करता है और इसमें सार्वजनिक दस्तावेज (https://www.tensorflow.org/api_docs/python/tf/app/run) है, इसलिए मुझे लगता है कि यह सार्वजनिक और समर्थित है। यदि इसकी बजाय 'argparse' का उपयोग करने की अनुशंसा की जाती है, तो क्या आप इसे' argparse' के साथ उपयोग करने के अनुशंसित तरीके का एक संक्षिप्त उदाहरण प्रदान कर सकते हैं? – naktinis

संबंधित मुद्दे