这可能是一个奇怪的问题,但当高斯过程回归看到一堆噪声数据而没有太多信号时,它们会做什么?下面我取一堆噪声数据,运行两个不同的GPR实现,它们都产生超微小的置信区间。有没有一个很好的理由来解释为什么会这样?我的直觉告诉我,置信区间应该更大。GPR真的对他们对平均值的估计那么有信心吗?此外,除了添加白噪声核之外,是否有一种适当的方法来填充方差估计? import numpy as np
import gpflow as gpflow
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussia
我想要构建一个具有边缘化的超参数的GP。
我已经看到,在的gpflow中提供HMC采样器是可能的。
但是,当我尝试运行下面的代码作为第一步(注意这是在gpflow 0.5,一个旧版本上)时,返回的样本是负的,尽管长度和方差必须是正的(负值将是无意义的)。
import numpy as np
from matplotlib import pyplot as plt
import gpflow
from gpflow import hmc
X = np.linspace(-3, 3, 20)
Y = np.random.exponential(np.sin(X) ** 2)
Y = (Y -
在进行GP回归时,在GPflow 2.0中,我想对长尺度设置硬界(即限制长尺度优化范围)。在这个线程()之后,我构建了一个TensorFlow双射链(参见下面的bounded_lengthscale函数)。然而,下面的双射链并不能阻止模型在假定的边界之外进行优化。我需要修改什么才能使bounded_lengthscale函数对优化设置严格的限制?
以下是MRE:
import gpflow
import numpy as np
from gpflow.utilities import print_summary
import tensorflow as tf
from tensorflow_
我的诱导点被设置为可训练的,但当我调用opt.minimize()时不会改变。为什么是它,它的意思是什么?这是否意味着,模型不是在学习?tf.optimizers.Adam(lr)和gpflow.optimizers.Scipy之间的区别是什么
以下是改编自文档的简单分类示例。当我使用gpflow的Scipy优化器运行此代码示例时,我会得到经过训练的结果,并且诱导变量的值不断变化。但当我使用Adam优化器时,我只能得到一个直线预测,诱导点的值保持不变。这表明模型没有使用Adam优化器进行学习。
该示例的链接为
import numpy as np
import tensorflow as
我正在尝试将一个自定义均值函数传递到GPflow 2.0中。我有一些(x,y,z)数据,每个x,y点都有几个观测值。我想传递每个(x,y)对的平均z值作为均值函数。我的自定义均值函数的代码如下,其中train_xy是我的训练数据中的(x,y,z)元组(x和y是输入,z是输出)。
下面是我的代码,设置均值函数,并将其传递给一个简单的GPR模型。
class CustomMean(gpflow.mean_functions.MeanFunction):
"""
means = mean(grouped by unique tuples of input1
我试图遵循GPFlow中的多类分类(使用v2.1.3),如下所述:
与实例不同的是,X向量为10维,可预测的类数为5,但在使用诱导变量时,维数似乎存在误差。我更改了内核,并使用虚拟数据进行可复制性,只想让这些代码运行。我把变量的维数放在这个问题上。对损失的任何计算都会导致以下错误:
ValueError: Dimensions must be equal, but are 10 and 5 for '{{node truediv}} = RealDiv[T=DT_DOUBLE](strided_slice_2, truediv/softplus/forward/IdentityN)
当从已经具有初始化程序的类继承时,如何添加自定义初始化程序?
我所拥有的是一个Vehicle类,它有一个接受参数name的参数化器。我想要做的是从这个Vehicle类继承,为新类创建另一个初始化器,但是继续使用现有的初始化器。
基类(这里没有问题):
class Vehicle{
var make:String
init(make:String){
self.make = make
}
}
新班(不起作用):
// Not sure how to structure this class
class Car:Vehicle {
var eng