gpt4 book ai didi

python - 如何将裁剪应用于 TensorFlow 中的可训练变量

转载 作者:行者123 更新时间:2023-12-04 15:51:30 25 4
gpt4 key购买 nike

我想知道如何在 TensorFlow 中对可训练变量应用裁剪。

我有一个正在训练的变量 z

z = tf.get_variable(...)

然后我想优化它,但我想将它保持在 [-1,1] 范围内。现在,我正在做如下所示的剪裁:

train_step = optimizer.minizmize(loss, var_list=[z])
z = tf.clip_by_value(z, -1, 1)

但是我感觉没有进行剪裁。应该怎么做?

最佳答案

您的裁剪尝试无效,因为 tf.clip_by_value 仅返回一个新的张量,该张量将保存变量的裁剪值,但是变量本身不会受到影响。 IE。在您的代码片段之后,Python 变量 z 不再指向最初创建的 Tensorflow 变量

如果您想手动执行此操作,您应该使用 tf.assign 将剪切值实际分配给变量。然而,最方便的方法可能是使用 get_variableconstraint 参数。请查看the docs .这样的事情应该有效:

z = tf.get_variable(..., constraint=lambda x: tf.clip_by_value(x, -1., 1.)

这应该在每次 minimize 调用后应用传递给 constraint 的函数。

关于python - 如何将裁剪应用于 TensorFlow 中的可训练变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53593317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com