将命令行参数传递给 TensorFlow 的习惯用法是什么?

What is the idiom for passing command line arguments to TensorFlow?

TensorFlow 的

Previous versions 使用 tf.app.flags 作为命令之类的标志:

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string('data_dir', '/tmp/data/', 'Directory for storing data')

但是recent versions现在只有

import argparse
#...
FLAGS = None

只要出现过此类代码,就会导入 argparse 但不会在任何地方(我能找到)使用它。

之前大量使用 tf.app.flags 似乎是对 gflags architecture 作为 TensorFlow 项目的一种惯用语的认可。它的删除是否表明另一种方法现在是惯用的并且应该代替它使用?如果是这样,什么方法,是否有简单的建议迁移路径?

根据提交 8018346 of TF, the maintainer of TF, vrv,回复:

Yup! tf.flags is something that is used within Google but has a bunch of problems, we suggest using argparse when possible.

至于迁移,您可以签出完全完成任务的同一提交。