gpt4 book ai didi

python - 在 GPy 库中找不到绘图函数 (python)

转载 作者:太空宇宙 更新时间:2023-11-03 11:23:30 24 4
gpt4 key购买 nike

我正在使用 GPy Python 2.7 中的库来执行高斯过程回归。我首先遵循 GitHub 页面中提供的教程笔记本。

示例代码:

import numpy as np
import matplotlib.pyplot as plt

f = lambda x : np.sin(x**2)

kernel = GPy.kern.RBF(input_dim=1, variance=1., lengthscale=1.)

X=np.random.rand(2,1)
Y=f(X)

m = GPy.models.GPRegression(X,Y,kernel)
m.optimize_restarts(num_restarts = 10,verbose=False)

fig=m.plot()
plt.show()

我目睹的奇怪事情是GPRegression 类中没有实现plot 函数(好吧,它只是 的一个小子类>GP.),也不在它的父类(super class)(GP),也不在它的超父类(super class)(模型).. . 全部位于 GPy.core

当我调用m.plot() 时执行的绘图函数在GPy.plotting.gpy_plot(不包含任何类,但仍然使用“self”关键字作为函数参数 - 但也许它只是函数参数的“坏”名称?)。

我看不到 GPy.core.GP 对象如何访问此绘图函数(乍一看,两个 python 文件之间没有任何链接 - Ctrl+F "plot"in < strong>GPy/core/gp.py 例如没有给出任何内容)。

当我打电话

vars(GPy.models.gp_regression.GP).keys()

,绘图功能确实存在,虽然没有直接在 GPy.core.GP 中实现。

同样的事情:(最小可重现的例子)

import GPy.core.gp
import GPy.likelihoods
import GPy.kern
import matplotlib.pyplot as plt

GPy.core.gp.GP.__dict__.keys()

知道如何 GPgpy_plot 中调用绘图函数,以及为什么 以这种方式编码?

最佳答案

绘图库被“注入(inject)”到 GPy/GPy/plotting/__init__.py 的 inject_plotting() 中.这里是 plot() 的行:

    from ..core import GP
...
GP.plot = gpy_plot.gp_plots.plot

我认为这种设计的原因是它允许通过 change_plotting_library() 轻松即时更改绘图库.

关于python - 在 GPy 库中找不到绘图函数 (python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38347340/

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