Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在TensorFlow中定义一个正变量_Tensorflow - Fatal编程技术网

在TensorFlow中定义一个正变量

在TensorFlow中定义一个正变量,tensorflow,Tensorflow,使用Tensorflow,我试图优化的形状参数。形状参数应始终大于零 在TensorFlow中定义正变量的好方法是什么 我看到了两种方法: 假设您在tf.Variable中有参数,您可以使用约束参数(get\u Variable也有它)。这需要是一个基本上将变量投影到允许空间的函数。例如,您可以在此处传递tf.nn.relu,如果出现负值,则会将其映射为0 可能更优雅:使用无约束变量,但通过合适的函数(如tf.exp)将其映射为正值。例如,如果变量为x,则将tf.exp(x)作为参数传递给威布尔

使用Tensorflow,我试图优化的形状参数。形状参数应始终大于零


在TensorFlow中定义正变量的好方法是什么

我看到了两种方法:

  • 假设您在
    tf.Variable
    中有参数,您可以使用
    约束
    参数(
    get\u Variable
    也有它)。这需要是一个基本上将变量投影到允许空间的函数。例如,您可以在此处传递
    tf.nn.relu
    ,如果出现负值,则会将其映射为0
  • 可能更优雅:使用无约束变量,但通过合适的函数(如
    tf.exp
    )将其映射为正值。例如,如果变量为
    x
    ,则将
    tf.exp(x)
    作为参数传递给威布尔分布。然后
    x
    表示参数的日志

  • 第二种方法,我也可以使用$tf.square(shape)+1e-6$。由于参数不能为0,我必须添加一个非常小的值(tf.exp也是如此)。对吗?我想那会很管用;我认为exp最常用于这些目的,但老实说,我不知道为什么。它可能有一些来自数学/统计的更深层次的推理。尽管如此,任何映射到正数的函数都应该可以。添加一个小常数对于数值稳定性来说似乎是一个好主意(使用exp时,这一点不太重要,因为除了底流之外,exp始终大于0)。