保存超参数以进行还原和再培训的好方法是什么

时间:2019-05-27 13:50:56

标签: tensorflow hyperparameters

我只是遇到一个问题,我有一个好的模型,但是忘记了我使用了什么超级参数。我只有元,索引和数据文件。我搜索了超级参数是否保存在这些文件中。但似乎并非如此。那么将超参数与检查点文件保存在一起的最佳方法是什么,以便我可以随时使用相同的参数进行重新训练?

2 个答案:

答案 0 :(得分:1)

  1. 最简单的解决方案是将它们作为速记符号传递给文件名,例如命名文件类似:
Inceptionv4_bs64_lr0.001_Adam

如果这样会使文件名太长,或者如果您已有要保留的命名约定,则只需保存一个与其他文件具有相同名称的文本文件,并使用不同的扩展名即可。 .hyperparams,其中包含有关超参数的信息。

  1. 要直接保存到检查点或模型文件中,您可以定义tf.constant
learning_rate = tf.constant(0.001)

这些将保存在图形定义中,因此,如果重新加载模型或检查点文件,则可以将其恢复。

  1. 如果您想要更复杂的东西,tensorflow 2.0已将HParams类升级为完整的Fledged API。这有点繁琐,但是here提供了一个教程笔记本。功能包括在超参数范围内进行测试,将超参数写入文件和张量板可视化。

  2. 可替代地,还有一些外部平台可以为3.提供类似的功能,更加成熟并可以与tensorflow一起使用:

答案 1 :(得分:1)

我倾向于使用当前日期作为模型名称,并自动生成一个csv文件,例如:

日期,路径模型,hyper_param1,hyper_param2,...,测试acc,val acc,火车acc,损失

这样,我只需使用日期就可以轻松加载以前在新数据集上训练过的任何模型。这种结构对我来说非常好用,并且可以过滤并且易于阅读