Tensorflow:输入稍有变化后,内存使用量大幅增加

时间:2018-09-12 09:52:23

标签: tensorflow memory memory-management gpu

在Tensorflow-gpu中构建大型CNN,我观察到轻微的输入更改后,内存使用量就大大增加了。

举一个简单的例子:

import tensorflow as tf

size = 252
x = tf.random_uniform((1, size, size, 3))
x = tf.layers.conv2d(x, 64, 3, 1, padding='SAME')
x = tf.layers.conv2d(x, 64, 3, 2, padding='SAME')
x = tf.layers.conv2d(x, 64, 3, 1, padding='SAME')

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    sess.run(x)
    print(sess.run(tf.contrib.memory_stats.MaxBytesInUse())/1e9)

大约需要646 MB

设置size=253后,内存使用量将跃升至2.21 GB

如何解释这种观察?有办法预防吗?

我正在使用Ubuntu 16.04,Tensorflow-gpu 1.9,cuda-9.0,GPU TITAN X(Pascal)

0 个答案:

没有答案