在一个程序中,有类似的东西
if not FLAGS.save and FLAGS.name is None:
output_dir = os.path.join(runs_dir, 'debug')
运行此python程序会给出错误消息,例如,由上面的代码段引起的
File "train.py", line 54, in main
utils.set_dirs(hypes, tf.app.flags.FLAGS.hypes)
File "/home/AP5/tensorvision/utils.py", line 71, in set_dirs
if not FLAGS.save and FLAGS.name is None:
File "/devl/tensorflow/tf_0.12/lib/python3.4/site-packages/tensorflow/python/platform/flags.py", line 50, in __getattr__
raise AttributeError(name)
AttributeError: save
我检查了__getattr__
的代码,
def __getattr__(self, name):
"""Retrieves the 'value' attribute of the flag --name."""
if not self.__dict__['__parsed']:
self._parse_flags()
if name not in self.__dict__['__flags']:
raise AttributeError(name)
return self.__dict__['__flags'][name]
但我不太了解代码行if name not in self.__dict__['__flags']:
,以及如何修复我得到的错误消息。
答案 0 :(得分:0)
此表达式FLAGS.name is None
对对象/实例__getattr__
执行FLAGS
操作。
FLAGS
有一个实例字典,可通过self.__dict__
在该实例中,词典是一个名为__flags
在此name
密钥中找不到__flags
变量的值。
大概FLAGS
使用各种属性进行实例化,在这种情况下,name
似乎没有正确设置。这是我可以从您提供的上下文中推断出的全部内容。如果您想提供更多上下文,我建议您展示如何构造FLAGS
对象。
答案 1 :(得分:0)
只需更改它即可添加下面缺少的内容
FLAGS = tf.app.flags.FLAGS
tf.app.flags.DEFINE_boolean('save', True,
"""Whether or not to save.""")
tf.app.flags.DEFINE_string('name', "some name",
"""The name.""")
if not FLAGS.save and FLAGS.name is None:
output_dir = os.path.join(runs_dir, 'debug')