使用 cntk 检查点进行预测
do predictions using cntk checkpoint
这几天尝试了一个cntk实现的模型。但我找不到用训练有素的模型预测新图片的方法。
保存为检查点的训练模型:
trainer.save_checkpoint(os.path.join(output_model_folder, "model_{}".format(best_epoch)))
然后我得到了一些文件,例如:
所以,我尝试像这样加载这个模型检查点:
model = ct.load_model('../data/models/VGG13_majority/model_94')
上面的代码可以运行成功。然后我尝试了
model.eval(image_data)
但是我得到一个错误:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~更新~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
这次我尝试了下面的方法:
model = ct.load_model('../data/models/VGG13_majority/model_94')
model.eval({model.arguments[0]: [final_image]})
然后出现一个新错误:
对于任何 C.Function.eval() 你需要传递一个字典作为参数。
所以它会像这样,假设你只有一个 input_variable 进入模型:
model = C.load_model()
model.eval({model.arguments[0]: image_data})
无论如何,我注意到你从检查点保存了模型。通过这样做,您实际上也将 "ground_truth" input_variable 保存到损失函数中。
我建议您下次直接保存模型。通常 save_checkpoint 中的文件用于 restore_from_checkpoint()
import cntk as C
from cntk.layers import Dense
model = Dense(10)(C.input_variable(1))
loss = C.binary_cross_entropy(model, C.input_variable(10))
trainer = C.Trainer(model, (loss,), [C.adam(model.parameters, 0.9, 0.9)])
trainer.save_checkpoint("hello")
model.save() # used this to save the model directly
# to recover model from checkpoint use below
trainer.restore_from_checkpoint("hello")
original_model = trainer.model
print(trainer)
for i in trainer.model.arguments:
print(i)
这几天尝试了一个cntk实现的模型。但我找不到用训练有素的模型预测新图片的方法。 保存为检查点的训练模型:
trainer.save_checkpoint(os.path.join(output_model_folder, "model_{}".format(best_epoch)))
然后我得到了一些文件,例如:
所以,我尝试像这样加载这个模型检查点:
model = ct.load_model('../data/models/VGG13_majority/model_94')
上面的代码可以运行成功。然后我尝试了
model.eval(image_data)
但是我得到一个错误:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~更新~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
这次我尝试了下面的方法:
model = ct.load_model('../data/models/VGG13_majority/model_94')
model.eval({model.arguments[0]: [final_image]})
然后出现一个新错误:
对于任何 C.Function.eval() 你需要传递一个字典作为参数。
所以它会像这样,假设你只有一个 input_variable 进入模型:
model = C.load_model()
model.eval({model.arguments[0]: image_data})
无论如何,我注意到你从检查点保存了模型。通过这样做,您实际上也将 "ground_truth" input_variable 保存到损失函数中。
我建议您下次直接保存模型。通常 save_checkpoint 中的文件用于 restore_from_checkpoint()
import cntk as C
from cntk.layers import Dense
model = Dense(10)(C.input_variable(1))
loss = C.binary_cross_entropy(model, C.input_variable(10))
trainer = C.Trainer(model, (loss,), [C.adam(model.parameters, 0.9, 0.9)])
trainer.save_checkpoint("hello")
model.save() # used this to save the model directly
# to recover model from checkpoint use below
trainer.restore_from_checkpoint("hello")
original_model = trainer.model
print(trainer)
for i in trainer.model.arguments:
print(i)