我正在进行一项研究,需要了解在Google Colab中运行深度学习模型(CNN)时,模型运行期间所使用的内存。有没有可以使用的代码来测量这一点?我主要想知道模型运行总共使用了多少内存(在所有epoch完成之后)。我使用的是Python进行编程。
此致敬礼,Avik
回答:
正如在这篇文章中所解释的以及我自己的观察,Tensorflow总是试图分配全部内存,无论你的模型大小如何。与之不同的是,例如MXNet只会分配运行模型所需的足够内存。
深入了解后,我发现这确实是Tensorflow的默认行为:使用所有可用的RAM来加速处理。这是合理的
你可能会认为更多的内存分配意味着更快的训练,但大多数情况下并非如此。你可以限制TensorFlow的内存使用,如下面的代码所示:
import tensorflow as tffrom keras.backend.tensorflow_backend import set_sessionconfig = tf.ConfigProto()config.gpu_options.per_process_gpu_memory_fraction = 0.9config.gpu_options.visible_device_list = "0"set_session(tf.Session(config=config))
这里是TensorFlow的文档,如果你需要更多关于如何设置TensorFlow内存使用限制的详细信息。