[英]tensorflow Attempting to use uninitialized value W in a class
作為我的問題,我定義了一個類。在init中 ,我增加了一些tf值。在init中 ,我全局了,初始化了local。甚至在主腳本中。
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中,變量值僅存在於會話中。 一旦會話關閉,就不再有任何值,因此在當前代碼中,您將創建變量,對其進行初始化,然后將其丟棄,所有這些都在構造函數中。
在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.