我可以深度复制 `gpflow.models.GPModel` 吗? (GPflow2)
Can I deepcopy a `gpflow.models.GPModel`? (GPflow2)
我们已经训练了一个模型,并希望以几种不同的方法使用它,每种方法都会对其进行变异。但是,第一个方法调用会污染后续调用的模型。
理想情况下,我们只想深度复制模型,然后将副本传递给变异方法。
这可能吗?或者有更好的选择吗?
当然可以。 GPflow 2.0.0-rc1 有深拷贝的实现,但是叫deepcopy_components
Artem 的回答适用于 GPflow 2.0 的 rc1 候选版本。在最终的 2.0 版本中,函数是 gpflow.utilities.deepcopy
.
您还可以使用 gpflow.utilities.freeze
获取模型的不可变*快照,其中 returns 每个 tf.Variable
和 gpflow.Parameter
的模型都替换为 tf.Tensor
.
*不可变,因为它无法训练
我们已经训练了一个模型,并希望以几种不同的方法使用它,每种方法都会对其进行变异。但是,第一个方法调用会污染后续调用的模型。
理想情况下,我们只想深度复制模型,然后将副本传递给变异方法。
这可能吗?或者有更好的选择吗?
当然可以。 GPflow 2.0.0-rc1 有深拷贝的实现,但是叫deepcopy_components
Artem 的回答适用于 GPflow 2.0 的 rc1 候选版本。在最终的 2.0 版本中,函数是 gpflow.utilities.deepcopy
.
您还可以使用 gpflow.utilities.freeze
获取模型的不可变*快照,其中 returns 每个 tf.Variable
和 gpflow.Parameter
的模型都替换为 tf.Tensor
.
*不可变,因为它无法训练