在使用GPFlow训练GP模型时,我有兴趣观察赋予ScipyOptimizer的渐变。我想将这些渐变与其他GP模型交叉引用。在将这些张量传递给优化器之前,有人会对如何输出这些张量有任何建议吗?
答案 0 :(得分:0)
我认为不破解gpflow源代码就没有办法实现这一目标。最简单的解决方案可能是编辑gpflow / training / external_optimizer.py中loss_grad_func_wrapper
内定义的ScipyOptimizerInterface._minimize
函数-它获得所有可训练参数x
的值,损耗和渐变-尽管请注意,这些都是 packed 参数(即所有参数的单个数组)-您必须手动将它们拆分为每个张量的值/梯度...或修改{{1} eval_func(x)
中的}进行解包,更新feed_dict,运行梯度计算并打包结果...我希望这至少为您提供了一个起点!