这是我的代码的一部分:
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
”集和范围名称。我做了所有的事情,但是仍然行不通。任何帮助将不胜感激!
答案 0 :(得分:0)
我找到了替代解决方案,但据我所知可能还有其他最佳解决方案。在这里回答以作记录。
tvars = tf.trainable_variables('agent')
应该在指定的图形下定义,并在以后需要时获取值。关键是在图形下调用可训练变量。
这是我的理解,如果某个地方有问题,请告诉我。谢谢!