作为我的问题,我定义了一个类。在 init 中,我新增了一些tf值。并在主脚本中使用init global,init local.Even。
class DNN():
def __init__(self):
kernel_shape = [3,3]
self.c11w = tf.Variable(tf.truncated_normal(kernel_shape + [3, 64], stddev=0.1), name = 'W'))
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
喜欢这样。并且没有出现错误。所以我打电话给tf.report_uninitialized_variables(),只是空着。
所以,我想知道为什么以及如何,非常感谢。
答案 0 :(得分:2)
在TF中,变量值仅存在于会话中。关闭会话后,不再有任何值,因此在当前代码中,您可以在构造函数中创建变量,初始化它们,然后丢弃它们。
在python中将TF集成到OO代码的典型模式将属于以下几行:
class MLobject():
def __init__(self):
self._graph = tf.Graph() # separate graph per instance
with self._graph.as_default():
variable_1 = ....
...
self._initialiser = tf.global_variables_initializer()
self._session = tf.Session(graph=self._graph) # store session in a field
self._graph.finalize() # For safety, this should not be modified anymore
def fit(self, X, y):
self._session.run(self._initialiser)
... # execute training using self._session