tensorflow - 为什么我的具有 2M 参数的 inception 和 LSTM 模型占用 1G GPU 内存?
问题描述
该模型主要建立在 inception 和 LSTM 之上,由 Keras 在 tensorflow 2.x 上实现。保存的模型参数只占用2M空间。该模型是即时训练的,批大小为 32,每批的数据量为 0.25M。model.fit_generator 中的 worker 为 20,use_multiprocessing=True。
但是,我观察到它需要 1G 的 GPU 内存。我无法弄清楚原因,也不知道在训练期间可以使用哪些工具来监控模型不同部分的 GPU 内存成本。
解决方案
分配的 GPU 内存不仅用于参数,还用于反向传递的激活和梯度。
此外,您必须考虑以下因素会影响使用的内存量:
- 批量大小:批量中的更多图像意味着更多的激活
- 工人数量:每个工人都需要一定数量的内存来操作
推荐阅读
- html - :before 伪元素不在 div 中
- javascript - 如何在网站上的谷歌地图中添加搜索框?
- maven - Jenkins 无法运行 maven clean deploy
- angular - 为什么 tslint 会删除对象键?
- next.js - fetch 显示 next.js 中未定义的数据
- c# - 生产服务器上的 Windows 服务 AggregateException
- ignite - 已检测到阻塞的系统关键线程
- javascript - FullCalendar v4 比较事件日期
- amazon-redshift - MicroStrategy Query for Redshift 无意中添加了限制条款
- javascript - history.push() 和 props.location.state 导致“无法读取未定义的属性‘状态’”