tf.trainable_variables()返回一个空白列表

时间:2019-07-17 20:34:36

标签: tensorflow

这是我的代码的一部分:

class agent():
    def __init__(self, lr, s_size,a_size,h_size):

    self.lr = lr
    self.s_size = s_size
    self.a_size = a_size
    self.h_size = h_size
    self.grad_clip = 1.0
    self.global_step = tf.Variable(0, name='global_step', trainable=False)

    with tf.variable_scope('agent', reuse = tf.AUTO_REUSE):
        self.g3 = tf.Graph()
        with self.g3.as_default():

            self.build_model() ## building network 
            init = tf.global_variables_initializer()
            self.saver = tf.train.Saver()
    self.sess = tf.Session(graph = self.g3)
    self.sess.run(self.init)  ## initialize the variables

在这堂课之外,我打电话给

    gradBuffer = agent.sess.run(tf.trainable_variables('agent'))

gradBuffer始终是空白列表。我在网上找到了相关的解决方案,包括“ reuse == True”集和范围名称。我做了所有的事情,但是仍然行不通。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我找到了替代解决方案,但据我所知可能还有其他最佳解决方案。在这里回答以作记录。

tvars = tf.trainable_variables('agent')应该在指定的图形下定义,并在以后需要时获取值。关键是在图形下调用可训练变量。

这是我的理解,如果某个地方有问题,请告诉我。谢谢!