TensorFlow 服务 RAM 使用
TensorFlow Serving RAM Usage
我无法在文档中找到有关如何在 TensorFlow Serving 中保存和加载模型的特定信息,以及 运行 在 CPU 与 GPU 上的可能差异。
为提供多个模型(以及每个模型的一个或多个版本),一个通用的工作流程是:
- 训练模型
- 保存冻结模型(tf.saved_model.simple_save)
- 创建目录结构包含
- saved_model.pb
- variables/variables.数据
- variables/variables.index
- 指向config.conf
中的型号和版本
我目前正在 运行 推断 CPU 并同时加载许多模型,这比预期的要快得多。保存的模型在磁盘上相对较小,但当 TF Serving 将模型加载到内存中时,它几乎大了一个数量级。磁盘上的单个 200MB saved_model 变成 RAM 中的 1.5GB,极大地限制了可以加载的模型数量。
问题:
- 这种行为(在 RAM 中占用更大的内存)是预期的吗?
- TF 服务在 CPU 和 GPU 上使用内存的方式有区别吗?
- 我们能否通过在 GPU 上进行推理来加载更多模型?
松散相关的搜索结果:
- Eager load the entire model to estimate memory consumption of Tensorflow Serving
- https://github.com/tensorflow/serving/issues/1215
是的,这是预期的。
不,没关系CPU/GPU
由于 GPU 内存比系统内存少,您可能需要更少的 GPU 内存。
我无法在文档中找到有关如何在 TensorFlow Serving 中保存和加载模型的特定信息,以及 运行 在 CPU 与 GPU 上的可能差异。
为提供多个模型(以及每个模型的一个或多个版本),一个通用的工作流程是:
- 训练模型
- 保存冻结模型(tf.saved_model.simple_save)
- 创建目录结构包含
- saved_model.pb
- variables/variables.数据
- variables/variables.index
- 指向config.conf 中的型号和版本
我目前正在 运行 推断 CPU 并同时加载许多模型,这比预期的要快得多。保存的模型在磁盘上相对较小,但当 TF Serving 将模型加载到内存中时,它几乎大了一个数量级。磁盘上的单个 200MB saved_model 变成 RAM 中的 1.5GB,极大地限制了可以加载的模型数量。
问题:
- 这种行为(在 RAM 中占用更大的内存)是预期的吗?
- TF 服务在 CPU 和 GPU 上使用内存的方式有区别吗?
- 我们能否通过在 GPU 上进行推理来加载更多模型?
松散相关的搜索结果:
- Eager load the entire model to estimate memory consumption of Tensorflow Serving
- https://github.com/tensorflow/serving/issues/1215
是的,这是预期的。
不,没关系CPU/GPU
由于 GPU 内存比系统内存少,您可能需要更少的 GPU 内存。