首页 > 解决方案 > 为什么我的具有 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 内存成本。

下面显示模型的详细信息: 在此处输入图像描述

标签: tensorflowkerasdeep-learning

解决方案


分配的 GPU 内存不仅用于参数,还用于反向传递的激活和梯度。

此外,您必须考虑以下因素会影响使用的内存量:

  • 批量大小:批量中的更多图像意味着更多的激活
  • 工人数量:每个工人都需要一定数量的内存来操作

推荐阅读