neural-network - 用随机梯度下降裁剪梯度
问题描述
我正在训练一个循环神经网络,但我想应用剪裁梯度。我正在使用 sgd。我可以使用剪裁梯度来计算为小批量计算的梯度总和吗?
解决方案
裁剪梯度的总和没有效果。相反,您应该单独剪辑每个渐变。
以下是 Tensorflow 中渐变剪裁的快速代码片段:
max = 20
grads = tf.gradients(loss, tf.trainable_variables())
grads, _ = tf.clip_by_global_norm(grads, max) # gradient clipping
grads_and_vars = list(zip(grads, tf.trainable_variables()))
optimizer = tf.train.AdamOptimizer(learning_rate)
train_op = optimizer.apply_gradients(grads_and_vars)
推荐阅读
- r - 如何为同一 ID 组中的所有同名 obs 定义边?
- python - 嵌套范围内变量绑定的精确规则
- sql - 创建触发器并使用两个变量选择已发货订单的总和
- three.js - Three.js: How to add and remove lights at run time?
- linux - 嵌套 if 在 for 循环中似乎使用所有结果而不是单个结果
- r - 如何删除列中的第一个单词和最后一个单词?
- instagram - Instagram 上的颠倒视频
- c# - SSLHandshakeException CertPathValidatorException:找不到证书路径的信任锚
- node.js - 使用 REACT 调用 NodeJS API
- python - 如何在不重新启动 webdriver 的情况下动态更新 Selenium 方法?