টেনসরফ্লোতে tf.app.flags এর উদ্দেশ্য কী?


115

আমি টেনসরফ্লোতে কয়েকটি উদাহরণ কোডগুলি পড়ছি, আমি নিম্নলিখিত কোডগুলি পেয়েছি

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

ভিতরে tensorflow/tensorflow/g3doc/tutorials/mnist/fully_connected_feed.py

তবে আমি এর ব্যবহার সম্পর্কে কোনও ডক্স পাচ্ছি না tf.app.flags

এবং আমি দেখতে পেয়েছি যে এই পতাকাগুলির বাস্তবায়ন রয়েছে tensorflow/tensorflow/python/platform/default/_flags.py

স্পষ্টতই, tf.app.flagsএটি কোনওভাবে কোনও নেটওয়ার্ক কনফিগার করতে ব্যবহৃত হয়, তবে এটি এপিআই ডক্সে নেই কেন? এখানে কি চলছে কেউ ব্যাখ্যা করতে পারেন?

উত্তর:


110

tf.app.flagsমডিউল বর্তমানে কাছাকাছি একটি পাতলা মোড়কের হয় , পাইথন-gflags তাই এই প্রকল্পের ডকুমেন্টেশন এটি কিভাবে ব্যবহার করতে জন্য শ্রেষ্ঠ সম্পদ argparse , যা কার্যকারিতা একটি উপসেট প্রয়োগ python-gflags

নোট করুন যে এই মডিউলটি বর্তমানে ডেমো অ্যাপ্লিকেশন লেখার সুবিধার্থে প্যাকেজ হয়েছে এবং প্রযুক্তিগতভাবে পাবলিক এপিআইয়ের অংশ নয়, তাই এটি ভবিষ্যতে পরিবর্তন হতে পারে।

আমরা আপনাকে নিজের ফ্ল্যাগ পার্সিং ব্যবহার করে argparseবা আপনার পছন্দমতো লাইব্রেরি প্রয়োগ করতে পরামর্শ দিচ্ছি ।

সম্পাদনা করুন:tf.app.flags মডিউল ব্যবহার করে বাস্তবায়ন করা আসলে নয় python-gflags, কিন্তু এটি একটি অনুরূপ API ব্যবহার করে।


80
"ডেমো অ্যাপ্লিকেশন লেখার সুবিধার্থ হিসাবে প্যাকেজ করা হয়েছে, এবং প্রযুক্তিগতভাবে এটি জনসাধারণের এপি-র অংশ নয়" ... এক ধরণের অদ্ভুত যে এটি প্রায় প্রতিটি টিউটোরিয়ালে ব্যবহৃত হয়, তবে এটিতে কোনও দলিল নেই। বিপুল পরিমাণে বিভ্রান্তির দিকে নিয়ে যায়।
স্পিড প্লেন

2
টেনসরফ্লো মডেলটির পক্ষে কীভাবে আর্গপারস ব্যবহার করতে হবে এবং মেঘের জন্য পাইথন মডিউলে এটি কীভাবে বান্ডেল করা যায় তার একটি উত্তম উদাহরণের জন্য, ট্যাক্সিফের মডিউলে টাস্ক.পি দেখুন , প্রশিক্ষণ-ডেটা- অ্যানালাইস্ট কোর্স উপকরণগুলির অংশ
Charlesreid1

3
tf.app.runএছাড়াও কি পাবলিক এপিআই এর অংশ নয়? কারণ এটি নির্ভর করে tf.app.flagsএবং এর সর্বজনীন ডকুমেন্টেশন রয়েছে ( tensorflow.org/api_docs/python/tf/app/run ), সুতরাং আমি ধরে নিই যে এটি সর্বজনীন এবং সমর্থিত। argparseপরিবর্তে এটি ব্যবহার করার প্রস্তাব দেওয়া হয় , আপনি কি এটি ব্যবহারের প্রস্তাবিত উপায়ের একটি সংক্ষিপ্ত উদাহরণ প্রদান করতে পারেন argparse?
নক্তিনিস

