或者 ValueError: action/agentAction_1/fully_connected/weights/Adam/ does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=tf.AUTO_REUSE in VarScope?
这个错误是在使用优化函数
tf.train.RMSPropOptimizer()
tf.train.AdamOptimizer()
引起的,使用梯度下降算法反而没有出现问题,
并且使用了
tf.get_variable_scope().reuse_variables()
原因是使用Adam或者RMSProp优化函数时,Adam函数会创建一个Adam变量,目的是保存你使用tensorflow创建的graph中的每个可训练参数的动量,但是这个Adam是在reuse=True条件下创建的,之后reuse就回不到None或者False上去,当reuse=True,就会在你当前的scope中reuse变量,如果在此scope中进行优化操作,就是使用AdamOptimizer等,他就会重用slot variable,这样子会导致找不到Adam变量,进而报错。
设置reuse=True的地方是
tf.get_variable_scope().reuse_variables()
或者
With tf.variable_scope(name) as scope :
Scope.reuse_variables()
一般在运行GAN程序的时候会用到这段代码。解决方法就是将这个scope独立出来,reuse=True就只在当前scope中起作用,使用
版权声明:本文为CSDN博主「Double_V_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25737169/article/details/77856961