在TensorFlow中定义一个正变量
使用Tensorflow,我试图优化的形状参数。形状参数应始终大于零在TensorFlow中定义一个正变量,tensorflow,Tensorflow,使用Tensorflow,我试图优化的形状参数。形状参数应始终大于零 在TensorFlow中定义正变量的好方法是什么 我看到了两种方法: 假设您在tf.Variable中有参数,您可以使用约束参数(get\u Variable也有它)。这需要是一个基本上将变量投影到允许空间的函数。例如,您可以在此处传递tf.nn.relu,如果出现负值,则会将其映射为0 可能更优雅:使用无约束变量,但通过合适的函数(如tf.exp)将其映射为正值。例如,如果变量为x,则将tf.exp(x)作为参数传递给威布尔
在TensorFlow中定义正变量的好方法是什么 我看到了两种方法:
tf.Variable
中有参数,您可以使用约束
参数(get\u Variable
也有它)。这需要是一个基本上将变量投影到允许空间的函数。例如,您可以在此处传递tf.nn.relu
,如果出现负值,则会将其映射为0tf.exp
)将其映射为正值。例如,如果变量为x
,则将tf.exp(x)
作为参数传递给威布尔分布。然后x
表示参数的日志第二种方法,我也可以使用$tf.square(shape)+1e-6$。由于参数不能为0,我必须添加一个非常小的值(tf.exp也是如此)。对吗?我想那会很管用;我认为exp最常用于这些目的,但老实说,我不知道为什么。它可能有一些来自数学/统计的更深层次的推理。尽管如此,任何映射到正数的函数都应该可以。添加一个小常数对于数值稳定性来说似乎是一个好主意(使用exp时,这一点不太重要,因为除了底流之外,exp始终大于0)。