目前我正在使用以下代码加载之前训练过的模型:
with tf.Session() as sess: saver.restore(sess, tf.train.latest_checkpoint('./'))
这段代码会加载在保存模型时创建的”checkpoint”文件中记录的文件。然而,”checkpoint”文件总是指向最后训练的模型,所以如果我想加载另一个模型,我必须手动编辑”checkpoint”文件来更改模型名称。
我的问题是,如何在不手动编辑”checkpoint”文件的情况下,恢复我创建的不同于最后一个的训练模型?
回答:
你可以使用jsonpickle来保存变量和模型,并在以后加载它们。例如:
sklearn_model = RandomForestClassifier()sklearn_model.fit(x,y)model_object = jsonpickle.pickler.Pickler.flatten(sklearn_model)model = jsonpickle.unpickler.Unpickler.restore(model_object)model.predict(new_x)
你现在只需在需要时保存模型,并根据需要加载它。model_object是一个可以保存到文件中的JSON代码。你可以在这里了解更多关于这个包的信息