在使用多层感知器时,我正在关注此tensorflow tutorial进行渐变裁剪。
grads_and_vars = optimizer.compute_gradients(cross_entropy_loss, trainable_variable)
capped_grads_and_vars = [(tf.clip_by_global_norm(gv[0],5), gv[1]) for gv in grads_and_vars]
optimizer.apply_gradients(capped_grads_and_vars)
tensorflow显示以下错误,
in clip_by_global_norm raise TypeError("t_list should be a sequence")
trainable_variable 是我在创建模型时创建的列表。假设我有一个可训练的变量(tf.Variable),我通过以下命令将此变量添加到 trainable_variable 列表。
trainable_variable.append(var) #where ver is a trainable variable in tensorflow
答案 0 :(得分:1)
此类问题的关键点是, trainable_variable 列表可能包含未在图表中初始化或使用的多个张量。确保在 trainable_variable 列表中安全地包含所有张量。有时甚至它们可能包含 NaN 用于梯度计算。这种类型的错误也可能引入不自然的价值。