簡體   English   中英

tensorflow嘗試在類中使用未初始化的值W

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM