与自我相关的错误消息.__ dict __ [' __ flags']:

时间:2017-03-24 21:23:42

标签: python tensorflow

在一个程序中,有类似的东西

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']:,以及如何修复我得到的错误消息。

2 个答案:

答案 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')