gpt4 book ai didi

variables - 我怎么能限制 tensorflow 中变量的范围

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

我想使用 tensorflow 训练模型。

我有以下变量,我希望模型学习它

Mj=tf.get_variable('Mj_',dtype=tf.float32, shape=[500,4],initializer=tf.random_uniform_initializer(maxval=1, minval=0))

我希望 Mj 的结果值介于 0 和 1 之间。如何添加此约束?

最佳答案

正确的方法是传递裁剪函数 tf.clip_by_valueconstraint tf.Variable 的论据构造函数:

Mj=tf.get_variable('Mj_',
dtype=tf.float32,
shape=[500,4],
initializer=tf.random_uniform_initializer(maxval=1, minval=0),
constraint=lambda t: tf.clip_by_value(t, 0, 1))

来自 tf.Variable 的文档:

constraint: An optional projection function to be applied to the variable after being updated by an Optimizer (e.g. used to implement norm constraints or value constraints for layer weights). The function must take as input the unprojected Tensor representing the value of the variable and return the Tensor for the projected value (which must have the same shape). Constraints are not safe to use when doing asynchronous distributed training.



或者您可能想考虑简单地添加非线性 tf.sigmoid 在你的变量之上。
Mj=tf.get_variable('Mj_',dtype=tf.float32, shape=[500,4])
Mj_out=tf.sigmoid(Mj)

这会将您的变量转换为介于 0 和 1 之间的范围。阅读有关激活函数的更多信息 here .

关于variables - 我怎么能限制 tensorflow 中变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47005283/

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