存储/重新加载CNTK培训师,型号,输入,输出

时间:2017-12-07 13:05:57

标签: python cntk

存放培训师和所有必要组件的最佳方法是什么?

1。存储

  • 存储trainer的检查点:使用其trainer.save_checkpoint(filename, external_state={})功能
  • 另外单独存储模型:使用z.save(filename)方法,每个cntk操作都有。您还可以获得z = trainer.model

2。重装:

  • 恢复模型:使用C.load_model(...)。 (不要对Cntk 1中已弃用的持久命名空间感到困惑。)
  • 从已恢复的模型中获取输入。
  • 恢复培训师本身:使用trainer.restore_from_checkpoint作为例如。显示here。问题是,这个功能已经需要一个训练器对象,可能必须以与用于创建检查点的训练器相同的方式进行初始化!?

我现在如何恢复进入教练使用的错误功能的标签输入?在下面的代码中,我标记了在我存储它们之后我认为必须恢复的变量。

z = C.layers.Dense(.... )
loss = error = C.squared_error(z, **l**)
**trainer** = C.Trainer(**z**, (loss, error), [mylearner], my_tensorboard_writer)

1 个答案:

答案 0 :(得分:0)

您可以恢复您的培训师,但我实际上更愿意加载我的模型m。原因很简单,创建一个全新的培训师要容易得多,因为您可以更轻松地更改培训师的所有其他参数。 然后,您可以从加载的模型中获取输入变量(如果您的网络只有一个输入):

input_var = m.arguments[0]

然后你需要模型的输出:

output = m(input_var)

使用目标输出target_output定义损失函数:

C.squared_error(output, target_output)

使用您的模型和损失功能,您可以从那里重新创建您的教练,根据您的喜好设置学习率等