使用tf.app.flags时出错

时间:2016-07-08 13:20:18

标签: tensorflow flags

我在张量流程序中使用了flags = tf.app.flags FLAGS = flags.FLAGS flags.DEFINE_string('model_dir', './models','Save checkpoint') . . . if __name__ == "__main__": # main() tf.app.run() ,如下所示:

ArgumentError: argument --model_dir: conflicting option string: --model_dir

但是当我两次运行我的代码时会出现这个错误:

tf.app.falgs

我认为tensorflow为--model_dir创建一个参数,当它再次运行时,它会尝试再次为--model_dir创建一个参数,但是存在冲突--model_dir。

有没有办法解决这个问题,或者我对@Test(expected=MyException.class) and to assert that the exception has occurred while you're calling your method //use the mock and call another method that throws an error when(yourMock.anotherMethod()).thenThrow(new MyException(Constant.ERROR_CODE)); 使用了python参数?

2 个答案:

答案 0 :(得分:6)

我的猜测是你在像Jupyter / iPython笔记本这样的环境中工作。

您遇到此问题的原因是标记数据似乎在Python会话中维护。即使您重置变量FLAGS,tf.app.flags.FLAGS.__getattr__('model_dir')也等于./models

如果您使用的是笔记本,我建议您将标记定义放在单独的单元格中。我发现重置tf.app.flags.FLAGS的唯一方法是重启内核/会话。

答案 1 :(得分:0)

您可以尝试这样:

#define flags
tf.flags.DEFINE_integer("age", 17, "age of user(default:20)")
tf.flags.DEFINE_boolean("drink_allow", False, "if can drink or not(default:False)")
tf.flags.DEFINE_float("weight", 55.55, "weight of user(default:55.55kg)")

FLAGS = tf.flags.FLAGS  #init flags
FLAGS._parse_flags()  # parse flags

for attr,value in FLAGS.__flags.items():
    print("attr:%s\tvalue:%s" % (attr,str(value)))