将修改过的变量发送到优化程序时出错,尝试从tf.get_collection中删除不需要的变量 建议我从我们的具有特定范围的tf.get_collection列表中删除一些项目的安全替代方案
代码:
with tf.Session() as sess:
restorer = tf.train.import_meta_graph('abcd.ckpt.meta')
restorer.restore(sess,'abcd.ckpt')
print('Done')
var = tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)
new_vars=[]
for index in range(len(var)):
if index <7:
continue
else:
new_vars.append(var[index])
靠近线下的错误:
optimzing_op = optimizer.minimize(optimizing_var, var_list=list(new_vars.values()))
文件“/home/anaconda2/lib/python2.7/site-packages/tensorflow/python/training/optimizer.py”,第295行,最小化 ([str(v)for _,v in grads_and_vars],loss))
ValueError:没有为任何变量提供渐变,请检查图表中不支持渐变的ops,变量之间
答案 0 :(得分:0)
你可以尝试一些与你在这里做的非常相似的东西,但是直接应用于渐变:
# assuming your optimizer is defined in "optimizer"
grads_and_vars = optimizer.compute_gradients(cost) # get list of (grad, var) tuples
my_grads_and_vars = []
for ind in range(len(grads_and_vars)):
if ind < 7:
continue
else:
my_grads_and_vars.append(grads_and_vars[ind]) # filter them
optimizer.apply_gradients(my_grads_and_vars) # apply filtered gradients
也就是说,您可能在图表中有一些操作会阻止您获得渐变。如果没有说明问题的最小例子,我无法确定。