【问题标题】:Storing tensorflow models in memory将张量流模型存储在内存中
【发布时间】:2017-01-02 03:44:56
【问题描述】:

我正在编写的程序涉及在运行时在模型之间切换。

我目前正在使用 Saver 从磁盘中保存/加载模型,如下所示:https://www.tensorflow.org/api_docs/python/state_ops/saving_and_restoring_variables#Saver。

模型相当小,可以存储在内存中,所以我想知道是否有人知道在内存中存储和恢复这些模型而不是将它们保存到磁盘的方法。

我尝试修改 tensorflow 源以将模型保存到内存中,但 gen_io_ops 似乎是在编译期间生成的。另一种可能的方法是使用内存映射文件。有谁知道更简单的方法吗?

【问题讨论】:

  • 保存到 tmpfs 怎么样?

标签: python tensorflow


【解决方案1】:

我只会有两个不同的会话,它们有自己的计算图。或者,您可以在同一个会话中复制计算图(变量、操作等的两个副本)。然后你可以打电话给sess.run(comp1 if useCompOne else comp2),但是你想设置它。

【讨论】:

  • 这种方法(假设两个会话都处于活动状态)会将变量保留在它们所在的位置,即在 GPU 内存中;如果 GPU 内存是瓶颈(通常是),则 OP 需要一种解决方案来将非活动会话数据从 GPU 移动到更便宜/更大的系统 RAM。
  • 非常正确。我正在处理他的评论:“模型相当小,可以存储在内存中”。我想您可以在 RAM 上拥有这两个集合的副本,在 GPU 内存上拥有一个计算集,然后编写一个“传输”操作以将当前值从 gpu 复制到 ram,反之亦然,如果这是需要的话,但是一旦它们不再适合记忆,我会考虑探索其他选项。
猜你喜欢
  • 2020-02-25
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
相关资源
最近更新 更多