我在训练过程中使用了以下代码进行梯度裁剪
variables = tf.trainable_variables()enc_vars = [v for v in variables if v.name.startswith('encoder')]enc_opt = tf.train.AdamOptimizer()gvs = enc_opt.compute_gradients(loss, var_list=enc_vars)capped_gvs = [(tf.clip_by_value(grad, -10., 10.), var) for grad, var in gvs]train_enc = enc_opt.apply_gradients(capped_gvs)
我已经检查过enc_vars
和gvs
都不是空的。但在上述代码的第六行我得到了错误提示
ValueError: None values not supported.
我做错了什么?提前感谢您的帮助。
回答:
你的gvs
列表中的某个梯度值应该是None
。请再次仔细检查,你可能会发现问题所在。