5

我们已经训练了一个模型,并希望在几种不同的方法中使用它,每种方法都会改变它。但是,第一个方法调用会污染后续调用的模型。

理想情况下,我们只想对模型进行深度复制,然后将副本传递给变异方法。

这可能吗?还是有更好的选择?

4

2 回答 2

5

当然。GPflow 2.0.0-rc1 有一个深拷贝的实现,但它被称为deepcopy_components

于 2020-01-22T12:19:17.297 回答
0

Artem 的回答适用于 GPflow 2.0 的 rc1 候选版本。在最终的 2.0 版本中,函数是gpflow.utilities.deepcopy.

您还可以使用 获取模型的不可变* 快照,该快照gpflow.utilities.freeze返回具有每个的模型tf.Variablegpflow.Parameter替换为tf.Tensor

*不可变,因为它不能被训练

于 2020-07-19T01:48:28.553 回答