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

时间:2016-12-10 05:26:50

标签: machine-learning tensorflow gpu deep-learning

有没有一种简单的方法可以找到在tensorflow中初始化的inception-resnet-v2模型消耗的GPU内存?这包括推理和所需的后备存储器。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

由于使用gpu.options.allow_growthgpu_options.per_process_gpu_memory_fraction进行模型大小估算目前是一种反复无常且繁琐的解决方案,因此我建议将 tf.RunMetadata() 与tensorboard。

示例:

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