TensorFlow 服务 RAM 使用情况

Ric*_*ard 5 python tensorflow tensorflow-serving

我无法在文档中找到有关如何在 TensorFlow Serving 中保存和加载模型以及在 CPU 与 GPU 上运行时可能存在的差异的特定信息。

为了提供多个模型(以及每个模型的一个或多个版本),一个通用的工作流程是:

  • 训练模型
  • 保存冻结模型(tf.saved_model.simple_save
  • 创建包含的目录结构
    • 保存模型.pb
    • 变量/变量.data
    • 变量/变量.index
  • 指向config.conf 中的模型和版本

我目前正在 CPU 上运行推理并同时加载许多模型,这比预期的更快地消耗 RAM。保存的模型在磁盘上相对较小,但是当 TF Serving 将模型加载到内存中时,它几乎大了一个数量级。磁盘上单个200MB 的saved_model 变成RAM 中的1.5GB,极大地限制了可以加载的模型数量。

问题:

  • 这种行为(RAM 中更大的内存占用)是预期的吗?
  • TF Serving 在 CPU 和 GPU 上使用内存的方式有区别吗?
  • 我们能否通过在 GPU 上进行推理来加载更多模型?

松散相关的搜索结果: