Tensorflow:加载,节省时间
Tensorflow: loading, saving time
我有四个具有相同结构的不同模型,它们在 "main" 问题中用作预测器。每次在 "main" 问题中,我都会调用其中之一来提供预测。此外,使用新的观察结果,我更新了每个网络的权重。
目前,为了区分模型,我将它们保存在四个不同的 ckpt
模型中,然后每次加载它们进行预测或更新。当网络更新时,我再次保存它。
这个程序效果很好。问题是初始化变量、加载模型并再次保存它的成本太高。每次我调用网络更新,大约需要 10 秒,其中大约 1 秒用于训练,时间提醒用于初始化、加载和保存。
作为另一种方法,我尝试让模型保留在内存中。但是,由于我有一个 dnn.py
,我为四个问题中的每一个都调用它,变量的名称、参数等都是相同的。所以,TensorFlow
对它们感到困惑,而且它根本不起作用。
由于我可能有四个以上的预测变量(甚至像 22 个),因此创建四个具有不同变量名称的不同 dnn.py
是不合理的。
如果能以有效的方式编写程序,我将不胜感激。
最佳,
阿夫欣
为每个训练步骤从磁盘读取变量听起来效率很低,您应该重新组织您的网络以将这些值保存在内存中,即通过使用 variable_scope 将不同的变量集分开
我有四个具有相同结构的不同模型,它们在 "main" 问题中用作预测器。每次在 "main" 问题中,我都会调用其中之一来提供预测。此外,使用新的观察结果,我更新了每个网络的权重。
目前,为了区分模型,我将它们保存在四个不同的 ckpt
模型中,然后每次加载它们进行预测或更新。当网络更新时,我再次保存它。
这个程序效果很好。问题是初始化变量、加载模型并再次保存它的成本太高。每次我调用网络更新,大约需要 10 秒,其中大约 1 秒用于训练,时间提醒用于初始化、加载和保存。
作为另一种方法,我尝试让模型保留在内存中。但是,由于我有一个 dnn.py
,我为四个问题中的每一个都调用它,变量的名称、参数等都是相同的。所以,TensorFlow
对它们感到困惑,而且它根本不起作用。
由于我可能有四个以上的预测变量(甚至像 22 个),因此创建四个具有不同变量名称的不同 dnn.py
是不合理的。
如果能以有效的方式编写程序,我将不胜感激。
最佳,
阿夫欣
为每个训练步骤从磁盘读取变量听起来效率很低,您应该重新组织您的网络以将这些值保存在内存中,即通过使用 variable_scope 将不同的变量集分开