gpt4 book ai didi

tensorflow - 为什么 tf.flags 与 argparse 冲突?

转载 作者:行者123 更新时间:2023-12-04 17:42:46 24 4
gpt4 key购买 nike

使用 tf.app.flagsargparse,我编写了代码

flags = tf.app.flags
FLAGS = flags.FLAGS

flags.DEFINE_integer('hidden1', 16, 'Number of units in hidden layer 1.')
flags.DEFINE_integer('hidden2', 16, 'Number of units in hidden layer 2.')

parser = argparse.ArgumentParser(description='Single Deep GCNN 11, 22 and 33!', allow_abbrev=False)
parser.add_argument('--fc-neuron', type=int, default=64)
parser.add_argument('--num-epochs', type=int, default=10000, help='the number of training epochs')

在其他文件中,我使用 FLAGS 来获取一些参数,但是,我得到了错误

absl.flags._exceptions.UnrecognizedFlagError: Unknown command line flag 'fc-neuron'

我该如何解决这个冲突?

最佳答案

因此,absl.flags 在使用 argparse 时并不是很合作(至少对于我在 2021 年仍然必须使用的版本而言)。

找到的解决方法是让 FLAGS 在未知参数上优雅地失败,然后 argparse 你的参数:

import argparse
from absl import flags

parser = argparse.ArgumentParser()
parser.add_argument('-i', '--imput_path', type=str)
parser.add_argument('-o', '--output_path', type=str)

if __name__ == "__main__":

FLAGS = flags.FLAGS
try:
argv = FLAGS(sys.argv, known_only=True) # parse flags
except flags.Error, e:
logger.error('%s\nUsage: %s ARGS\n%s' % (e, sys.argv[0], FLAGS))
sys.exit(1)

args, _ = parser.parse_known_args()

关于tensorflow - 为什么 tf.flags 与 argparse 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53737613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com