首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用tf.check_numerics

如何使用tf.check_numerics
EN

Stack Overflow用户
提问于 2017-07-09 09:37:55
回答 1查看 2.3K关注 0票数 2

this SO post的启发,我正在尝试使用tf.check_numerics (TensorFlow 1.2)来防止渐变中的NaN。我的代码是:

代码语言:javascript
复制
optimizer = tf.train.RMSPropOptimizer(learning_rate, decay=0.99)
grads_and_vars = optimizer.compute_gradients(graph.loss_total)
grads, variables = zip(*grads_and_vars)
clipped_gradients, _ = (tf.clip_by_global_norm(grads, 1.))

grad_check = tf.check_numerics(clipped_gradients, 'check_numerics caught bad gradients')
     # ^ this line causes an error
with tf.control_dependencies([grad_check]):
    graph.train_op = optimizer.apply_gradients(zip(clipped_gradients, variables))

但我得到了错误消息:

代码语言:javascript
复制
ValueError: Tried to convert 'tensor' to a tensor and failed. Error: Shapes must be equal rank, but are 2 and 1
    From merging shape 2 with other shapes. for 'training/CheckNumerics/packed' (op: 'Pack') with input shapes: [4,16], [16], [16,2], [2].

我做错了什么,我该如何修复它?

EN

回答 1

Stack Overflow用户

发布于 2017-07-09 14:41:52

clipped_gradients是一个列表。试一试

代码语言:javascript
复制
grad_check = tf.check_numerics(clipped_gradients[0], 'check_numerics caught bad gradients')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44992206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档