python - Tensorflow:训练时如何将模型保存在内存中

标签 python model tensorflow tensorflow-serving

我的 tensorflow 训练过程涉及两个模型之间的切换。 而使用tf.saver并从硬盘恢复模型确实非常耗时(在我的代码中,切换很频繁),因此,我想知道是否有一种方法可以将模型参数存储在内存中并仅恢复它们从内存里。我的模型比较小,完全可以存到RAM里。 stackoverflow 上有一个答案。 Storing tensorflow models in memory但是,我不太明白这是如何运作的。有谁知道如何实现这个目标?谢谢。

最佳答案

您应该只使用两个单独的图表,如下所示:

g1 = tf.Graph()
g2 = tf.Graph()

with g1.as_default():
  # build your 1st model
  sess1 = tf.Session(graph=g1)
  # do some work with sess1 on g1
  sess1.run(...)

with g2.as_default():
  # build your 2nd model
  sess2 = tf.Session(graph=g2)
  # do some work with sess2 on g2
  sess2.run(...)

with g1.as_default():
  # do some more work with sess1 on g1 
  sess1.run(...)

with g2.as_default():
  # do some more work with sess2 on g2
  sess2.run(...)

sess1.close()
sess2.close()

您实际上并不需要 with 语句,一旦您创建了 sess1sess2 您就可以使用它们,它们'将引用正确的图表,但每当您使用该图表时,当您仍在习惯 TF 如何处理全局变量时,设置默认图表可能是一个很好的形式。

关于python - Tensorflow:训练时如何将模型保存在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43638305/

相关文章:

python - 在 python 中使用正则表达式解析 IP

python - 什么是(属性错误 : 'NoneType' object has no attribute '__array_interface__' ) mean?

docker - TensorFlow 通过 docker 服务多个模型

python - 如何在 Google Colab 上安装以前版本的 Tensorflow?

python - FIX协议(protocol)简单测试登录

python - 仅当字符串不紧跟在另一个特定字符之后时才在特定字符上拆分字符串

java - 如何在前端和后端实现问答逻辑

model - Magento模型:如何从数组而不是数据库中获取数据?

python - 训练im2txt模型时出错

python - 错误 : Shapes (1, 4) 和 (14,14) 未对齐