tmp_classifier = classifier_nn.fit(x,y)for elem in step: classifier_nn.partial_fit(new_x, new_y) classifier_nn = tmp_classifier
我想知道这样做我的估算器是否能“重置”到之前的状态,也就是预训练的分类器(classifier_nn.fit(x,y))。
回答:
不,这样做并不会重置,因为self.fit返回的是self,而不是一个副本。换句话说,tmp_classifier和classifier_nn是指向同一个对象的引用。因此,当你调用partial fit时,你同时修改了这两个引用,而最后的赋值操作没有任何效果。
你需要做的是在拟合后克隆分类器。
classifier_nn.fit(x,y)tmp_classifier = deepcopy(classifier_nn)for elem in step: classifier_nn.partial_fit(new_x, new_y) classifier_nn = tmp_classifier
这样应该可以工作。