Python 重构Tensorflow标志
在使用了许多具有相同Tensorflow标志的python脚本之后,我厌倦了为每次更改更新多个标志,因此决定将Python 重构Tensorflow标志,python,tensorflow,Python,Tensorflow,在使用了许多具有相同Tensorflow标志的python脚本之后,我厌倦了为每次更改更新多个标志,因此决定将tf.app.FLAGS重构为一个单独的类,我可以跨脚本重用它 然而,出于某种奇怪的原因,每当我以不同的方法使用self.flags时,它都无法识别先前设置的标志。例如,下面的类对于flagproject\u dir2很好,但是对于flagproject\u dir3 `class MyClass(): def __init__(self): self.flags = t
tf.app.FLAGS
重构为一个单独的类,我可以跨脚本重用它
然而,出于某种奇怪的原因,每当我以不同的方法使用self.flags
时,它都无法识别先前设置的标志。例如,下面的类对于flagproject\u dir2
很好,但是对于flagproject\u dir3
`class MyClass():
def __init__(self):
self.flags = tf.app.flags
self.FLAGS = self.flags.FLAGS
#test code that works here
self.flags.DEFINE_string("project_dir2", "aValue", "project directory")
print("This will print correctly: "+self.FLAGS.project_dir2)
self.my_function()
def my_function(self):
#test code that fails
self.flags.DEFINE_string("project_dir3", "aValue", "project directory")
print("This will fail: "+self.FLAGS.project_dir3)`
我得到以下例外情况:
AttributeError:project\u dir2
异常TypeError:忽略中的TypeError(“'NoneType'对象不可调用“,”)
有什么明显的我做错了吗?或者这是你不能用Tensorflow标志来做的事情?这是否意味着无法跨脚本重构常用的标志设置?似乎有一个名为
\u parse\u flags()
的内部方法被调用。您可以在更新后手动调用它
即
tf.flags上的背景-这是对Google库的部分重新实现,因此缺少功能/文档。做一些更聪明的事情,比如插入官方gflags()是一种贡献。允许控制详细日志记录(需要重新编译)似乎有一个名为
\u parse\u flags()
的内部方法被调用。您可以在更新后手动调用它
即
tf.flags上的背景-这是对Google库的部分重新实现,因此缺少功能/文档。做一些更聪明的事情,比如插入官方gflags()是一种贡献。允许控制详细日志记录(需要重新编译)非常感谢!现在效果很好。你刚刚帮我节省了好几个小时的工作:-)干杯,非常感谢!现在效果很好。你刚刚帮我节省了好几个小时的工作:-)干杯
def my_function(self):
#test code that fails
self.flags.DEFINE_string("project_dir3", "aValue", "project directory")
self.flags.FLAGS._parse_flags()