Python 3.x 如何按全球标准处理tf.clip中的None?
我在回答中读到了tf.clip_by_global_norm通过简单地忽略danijar对@danijar答案的评论来处理None值,但当我尝试应用它时,我似乎在抛出错误 ValueError:不支持任何值Python 3.x 如何按全球标准处理tf.clip中的None?,python-3.x,tensorflow,deep-learning,Python 3.x,Tensorflow,Deep Learning,我在回答中读到了tf.clip_by_global_norm通过简单地忽略danijar对@danijar答案的评论来处理None值,但当我尝试应用它时,我似乎在抛出错误 ValueError:不支持任何值 tf.reset_default_graph() z = tf.get_variable(name = 'z', shape = [1]) b = tf.get_variable('b', [1]) c = b*b - 2*b + 1 optimizer = tf.train.AdamOpt
tf.reset_default_graph()
z = tf.get_variable(name = 'z', shape = [1])
b = tf.get_variable('b', [1])
c = b*b - 2*b + 1
optimizer = tf.train.AdamOptimizer(0.1)
gradients, variables = zip(*optimizer.compute_gradients(c))
gradients = tf.clip_by_global_norm(gradients, 2.5)
train_op = optimizer.apply_gradients(zip(gradients, variables))
谁能告诉我我做错了什么,或者tf.clip_by_global_norm不能处理无梯度,我必须手动处理它们
官方文件似乎同意@danijar的评论。看
t_list中类型为None的任何条目都将被忽略
代码中有一个小问题:当函数返回一对值时,将tf.clip\u by_global\u norm的返回值赋给单个变量 文件说: 返回: list\u clipped:与list\t类型相同的张量列表 全局_范数:表示全局范数的0-D标量张量 因此,在下一行中,当您尝试将渐变应用于变量时,问题就会出现 您可以轻松地修复代码,忽略全局返回值
gradients, _ = tf.clip_by_global_norm(gradients, 2.5)