这是我的错误:
OOM when allocating tensor of shape [7,7,512,4096] and type float
[[Node: W6/Adam/Initializer/zeros = Const[dtype=DT_FLOAT, value=Tensor<type: float shape: [7,7,512,4096] values: [[[0 0 0]]]...>, _device="/job:localhost/replica:0/task:0/device:GPU:0"]()]]
在追溯中我可以看到它是由这一行引起的:
sess.run(tf.global_variables_initializer())
所有参数组合使用大约1,5Gb的内存。我有4 Gb的内存。
我已经尝试过没有成功:
config.gpu_options.allocator_type = 'BFC'
config.gpu_options.per_process_gpu_memory_fraction = 0.40
config.gpu_options.allow_growth = True
我该如何解决?
编辑:
我如何计算已用内存量?
var_sizes = [np.product(list(map(int, v.shape))) * v.dtype.size
for v in tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES)]
print(sum(var_sizes) / (1024 ** 2), 'MB')
答案 0 :(得分:1)
在计算中,计算保存变量所需的内存量。但是,这只是您需要的内存的一小部分。你特别想念:
Tensorflow会尽可能地尝试优化内存,但这会给你一个大概的估计。因此,如果你总共需要超过4Gb,我不会感到惊讶。