如何计算 运行 TensorFlow 中的模型所需的 GPU 内存?

How does one calculate the GPU memory required to run a model in TensorFlow?

有没有一种直接的方法可以找到在 tensorflow 中初始化的 inception-resnet-v2 模型消耗的 GPU 内存?这包括所需的推理和反向传播记忆。

您可以显式计算存储参数所需的内存,但恐怕很难计算出训练所需的所有缓冲区的大小。可能更聪明的方法是让 TF 为您做这件事。将 gpu_options.allow_growth 配置选项设置为 True 并查看它消耗了多少。另一种选择是为 gpu_options.per_process_gpu_memory_fraction 尝试较小的值,直到它因内存不足而失败。

由于使用 gpu.options.allow_growthgpu_options.per_process_gpu_memory_fraction 进行模型大小估计目前是一种反复试验且乏味的解决方案,我建议使用 tf.RunMetadata() 结合张量板。

示例:

run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
run_metadata = tf.RunMetadata()
summary, _ = sess.run(train_step, feed_dict, options=run_options, run_metadata=run_metadata)

train_writer.add_run_metadata(run_metadata, 'step%d' % i)

运行 您的模型和张量板,导航到图形的所需部分并读取节点统计信息。

来源:https://www.tensorflow.org/get_started/graph_viz