あなたはPythonスクリプトを実行すると、たとえば、いくつかのパラメータを渡す必要がある場合、gpus
およびbatch_size
3通りの方法で使用することができます。
Pythonのscript.py 0,1,2 10 パイソンscript.py -gpus = 0,1,2 --batchサイズ= 10 パイソンscript.py -gpus = 0,1,2 --batch_size = 10
これら三つの異なる分析方法のフォーマットパラメータは、それぞれ対応するsys.argv
、argparse、
tf.app.run,
2である官能基を有するパイソン、あるtensorflow
提供するための便利な方法。
1.sys.argv
sys
モジュールは、例えば、Pythonインタプリタに関連するデータをカプセル化する非常に一般的なモジュールであり、
sys.modules
ロードされたモジュール情報の全て有し
sys.path
ている
PYTHONPATH
コンテンツを、そして
sys.argv
その後、入力データパラメータをカプセル化します。
使用
sys.argv
パラメトリック以下を含む上記第一のコマンドを受信:
インポートSYS のGPU = sys.argvの[1 ] #1 のGPU = [INT(gpus.split( ''))] BATCH_SIZE = sys.argvの[2 ] プリント(GPUの) プリント(BATCH_SIZE)
2.argparse
インポートargparse パーサ(説明= = argparse.ArgumentParser ' このスクリプトのマニュアル' ) parser.add_argument(" --gpus "、タイプ= STR、デフォルト= " 0 " ) parser.add_argument(" --batchサイズ"、型=整数、デフォルト= 32 ) 引数 = parser.parse_args() プリント(args.gpus) プリント(args.batch_size)
python script.py -gpus=0,1,2 --batch-size=10
で
--batch-size
、自動的に解析されます
batch_size
。
parser.add_argument
メソッドの
type
パラメータは、理論的に正当な任意のタイプとすることができるが、形式にはいくつかの引数には、このようなリストとしてあまりにも面倒、とても一般的な使用であり
bool
、
int
、
str
、
float
ライン上のこれらの基本的なタイプより複雑なニーズをすることができ
str
渡され、その後、手動で解決します。
bool
解析の特別な種類、任意の着信値に解析される
True
ヌルとして渡された場合、
False
3.tf.app.run
インポートTFとしてtensorflow tf.app.flags.DEFINE_string(' のGPU '、なし、' 使用するためのGPU ' ) tf.app.flags.DEFINE_integer(' BATCH_SIZE '、5 ' バッチサイズ' ) FLAGSの =のtf.app.flags .FLAGS デフメイン(_): プリント(FLAGS.gpus) プリント(FLAGS.batch_size) の場合 __name__ == " __main__ " : tf.app.run()
注意すべき点がいくつかあります。
tensorflow
のみ、次のメソッドを提供します。
tf.app.flags.DEFINE_string
、、、それぞれ4つの方法、、、、引数の型。ここで、より厳しい解決、着信1に解析されるであろう任意の残りの値に解析され、。
tf.app.flags.DEFINE_integer
tf.app.flags.DEFINE_boolean
tf.app.flags.DEFINE_float
str
int
bool
float
bool
True
False
スクリプトを受信するには、パラメータを定義する必要があるmain
メソッドを:def main(_):
このパラメータは、一般的により少ないと、スクリプトの名前で渡され、受信機は強調しました。
ではbatch_size
例えばパラメータ、名前は、このパラメータが渡されたときに使用される--batch_size
、すなわち、ないに下線とargparse
同じ下線することを決議しました。
tf.app.run()
エントランスには、スクリプトを見つけると、実行されるmain
方法を。唯一の実行中にtf.app.run()
、その後から順FLAGS
削除パラメータ。
その署名を見てから、それはまた、独自のメソッドを指定することができます実行する必要が、必ずしも呼ばれなければなりませんmain
。