gpt4 book ai didi

python - tensorflow尝试在类中使用未初始化的值W

转载 作者:行者123 更新时间:2023-11-30 09:34:33 26 4
gpt4 key购买 nike

作为我的问题,我定义了一个类。在 init 中,我新了一些 tf 值。并初始化全局,初始化本地。即使在主脚本中也是如此。

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(),只是空的。

所以,我想知道为什么以及如何,非常感谢。

最佳答案

在 TF 中,变量值仅存在于 session 中。一旦 session 关闭,就不再有任何值,因此在当前代码中,您创建变量,初始化它们,然后丢弃它们,所有这些都在构造函数中。

在 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

关于python - tensorflow尝试在类中使用未初始化的值W,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46514138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com