在使用 GPFlow 训练 GP 模型时,我对观察 ScipyOptimizer 的梯度很感兴趣。我想将这些渐变与其他 GP 模型进行交叉引用。在将这些张量交给优化器之前,有人会对如何输出这些张量有任何建议吗?
问问题
41 次
1 回答
0
我认为没有破解 gpflow 源代码的方法可以实现这一点。最简单的解决方案可能是编辑gpflow/training/external_optimizer.py 中loss_grad_func_wrapper
定义的函数ScipyOptimizerInterface._minimize
——它有所有可训练参数的值x
、损失和梯度——尽管请注意这些是打包参数(即单个数组所有参数) - 您必须手动将它们拆分为每个张量的值/梯度......或破解eval_func(x)
in ExternalOptimizerInterface
,它进行解包,更新 feed_dict,运行梯度计算,并打包结果......我希望这至少给了你一个起点!
于 2019-03-30T22:53:44.713 回答