2017-07-18 7 views
1

私はテンソルフローでmnist exampleを研究しています。テンソルフローの "FLAGS"の目的は何ですか

私はモジュールFLAGS "run_training" funcitionで

# Basic model parameters as external flags. 
FLAGS = None 

で混乱しています:

def run_training(): 
"""Train MNIST for a number of steps.""" 
# Tell TensorFlow that the model will be built into the default Graph. 
with tf.Graph().as_default(): 
# Input images and labels. 
images, labels = inputs(train=True, batch_size=FLAGS.batch_size, 
         num_epochs=FLAGS.num_epochs) 

"FLAGS.batch_size" と、ここで "FLAGS.num_epochs" を使用する目的は何ですか?私はそれを128のような定数で置き換えることはできますか?

私は同様の回答をthis siteで見つけましたが、私はまだ理解できません。

+1

あなたは 'FLAGS'が重要な何かに定義されたコードが含まれていません。また、他の質問からあなたが理解できないことを説明できますか? –

答えて

1

フラグは、一般に、コマンドライン引数を解析し、入力パラメータを保持するために使用されます。あなたはそれらを定数で置き換えることができますが、フラグの助けを借りて入力パラメータを整理することをお勧めします。

1

実際には、mnist full_connect_readerの例では、テンソルフローフラグはまったく使用されていません。ここのFLAGSは、ソースコードページのボタンで "FLAGS、unparsed = parser.parse_known_args()"によって割り当てられ、異なる機能で使用される "グローバル変数"としてのみ機能します。 tf.app.flags.FLAGSを使用する

方法は次のようになります。

import tensorflow as tf 

FLAGS = tf.app.flags.FLAGS 

tf.app.flags.DEFINE_integer('max_steps', 100, 
          """Number of batches to run.""") 
tf.app.flags.DEFINE_integer('num_gpus', 1, 
          """How many GPUs to use.""") 


def main(argv=None): 
    print(FLAGS.max_steps) 
    print(FLAGS.num_gpus) 

if __name__ == '__main__': 
    # the first param for argv is the program name 
    tf.app.run(main=main, argv=['tensorflow_read_data', '--max_steps', '50', '--num_gpus', '20']) 
関連する問題