问题标签 [gpflow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gpflow - GPflow - 具有 1 维线性内核的 GP 分类不适合二维数据
在问题#1435之后,我还有一个关于如何使用 GPflow 的问题。
我在一个额外的内核中复制了这个问题:https ://github.com/avalonhse/BayesNotebook/blob/master/Issue_2_GPFlow_Linear_Classification.ipynb
我的目的是将加性内核拟合到二维数据(维度 1 中的平方指数和维度 2 中的线性内核)。按照#1435的说明,我已经成功地用内核 gpflow.kernels.Linear(variance= 0.1) 拟合了模型。
但是,当我按照最初的计划使用内核 gpflow.kernels.Linear(active_dims= 1 ,variance= 0.01) 时,模型不适合。我使用具有相同内核的 GPy 作为参考,结果看起来很合理。
GPy 代码仅供参考,以建议拟合模型应该如何。我知道 GPy 和 GPflow 使用不同的方法。我的问题是为什么当我在一维中指定线性内核时 GPflow 模型不适合。
python - 使用 Tensorflow 的 adam 优化器在 GPflow 中进行稀疏 GPR 估计
是否有在 GPflow中使用具有稀疏估计(例如SVGP
或)的 Adam 优化器的代码示例。SGPR
我无法立即找到任何示例,并且自从更新到 GPflow 2.0 以来,如何将数据(例如X
和)传递给模型也不是很明显。Y
任何帮助,将不胜感激。
tensorflow - 将模型保存在 gpflow 2 中
我正在尝试保存 GPflow 模型(在 GPflow 2.0 版中)。
由于gpflow
包不再有saver
模块,任何人都可以用另一种方式帮助我吗?
python - 为什么 GPflow 模型似乎无法通过 tf.optimizers.Adam 等 TensorFlow 优化器学习任何东西?
我的诱导点设置为可训练但在我调用时不会改变opt.minimize()
。为什么是它,它是什么意思?这是否意味着模型不学习?tf.optimizers.Adam(lr)
和 和有什么不一样gpflow.optimizers.Scipy
?
以下是改编自文档的简单分类示例。当我使用 gpflow 的 Scipy 优化器运行此代码示例时,我会得到经过训练的结果,并且诱导变量的值会不断变化。但是当我使用 Adam 优化器时,我只能得到一个直线预测,并且诱导点的值保持不变。这表明模型没有使用 Adam 优化器进行学习。
该示例的链接是https://gpflow.readthedocs.io/en/develop/notebooks/advanced/multiclass_classification.html
regression - 使用 LinearCoregionalization 核计算 GPR 模型的对数边际似然
当我尝试使用 LinearCoregionalization 内核计算 GPR 模型的对数边际似然时,发生了 InvalidArgumentError,尽管可以在将内核插入 SVGP 模型时计算 ELBO。
据我(我不得不说的一个新手)可以看到,这是因为 GPR 模型不检查模型是多输出还是单输出,而只是以相同的方式对待它们。如何在不将多输出模型重塑为单输出模型的情况下方便地计算它?提前致谢。
错误信息
tensorflow2.0 - 在 GPflow 中进行推理的 API
我已经在 GPflow 中构建了一些高斯过程模型并成功地学习了它们,但是我找不到可以帮助我在 GPflow 中直接进行推理的 API,例如在 GPR 模型中分离不同内核的贡献。
我知道我可以手动完成,比如计算协方差矩阵、逆和乘法,但是随着模型变得更加复杂,比如多输出 SVGP 模型,这样的工作会很烦人。有什么建议么?
提前致谢!
tensorflow2.0 - GPflow 中的 Adam 优化器正在处理哪种类型的参数,受约束还是不受约束?
在SVGP和natural gradient等 GPflow 的文档中,TensorFlow 中的 Adam 优化器用于使用随机变分推理技术训练 GP 模型的模型参数(长度尺度、方差、诱导输入等),而自然梯度优化器对于变分参数。一个片段如下所示
如图所示,model.trainable_variables 被传递给 Adam 优化器,该优化器继承自 tf.Module,由包括长度尺度和方差在内的多个参数组成。
我关心的是 Adam 优化器是否正在处理模型参数的无约束或约束版本。一段测试代码运行如下
并返回
据我所知,高斯过程的参数(如长度尺度和内核的方差)不是负数,在训练时应该受到约束。我不是 GPflow 或 TensorFlow 的源代码专家,但似乎 Adam 正在研究不受约束的参数。这只是对我的误解,还是别的什么?
提前感谢您的帮助!
machine-learning - 优化双射变换值是否会影响性能或准确性?
如果我想针对某个约束值优化一个函数,我可以在无约束空间和约束空间之间找到一个双射映射,然后针对无约束值优化原始函数和双射映射的组合。
在不同的空间进行优化是否会影响优化的性能或准确性?它在双射映射之间会有所不同吗?
我的用例是使用 TensorFlow Probability 的双射器在 GPflow 中训练受约束的高斯过程模型超参数。
gpflow - 准确率没有增加,虽然损失在减少
我正在将 cnn 功能输入 gpflow 模型。我在这里从我的程序中编写代码块。我正在将 tape.gradient 与 Adam 优化器(预定 lr)一起使用。我的准确率停留在 47%,令人惊讶的是,我的损失仍在减少。它非常奇怪。我已经调试了程序。CNN 功能还可以,但 gp 模型没有学习。请你检查训练循环,让我知道我哪里错了。
训练循环是
我正在从迁移学习期间保存的检查点恢复 CNN 的权重。
随着更多的时期,损失继续减少,但准确性也开始下降。
gp模型声明如下
测试功能