Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Python 在GPflow 2.0中设置超参数优化边界_Python_Tensorflow_Tensorflow2.0_Tensorflow Probability_Gpflow - Fatal编程技术网

Python 在GPflow 2.0中设置超参数优化边界

Python 在GPflow 2.0中设置超参数优化边界,python,tensorflow,tensorflow2.0,tensorflow-probability,gpflow,Python,Tensorflow,Tensorflow2.0,Tensorflow Probability,Gpflow,在GPflow 1.0中,如果我想对lengthscale等参数设置硬边界(即限制参数的优化范围) 将参数绑定在4和6之间 GPflow 2.0的文档说,转换由TensorFlow概率的双对象类处理。哪个Bijector类负责设置参数的硬限制,正确的实现方法是什么 关于gpflow1.0,这里也提出了类似的问题()。但由于gpflow1.0不涉及双喷射器的使用,我提出了一个新问题 这对于双喷射器链来说相当容易做到: [35]中的a=3.0 …:b=5.0 …:affine=tfp.bijecto

在GPflow 1.0中,如果我想对lengthscale等参数设置硬边界(即限制参数的优化范围)

将参数绑定在4和6之间

GPflow 2.0的文档说,转换由TensorFlow概率的双对象类处理。哪个Bijector类负责设置参数的硬限制,正确的实现方法是什么


关于gpflow1.0,这里也提出了类似的问题()。但由于gpflow1.0不涉及双喷射器的使用,我提出了一个新问题

这对于双喷射器链来说相当容易做到:

[35]中的
a=3.0
…:b=5.0
…:affine=tfp.bijectors.AffineScalar(shift=a,scale=(b-a))
…:sigmoid=tfp.bijectors.sigmoid()
…:logistic=tfp.bijectors.Chain([affine,sigmoid])
[36]中:逻辑正演(逻辑逆演(3.1)+0.0)
出[36]:
现在,您可以将
logistic
bijector直接传递给参数构造函数

[45]中的
p=gpflow.Parameter(3.1,transform=logistic,dtype=tf.float32)
In[46]:p
出[46]:
In[47]:p.无约束的_变量
出[47]:

很抱歉在这里不断提问,但我一定不明白这个定制物流bijector是如何工作的。我试图实现你的建议,但发现即使我创建了一个lengthscale等于p的内核(在你上面的答案中),我仍然可以将内核优化到远远超出[a,b]的值。我的希望是找到一种方法来绑定像lengthscale这样的参数,这样它就不能优化超过特定值。有没有办法修改代码,使其以这种方式工作?@Rcameron,听起来像个bug,因此你需要发布你的MWE。@[Artem Artemev],我在这里发布了一个MWE:感谢你在这方面的持续帮助!
transforms.Logistic(a=4., b=6.)