温馨提示:本文翻译自stackoverflow.com,查看原文请点击:tensorflow - Deep learning CNN eating VRAM
deep-learning neural-network tensorflow conv-neural-network

tensorflow - 深度学习CNN吃VRAM

发布于 2020-03-31 23:42:10

我最近开始构建自己的小型深度学习设备,配备了ryzen 5 3600处理器,32gb ram和GPU是具有8gp VRam的RTX 2080 SUPER

当使用带有Tensorflow的CNN(这是我的大部分工作)时,我看到大多数VRam几乎被立即吞噬(7.8中使用了7.8gb),而GPU利用率约为35%

我已经安装了最新的驱动程序并运行CUDA v 10.0,以与tesnofrflow v2兼容

这对于使用图像的CNN是否正常?我是否应该在VRam上投资而不是在更快的GPU上投资(多GPU系统以及几个使用过的1080 Ti或2060超级卡)

有什么想法吗?

查看更多

提问者
Hassan Amin
被浏览
39
Susmit Agrawal 2020-01-31 19:59

不是您的CNN占用了GPU,而是Tensorflow。默认情况下,Tensorflow会在运行代码之前占用所有可用的GPU内存,即使不需要该内存也是如此。

您可以使用以下代码片段(GPU 0,TF2。*)使Tensorflow仅占用所需的内存:

import tensorflow as tf
gpu_devices = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpu_devices[0], True)

set_memory_growth选项可防止Tensorflow保留所有内存。