Python 在tensorflow 1.1.0中使用tf.app.flags.DEFINE_字符串时出现奇怪的冲突值
python代码很简单,如下所示:Python 在tensorflow 1.1.0中使用tf.app.flags.DEFINE_字符串时出现奇怪的冲突值,python,tensorflow,Python,Tensorflow,python代码很简单,如下所示: import tensorflow as tf import argparse if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--train') args = parser.parse_args() tf.app.flags.DEFINE_string( "traindata",
import tensorflow as tf
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--train')
args = parser.parse_args()
tf.app.flags.DEFINE_string(
"traindata",
'train_data.hdf5',
'train data'
)
print('args: ', args.train)
print('FLAG: ', tf.app.flags.FLAGS.traindata)
但是,输出很奇怪:
$ python test.py --train 123
args: 123
FLAG: 123
只要
tf.app.flags.DEFINE_string
defined string name的前缀等于args
参数名的字符串,tf.app.flags
字符串值与args
参数值完全相同。这意味着tf.app.flags.flags
定义无效。因为tf.flags
只是argparse
的一个简单包装器,这是argparse
的功能,允许前缀匹配参数。Python 3.5及更高版本允许您通过以下方式禁用此功能:
parser=argparse.ArgumentParser(…,allow_abbrev=False)