如何清除tf.flags?

081*_*张庆昊 6 python tensorflow

如果我运行此代码两次:

tf.flags.DEFINE_integer("batch_size", "2", "batch size for training")
Run Code Online (Sandbox Code Playgroud)

我会收到这个错误:

DuplicateFlagError: The flag 'batch_size' is defined twice. First from D:/Python/workspace/FCN_dataset/FCN.tensorflow-master/FCN.py, Second from D:/Python/workspace/FCN_dataset/FCN.tensorflow-master/FCN.py.  Description from first occurrence: batch size for training
Run Code Online (Sandbox Code Playgroud)

我知道这是因为我重新定义了flag的默认值.那么如何清除标志或允许重新定义标志的默认值呢?

081*_*张庆昊 10

tf.flags.FLAGS.__delattr__() 
Run Code Online (Sandbox Code Playgroud)

可以删除标志,所以定义一个删除所有标志的函数:

def del_all_flags(FLAGS):
    flags_dict = FLAGS._flags()
    keys_list = [keys for keys in flags_dict]
    for keys in keys_list:
        FLAGS.__delattr__(keys)
Run Code Online (Sandbox Code Playgroud)

然后运行:

del_all_flags(tf.flags.FLAGS)
Run Code Online (Sandbox Code Playgroud)

  • FLAGS.remove_flag_values()实现了此功能,我已经更新了我的张量流,所以我不知道它是否是一个新函数,您可以仅通过以下代码删除所有标志:FLAGS.remove_flag_values(FLAGS.flag_values_dict()) (2认同)