【发布时间】:2017-04-18 10:46:57
【问题描述】:
我有四个具有相同结构的不同模型,它们被用作“主要”问题的预测器。每次在“主要”问题中,我都会调用其中一个来提供预测。此外,使用新的观察,我更新了每个网络的权重。
目前,为了区分模型,我将它们保存在四个不同的ckpt 模型中,然后我每次都加载它们以进行预测或更新。网络更新后,我再次保存。
这个程序效果很好。问题是初始化变量、加载模型并再次保存它太昂贵了。每次调用网络进行更新,大约需要 10 秒,其中大约 1 秒用于训练,时间提醒用于初始化、加载和保存。
作为另一种方法,我尝试让模型留在内存中。但是,由于我有一个dnn.py,我为四个问题中的每一个都称为它,因此变量、参数等的名称是相同的。所以,TensorFlow 对它们感到困惑,它就是行不通的。
由于我可能有四个以上的预测变量(甚至像 22 个),因此创建四个具有不同变量名称的不同 dnn.py 是不合理的。
如果能以有效的方式编写程序,我将不胜感激。
最好的,
阿夫辛
【问题讨论】:
-
为每个训练步骤从磁盘读取变量听起来效率低下,您应该重新组织网络以将这些值保存在内存中,即使用 variable_scope 将不同的变量集分开
-
嗨,@YaroslavBulatov - 你能把它复制到答案中吗?谢谢!
标签: tensorflow resuming-training