6
টেনসরফ্লোতে সমস্ত কিছুর জন্য ডকুমেন্টেশন কোনও ইস্যু নয়।
deadcode

37

tf.app.flagsমডিউল আপনার Tensorflow প্রোগ্রামের জন্য কমান্ড লাইন পতাকা বাস্তবায়ন Tensorflow এর দ্বারা প্রদত্ত কার্যকারিতা নেই। উদাহরণস্বরূপ, আপনি যে কোডটি পেয়েছিলেন তা নিম্নলিখিতটি করবে:

flags.DEFINE_float('learning_rate', 0.01, 'Initial learning rate.')

প্রথম প্যারামিটারটি পতাকাটির নাম সংজ্ঞায়িত করে যখন দ্বিতীয়টি ফাইলটি কার্যকর করার সময় পতাকা নির্দিষ্ট না করা ক্ষেত্রে ডিফল্ট মান নির্ধারণ করে।

সুতরাং আপনি যদি নিম্নলিখিতটি চালান:

$ python fully_connected_feed.py --learning_rate 1.00

তারপরে শিখার হারটি 1.00 এ সেট করা আছে এবং পতাকাটি নির্দিষ্ট না করা থাকলে 0.01 এ থেকে যাবে।

এই নিবন্ধে উল্লিখিত হিসাবে , ডক্স সম্ভবত উপস্থিত নেই কারণ এটি এমন কিছু হতে পারে যা গুগল অভ্যন্তরীণভাবে তার বিকাশকারীদের ব্যবহারের জন্য প্রয়োজন।

এছাড়াও, পোস্টে উল্লিখিত হিসাবে, অন্যান্য পাইথন প্যাকেজগুলির দ্বারা প্রদত্ত পতাকা কার্যকারিতা সম্পর্কে টেনসরফ্লো পতাকা ব্যবহারের বিভিন্ন সুবিধা রয়েছে যেমন argparseবিশেষত টেনসরফ্লো মডেলের সাথে কাজ করার সময়, সর্বাধিক গুরুত্বপূর্ণ যে আপনি কোডটিতে টেনসরফ্লো নির্দিষ্ট তথ্য সরবরাহ করতে পারেন যা জিপিইউ ব্যবহার করতে হবে।


1
তৃতীয় প্যারামিটারটি কী বলে? সম্ভবত এটি ছোট ডক স্ট্রিংয়ের মতো। আমি ভুল হলে জানতে চাইবেন।
shivam13juna

হ্যাঁ সম্ভবত এটি। আমি এখন পর্যন্ত এর জন্য কোনও ব্যবহারিক ব্যবহার দেখিনি, তাই আমি এটি আপনার বোঝার জন্য মনে করি।
বেদাং ওয়ারাদপান্দে

11

গুগলে, তারা আর্গুমেন্টগুলির জন্য ডিফল্ট মান নির্ধারণ করতে পতাকা সিস্টেমগুলি ব্যবহার করে। এটি আরগপার্সের মতো। তারা আরগপার্স বা sys.argv এর পরিবর্তে নিজস্ব পতাকা সিস্টেম ব্যবহার করে।

সূত্র: আমি আগে সেখানে কাজ করেছি।


5

আপনি যখন ব্যবহার করবেন tf.app.run(), আপনি থ্রেড ব্যবহার করে খুব সহজেই পরিবর্তনশীল স্থানান্তর করতে পারেন tf.app.flags। দেখুন এই আরও ব্যবহারের জন্য tf.app.flags


4

বহুবার চেষ্টা করার পরেও আমি এটিকে সমস্ত ফ্ল্যাগ কী এবং সেইসাথে আসল মানটি মুদ্রণের জন্য পেয়েছি -

for key in tf.app.flags.FLAGS.flag_values_dict():

  print(key, FLAGS[key].value)

3
আপনার অর্থ ফ্ল্যাগস [কী]
ফিজিকনবস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.