python - TensorFlow 服务 RAM 使用情况
问题描述
我无法在文档中找到有关如何在 TensorFlow Serving 中保存和加载模型以及在 CPU 与 GPU 上运行时可能存在的差异的具体信息。
为了服务多个模型(以及每个模型的一个或多个版本),一个通用的工作流程是:
- 训练模型
- 保存冻结模型 ( tf.saved_model.simple_save )
- 创建目录结构,包含
- 保存模型.pb
- 变量/variables.data
- 变量/变量.index
- 指向config.conf中的模型和版本
我目前正在 CPU 上运行推理并一次加载许多模型,这比预期更快地消耗 RAM。保存的模型在磁盘上相对较小,但是当 TF Serving 将模型加载到内存中时,它几乎大了一个数量级。磁盘上单个200MB的saved_model 变成了1.5GB的 RAM,极大地限制了可以加载的模型数量。
问题:
- 这种行为(RAM 中更大的内存占用)是预期的吗?
- TF Serving 在 CPU 和 GPU 上使用内存的方式有区别吗?
- 我们能否通过在 GPU 上进行推理来加载更多模型?
松散相关的搜索结果:
解决方案
是的,这是预期的。
不,CPU/GPU 无关紧要
由于 GPU 内存比系统内存少,您可能会在 GPU 内存中安装更少的内存。
推荐阅读
- azure - Azure 订阅策略
- python - 无法按日期解析熊猫中的索引
- r - 为什么VBA代码打开R文件而不是运行代码
- angular - 如何使 ngx-easy-table 响应式
- python - 从每个键具有多个值的字典中将数据写入 csv
- python - API 问题 - 如何使用 Python 进行 REST 请求
- git - 在 BitBucket 网站上合并到 master,现在本地 master 中缺少提交
- c - exec 错误地址,NULL addet
- java - java - 如何指定相对于Java中某个文件夹的路径?
- php - PHP 页面中的 sqlsrv_query MS SQL 出错